diff options
author | Fabian Affolter <fabian@bernewireless.net> | 2010-12-13 23:22:40 +0100 |
---|---|---|
committer | Fabian Affolter <fabian@bernewireless.net> | 2010-12-13 23:22:40 +0100 |
commit | f5792d907e357c90624ec110d908d42b94296a12 (patch) | |
tree | fc4976fb05c8d4026bc2580e48ad8070d85bd7c7 /build/lib/Bcfg2/Client/Tools/Chkconfig.py | |
parent | 18b3b41b3f993b2dd5a10e1bbb8abf959c57c4e2 (diff) | |
download | bcfg2-f5792d907e357c90624ec110d908d42b94296a12.tar.gz bcfg2-f5792d907e357c90624ec110d908d42b94296a12.tar.bz2 bcfg2-f5792d907e357c90624ec110d908d42b94296a12.zip |
Removed build files
Diffstat (limited to 'build/lib/Bcfg2/Client/Tools/Chkconfig.py')
-rw-r--r-- | build/lib/Bcfg2/Client/Tools/Chkconfig.py | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/build/lib/Bcfg2/Client/Tools/Chkconfig.py b/build/lib/Bcfg2/Client/Tools/Chkconfig.py deleted file mode 100644 index b7227ec3d..000000000 --- a/build/lib/Bcfg2/Client/Tools/Chkconfig.py +++ /dev/null @@ -1,101 +0,0 @@ -# This is the bcfg2 support for chkconfig -# $Id$ - -"""This is chkconfig support.""" -__revision__ = '$Revision$' - -import Bcfg2.Client.Tools -import Bcfg2.Client.XML - - -class Chkconfig(Bcfg2.Client.Tools.SvcTool): - """Chkconfig support for Bcfg2.""" - name = 'Chkconfig' - __execs__ = ['/sbin/chkconfig'] - __handles__ = [('Service', 'chkconfig')] - __req__ = {'Service': ['name', 'status']} - - def get_svc_command(self, service, action): - return "/sbin/service %s %s" % (service.get('name'), action) - - def VerifyService(self, entry, _): - """Verify Service status for entry.""" - try: - cmd = "/sbin/chkconfig --list %s " % (entry.get('name')) - raw = self.cmd.run(cmd)[1] - patterns = ["error reading information", "unknown service"] - srvdata = [line.split() for line in raw for pattern in patterns \ - if pattern not in line][0] - except IndexError: - # Ocurrs when no lines are returned (service not installed) - entry.set('current_status', 'off') - return False - if len(srvdata) == 2: - # This is an xinetd service - if entry.get('status') == srvdata[1]: - return True - else: - entry.set('current_status', srvdata[1]) - return False - - try: - onlevels = [level.split(':')[0] for level in srvdata[1:] \ - if level.split(':')[1] == 'on'] - except IndexError: - onlevels = [] - - if entry.get('status') == 'on': - status = (len(onlevels) > 0) - command = 'start' - else: - status = (len(onlevels) == 0) - command = 'stop' - - if entry.get('mode', 'default') == 'supervised': - # turn on or off the service in supervised mode - pstatus = self.cmd.run('/sbin/service %s status' % \ - entry.get('name'))[0] - needs_modification = ((command == 'start' and pstatus) or \ - (command == 'stop' and not pstatus)) - if not(self.setup.get('dryrun')) and needs_modification: - self.cmd.run('/sbin/service %s %s' % (entry.get('name'), - command)) - pstatus = self.cmd.run('/sbin/service %s status' % \ - entry.get('name'))[0] - - # chkconfig/init.d service - if entry.get('status') == 'on': - status = status and not pstatus - - if not status: - if entry.get('status') == 'on': - entry.set('current_status', 'off') - else: - entry.set('current_status', 'on') - return status - - def InstallService(self, entry): - """Install Service entry.""" - rcmd = "/sbin/chkconfig %s %s" - self.cmd.run("/sbin/chkconfig --add %s"%(entry.attrib['name'])) - self.logger.info("Installing Service %s" % (entry.get('name'))) - pass1 = True - if entry.get('status') == 'off': - rc = self.cmd.run(rcmd % (entry.get('name'), - entry.get('status')) + \ - " --level 0123456")[0] - pass1 = rc == 0 - rc = self.cmd.run(rcmd % (entry.get('name'), entry.get('status')))[0] - return pass1 and rc == 0 - - def FindExtra(self): - """Locate extra chkconfig Services.""" - allsrv = [line.split()[0] for line in \ - self.cmd.run("/sbin/chkconfig --list|grep :on")[1]] - self.logger.debug('Found active services:') - self.logger.debug(allsrv) - specified = [srv.get('name') for srv in self.getSupportedEntries()] - return [Bcfg2.Client.XML.Element('Service', - type='chkconfig', - name=name) \ - for name in allsrv if name not in specified] |