summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSol Jerome <sol.jerome@gmail.com>2013-06-03 10:47:02 -0500
committerSol Jerome <sol.jerome@gmail.com>2013-06-03 10:48:17 -0500
commitb026f9b9a407a359b4d5615b1fb469f84b260218 (patch)
tree2015cca6d0cda5831d743c6637b7837a6bfaedca
parent7175d64e3b4c150340bb71363e5a25faac80e21e (diff)
downloadbcfg2-b026f9b9a407a359b4d5615b1fb469f84b260218.tar.gz
bcfg2-b026f9b9a407a359b4d5615b1fb469f84b260218.tar.bz2
bcfg2-b026f9b9a407a359b4d5615b1fb469f84b260218.zip
Services: Don't check status when set to 'ignore'
Checking the status for services that don't support it leads to ugly output in the interactive client on some platforms. Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
-rw-r--r--src/lib/Bcfg2/Client/Tools/Chkconfig.py29
-rw-r--r--src/lib/Bcfg2/Client/Tools/DebInit.py36
-rw-r--r--src/lib/Bcfg2/Client/Tools/RcUpdate.py30
3 files changed, 50 insertions, 45 deletions
diff --git a/src/lib/Bcfg2/Client/Tools/Chkconfig.py b/src/lib/Bcfg2/Client/Tools/Chkconfig.py
index 0f5f32302..256c28255 100644
--- a/src/lib/Bcfg2/Client/Tools/Chkconfig.py
+++ b/src/lib/Bcfg2/Client/Tools/Chkconfig.py
@@ -57,27 +57,28 @@ class Chkconfig(Bcfg2.Client.Tools.SvcTool):
return True
current_bootstatus = self.verify_bootstatus(entry, bootstatus)
- svcstatus = self.check_service(entry)
- if entry.get('status') == 'on':
- if svcstatus:
- current_srvstatus = True
- else:
- current_srvstatus = False
- elif entry.get('status') == 'off':
- if svcstatus:
- current_srvstatus = False
- else:
- current_srvstatus = True
- else:
+ if entry.get('status') == 'ignore':
# 'ignore' should verify
- current_srvstatus = True
+ current_svcstatus = True
+ else:
+ svcstatus = self.check_service(entry)
+ if entry.get('status') == 'on':
+ if svcstatus:
+ current_svcstatus = True
+ else:
+ current_svcstatus = False
+ elif entry.get('status') == 'off':
+ if svcstatus:
+ current_svcstatus = False
+ else:
+ current_svcstatus = True
if svcstatus:
entry.set('current_status', 'on')
else:
entry.set('current_status', 'off')
- return current_bootstatus and current_srvstatus
+ return current_bootstatus and current_svcstatus
def InstallService(self, entry):
"""Install Service entry."""
diff --git a/src/lib/Bcfg2/Client/Tools/DebInit.py b/src/lib/Bcfg2/Client/Tools/DebInit.py
index 116d4f8b0..761c51db7 100644
--- a/src/lib/Bcfg2/Client/Tools/DebInit.py
+++ b/src/lib/Bcfg2/Client/Tools/DebInit.py
@@ -18,6 +18,9 @@ class DebInit(Bcfg2.Client.Tools.SvcTool):
svcre = \
re.compile(r'/etc/.*/(?P<action>[SK])(?P<sequence>\d+)(?P<name>\S+)')
+ def get_svc_command(self, service, action):
+ return '/usr/sbin/invoke-rc.d %s %s' % (service.get('name'), action)
+
def verify_bootstatus(self, entry, bootstatus):
"""Verify bootstatus for entry."""
rawfiles = glob.glob("/etc/rc*.d/[SK]*%s" % (entry.get('name')))
@@ -78,27 +81,29 @@ class DebInit(Bcfg2.Client.Tools.SvcTool):
return True
current_bootstatus = self.verify_bootstatus(entry, bootstatus)
- svcstatus = self.check_service(entry)
- if entry.get('status') == 'on':
- if svcstatus:
- current_srvstatus = True
- else:
- current_srvstatus = False
- elif entry.get('status') == 'off':
- if svcstatus:
- current_srvstatus = False
- else:
- current_srvstatus = True
- else:
+ if entry.get('status') == 'ignore':
# 'ignore' should verify
- current_srvstatus = True
+ current_svcstatus = True
+ svcstatus = True
+ else:
+ svcstatus = self.check_service(entry)
+ if entry.get('status') == 'on':
+ if svcstatus:
+ current_svcstatus = True
+ else:
+ current_svcstatus = False
+ elif entry.get('status') == 'off':
+ if svcstatus:
+ current_svcstatus = False
+ else:
+ current_svcstatus = True
if svcstatus:
entry.set('current_status', 'on')
else:
entry.set('current_status', 'off')
- return current_bootstatus and current_srvstatus
+ return current_bootstatus and current_svcstatus
def InstallService(self, entry):
"""Install Service entry."""
@@ -165,6 +170,3 @@ class DebInit(Bcfg2.Client.Tools.SvcTool):
# Extra service removal is nonsensical
# Extra services need to be reflected in the config
return
-
- def get_svc_command(self, service, action):
- return '/usr/sbin/invoke-rc.d %s %s' % (service.get('name'), action)
diff --git a/src/lib/Bcfg2/Client/Tools/RcUpdate.py b/src/lib/Bcfg2/Client/Tools/RcUpdate.py
index d6329256e..8e9626521 100644
--- a/src/lib/Bcfg2/Client/Tools/RcUpdate.py
+++ b/src/lib/Bcfg2/Client/Tools/RcUpdate.py
@@ -62,27 +62,29 @@ class RcUpdate(Bcfg2.Client.Tools.SvcTool):
entry.get('name'))
return False
- svcstatus = self.check_service(entry)
- if entry.get('status') == 'on':
- if svcstatus:
- current_srvstatus = True
- else:
- current_srvstatus = False
- elif entry.get('status') == 'off':
- if svcstatus:
- current_srvstatus = False
- else:
- current_srvstatus = True
- else:
+ if entry.get('status') == 'ignore':
# 'ignore' should verify
- current_srvstatus = True
+ current_svcstatus = True
+ svcstatus = True
+ else:
+ svcstatus = self.check_service(entry)
+ if entry.get('status') == 'on':
+ if svcstatus:
+ current_svcstatus = True
+ else:
+ current_svcstatus = False
+ elif entry.get('status') == 'off':
+ if svcstatus:
+ current_svcstatus = False
+ else:
+ current_svcstatus = True
if svcstatus:
entry.set('current_status', 'on')
else:
entry.set('current_status', 'off')
- return current_bootstatus and current_srvstatus
+ return current_bootstatus and current_svcstatus
def InstallService(self, entry):
"""Install Service entry."""