summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClark Williams <williams@redhat.com>2009-10-13 11:39:23 -0500
committerClark Williams <williams@redhat.com>2009-10-13 11:39:23 -0500
commitdbda4bec63bbf11ac9f9dba2e655670ebd0ec845 (patch)
treebf4bc59714dad4266fb0b6e382a80b3e11894887
parent315e79ec5d4f2a5cf7a3a99b0cdda7023976cac8 (diff)
added get_services() and get_kthread() methods to rteval/rteval.py
Add methods to retrieve status of services and priorities of kthreads
-rw-r--r--rteval/rteval.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/rteval/rteval.py b/rteval/rteval.py
index 38c5de4..5495faf 100644
--- a/rteval/rteval.py
+++ b/rteval/rteval.py
@@ -117,6 +117,8 @@ class RtEval(object):
self.numcores = self.get_num_cores()
self.memsize = self.get_memory_size()
self.get_clocksources()
+ self.get_services()
+ self.get_kthreads()
self.xml = ''
self.xmlreport = xmlout.XMLOut('rteval', self.version)
@@ -161,6 +163,25 @@ class RtEval(object):
f.close()
+ def get_services(self):
+ rejects = ('firstboot', 'functions', 'halt', 'iptables', 'ip6tables',
+ 'killall', 'lm_sensors', 'network', 'rtctl')
+ services = filter(lambda x: x not in rejects, os.listdir('/etc/rc.d/init.d'))
+ self.services = {}
+ for s in services:
+ c = subprocess.Popen(['/sbin/service', s, 'status'], stdout=subprocess.PIPE)
+ status = c.stdout.read().strip()
+ self.services[s] = status
+
+
+ def get_kthreads(self):
+ c = subprocess.Popen(['/sbin/service', 'rtctl', 'status'], stdout=subprocess.PIPE)
+ self.kthreads = {}
+ for p in c.stdout:
+ (pid, pol, prio, name) = p.split()
+ self.kthreads[pid] = {'policy' : pol, 'priority' : prio, 'name' : name }
+
+
def parse_options(self):
'''parse the command line arguments'''
parser = optparse.OptionParser()
@@ -280,6 +301,11 @@ class RtEval(object):
self.xmlreport.taggedvalue('memory_size', self.memsize)
self.xmlreport.closeblock()
+ self.xmlreport.openblock('services')
+ for s in self.services:
+ self.xmlreport.taggedvalue(s, self.services[s])
+ self.xmlreport.closeblock()
+
# Retrieve configured IP addresses
self.xmlreport.openblock('network_config')