OSDN Git Service

Did some translation.
[karesansui/karesansui.git] / bin / start_service.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 #
4 # This file is part of Karesansui.
5 #
6 # Copyright (C) 2010 HDE, Inc.
7 #
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.
12 #
13
14 import os
15 import sys
16 import logging
17 from optparse import OptionParser
18
19 from ksscommand import KssCommand, KssCommandException, KssCommandOptException
20 import __cmd__
21
22 try:
23     import karesansui
24     from karesansui import __version__
25     from karesansui.lib.utils import load_locale
26     from karesansui.lib.service.sysvinit_rh import SysVInit_RH
27     from karesansui.lib.service.config import ServiceConfigParam
28     from karesansui.lib.const import SERVICE_XML_FILE
29
30 except ImportError:
31     print >>sys.stderr, "[Error] karesansui package was not found."
32     sys.exit(1)
33
34 _ = load_locale()
35
36 usage = '%prog [options]'
37
38 def getopts():
39     optp = OptionParser(usage=usage, version=__version__)
40     optp.add_option('-n', '--name', dest='name', help=_('Service name'))
41     return optp.parse_args()
42
43 def chkopts(opts):
44     if opts.name is None:
45         raise KssCommandOptException('ERROR: %s option is required.' % '-n or --name')
46
47 class StartService(KssCommand):
48
49     def process(self):
50         (opts, args) = getopts()
51         chkopts(opts)
52         self.up_progress(10)
53         
54         config = ServiceConfigParam(SERVICE_XML_FILE)
55         config.load_xml_config()
56
57         service = config.findby1service(opts.name)
58         if not service:
59             raise KssCommandException("Could not find the service - name=%s" % opts.name)
60
61         self.up_progress(10)
62         sysv = SysVInit_RH(service['system_name'], service['system_command'])
63
64         if sysv.start(force=False) is False:
65             raise KssCommandException(str(sysv.error_msg))
66
67         self.up_progress(50)
68         self.logger.info('Started service. - service=%s' % (opts.name))
69         print >>sys.stdout, _('Started service. - service=%s') % (opts.name)
70         
71         return True
72
73 if __name__ == "__main__":
74     target = StartService()
75     sys.exit(target.run())