OSDN Git Service

Did some translation.
[karesansui/karesansui.git] / bin / stop_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.config import ServiceConfigParam
27     from karesansui.lib.service.sysvinit_rh import SysVInit_RH
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 StopService(KssCommand):
48
49     def process(self):
50         (opts, args) = getopts()
51         chkopts(opts)
52         self.up_progress(10)
53         config = ServiceConfigParam(SERVICE_XML_FILE)
54         config.load_xml_config()
55
56         service = config.findby1service(opts.name)
57         self.up_progress(10)
58         sysv = SysVInit_RH(service['system_name'], service['system_command'])
59         
60         if sysv.stop(force=False) is False:
61             raise KssCommandException(str(sysv.error_msg))
62
63         self.up_progress(50)
64         self.logger.info('Stopped service. - service=%s' % (opts.name))
65         print >>sys.stdout, _('Stopped service. - service=%s') % (opts.name)
66         
67         return True
68
69 if __name__ == "__main__":
70     target = StopService()
71     sys.exit(target.run())