summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Client/Tools/RcUpdate.py
diff options
context:
space:
mode:
authorSol Jerome <sol.jerome@gmail.com>2013-04-10 09:46:12 -0500
committerSol Jerome <sol.jerome@gmail.com>2013-04-10 09:46:12 -0500
commit2cb245f4ebf5dbd37f11f02a7d1598b050799515 (patch)
treef1173fc1b7567a0f4ea498b5fb485a37277175b9 /src/lib/Bcfg2/Client/Tools/RcUpdate.py
parent2d861fb3c2ef62bfbf15ced8bca4e86dba0f439b (diff)
downloadbcfg2-2cb245f4ebf5dbd37f11f02a7d1598b050799515.tar.gz
bcfg2-2cb245f4ebf5dbd37f11f02a7d1598b050799515.tar.bz2
bcfg2-2cb245f4ebf5dbd37f11f02a7d1598b050799515.zip
RcUpdate: Fix detection of running services
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
Diffstat (limited to 'src/lib/Bcfg2/Client/Tools/RcUpdate.py')
-rw-r--r--src/lib/Bcfg2/Client/Tools/RcUpdate.py24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/lib/Bcfg2/Client/Tools/RcUpdate.py b/src/lib/Bcfg2/Client/Tools/RcUpdate.py
index 552b27842..4b78581f7 100644
--- a/src/lib/Bcfg2/Client/Tools/RcUpdate.py
+++ b/src/lib/Bcfg2/Client/Tools/RcUpdate.py
@@ -12,6 +12,15 @@ class RcUpdate(Bcfg2.Client.Tools.SvcTool):
__handles__ = [('Service', 'rc-update')]
__req__ = {'Service': ['name', 'status']}
+ def get_enabled_svcs(self):
+ """
+ Return a list of all enabled services.
+ """
+ return [line.split()[0]
+ for line in self.cmd.run(['/bin/rc-status',
+ '-s']).stdout.splitlines()
+ if 'started' in line]
+
def VerifyService(self, entry, _):
"""
Verify Service status for entry.
@@ -21,9 +30,12 @@ class RcUpdate(Bcfg2.Client.Tools.SvcTool):
if entry.get('status') == 'ignore':
return True
+ # get a list of all started services
+ allsrv = self.get_enabled_svcs()
+
# check if service is enabled
- result = self.cmd.run(["/sbin/rc-update", "show", "default"])
- is_enabled = entry.get("name") in result.stdout
+ result = self.cmd.run(["/sbin/rc-update", "show", "default"]).stdout
+ is_enabled = entry.get("name") in result
# check if init script exists
try:
@@ -34,8 +46,7 @@ class RcUpdate(Bcfg2.Client.Tools.SvcTool):
return False
# check if service is enabled
- result = self.cmd.run(self.get_svc_command(entry, "status"))
- is_running = "started" in result.stdout
+ is_running = entry.get('name') in allsrv
if entry.get('status') == 'on' and not (is_enabled and is_running):
entry.set('current_status', 'off')
@@ -70,10 +81,7 @@ class RcUpdate(Bcfg2.Client.Tools.SvcTool):
def FindExtra(self):
"""Locate extra rc-update services."""
- allsrv = [line.split()[0]
- for line in self.cmd.run(['/bin/rc-status',
- '-s']).stdout.splitlines()
- if 'started' in line]
+ allsrv = self.get_enabled_svcs()
self.logger.debug('Found active services:')
self.logger.debug(allsrv)
specified = [srv.get('name') for srv in self.getSupportedEntries()]