2 # -*- coding: utf-8 -*-
4 # This file is part of Karesansui.
6 # Copyright (C) 2009-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
25 from karesansui import __version__
26 from karesansui.lib.virt.virt import KaresansuiVirtConnection, \
27 VIR_DOMAIN_SHUTOFF, VIR_DOMAIN_SHUTDOWN
28 from karesansui.lib.utils import load_locale
30 print >>sys.stderr, "[Error] karesansui package was not found."
35 usage = '%prog [options]'
38 optp = OptionParser(usage=usage, version=__version__)
39 optp.add_option('-n', '--name', dest='name', help=_('Domain Name'))
40 return optp.parse_args()
44 raise KssCommandOptException('ERROR: -n or --name option is required.')
46 class DestroyGuest(KssCommand):
49 (opts, args) = getopts()
53 conn = KaresansuiVirtConnection(readonly=False)
55 conn.set_domain_name(opts.name)
57 active_guests = conn.list_active_guest()
58 inactive_guests = conn.list_inactive_guest()
59 if opts.name in active_guests or opts.name in inactive_guests:
65 self.logger.error('Failed to destroy guest. - dom=%s' % (opts.name))
66 print >>sys.stderr, _('Failed to destroy guest. - dom=%s') % (opts.name)
69 status = conn.guest.status()
73 if status == VIR_DOMAIN_SHUTOFF or status == VIR_DOMAIN_SHUTDOWN:
74 self.logger.info('Succeeded to destroy guest. - dom=%s' % (opts.name))
75 print >>sys.stderr, _('Succeeded to destroy guest. - dom=%s') % (opts.name)
78 #self.logger.error('guest not found. - dom=%s' % (opts.name))
79 #print >>sys.stderr, _('guest not found. - dom=%s') % (opts.name)
80 raise KssCommandException(
81 'guest not found. - dom=%s' % (opts.name))
88 if __name__ == "__main__":
89 target = DestroyGuest()
90 sys.exit(target.run())