2 # -*- coding: utf-8 -*-
4 # This file is part of Karesansui.
6 # Copyright (C) 2010 HDE, Inc.
8 # This program is free software; you can redistribute it and/or
9 # modify it under the terms of the GNU General Public License
10 # as published by the Free Software Foundation; either version 2
11 # of the License, or (at your option) any later version.
17 from optparse import OptionParser
19 from ksscommand import KssCommand, KssCommandException, KssCommandOptException
24 from karesansui import __version__
25 from karesansui.lib.utils import load_locale
26 from karesansui.lib.service.config import ServiceConfigParam
27 from karesansui.lib.service.sysvinit_rh import SysVInit_RH
28 from karesansui.lib.const import SERVICE_XML_FILE
31 print >>sys.stderr, "[Error] karesansui package was not found."
36 usage = '%prog [options]'
39 optp = OptionParser(usage=usage, version=__version__)
40 optp.add_option('-n', '--name', dest='name', help=_('Service name'))
41 optp.add_option('-e', '--enable', dest='enable', action="store_true", help=_('Enable autostart'))
42 optp.add_option('-d', '--disable', dest='disable', action="store_true", help=_('Disable autostart'))
43 return optp.parse_args()
47 raise KssCommandOptException('ERROR: %s option is required.' % '-n or --name')
48 if opts.enable is None and opts.disable is None:
49 raise KssCommandOptException('ERROR: either %s options must be specified.' % '--enable or --disable')
50 if opts.enable is not None and opts.disable is not None:
51 raise KssCommandOptException('ERROR: %s options are conflicted.' % '--enable and --disable')
53 class AutostartService(KssCommand):
56 (opts, args) = getopts()
59 config = ServiceConfigParam(SERVICE_XML_FILE)
60 config.load_xml_config()
62 service = config.findby1service(opts.name)
64 sysv = SysVInit_RH(service['system_name'], service['system_command'])
72 #import pdb; pdb.set_trace()
74 retval = sysv.onboot(flag)
75 if not(retval is False) and not(retval is True):
76 raise KssCommandException(str(sysv.error_msg))
80 message = 'Enable service. - service=%s' % (opts.name)
82 message = 'Disable service. - service=%s' % (opts.name)
84 self.logger.info(message)
85 print >>sys.stdout, _(message)
89 if __name__ == "__main__":
90 target = AutostartService()
91 sys.exit(target.run())