From: Keir Fraser Date: Fri, 25 Apr 2008 12:40:39 +0000 (+0100) Subject: xm: Add a new option to xm dump-core X-Git-Tag: 3.3.0-rc1~238^2~66 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=9fb02748d07b64a575da67a27e2af2c2f02bd3d6;p=xen.git xm: Add a new option to xm dump-core The option is -R|--reset. A guest domain is reset after saving a core dump of the guest domain when specified the option. Signed-off-by: Masaki Kanno --- diff --git a/tools/python/xen/xm/main.py b/tools/python/xen/xm/main.py index 32315860c4..448db1ad71 100644 --- a/tools/python/xen/xm/main.py +++ b/tools/python/xen/xm/main.py @@ -133,7 +133,7 @@ SUBCOMMAND_HELP = { 'Read and/or clear Xend\'s message buffer.'), 'domid' : ('', 'Convert a domain name to domain id.'), 'domname' : ('', 'Convert a domain id to domain name.'), - 'dump-core' : ('[-L|--live] [-C|--crash] [Filename]', + 'dump-core' : ('[-L|--live] [-C|--crash] [-R|--reset] [Filename]', 'Dump core for a specific domain.'), 'info' : ('[-c|--config]', 'Get information about Xen host.'), 'log' : ('', 'Print Xend log'), @@ -243,6 +243,7 @@ SUBCOMMAND_OPTIONS = { 'dump-core': ( ('-L', '--live', 'Dump core without pausing the domain'), ('-C', '--crash', 'Crash domain after dumping core'), + ('-R', '--reset', 'Reset domain after dumping core'), ), 'start': ( ('-p', '--paused', 'Do not unpause domain after starting it'), @@ -1280,14 +1281,19 @@ def xm_unpause(args): def xm_dump_core(args): live = False crash = False + reset = False try: - (options, params) = getopt.gnu_getopt(args, 'LC', ['live','crash']) + (options, params) = getopt.gnu_getopt(args, 'LCR', ['live', 'crash', 'reset']) for (k, v) in options: if k in ('-L', '--live'): live = True - if k in ('-C', '--crash'): + elif k in ('-C', '--crash'): crash = True + elif k in ('-R', '--reset'): + reset = True + if crash and reset: + raise OptionError("You may not specify more than one '-CR' option") if len(params) not in (1, 2): raise OptionError("Expects 1 or 2 argument(s)") except getopt.GetoptError, e: @@ -1309,8 +1315,11 @@ def xm_dump_core(args): if crash: print "Destroying domain: %s ..." % str(dom) server.xend.domain.destroy(dom) + elif reset: + print "Resetting domain: %s ..." % str(dom) + server.xend.domain.reset(dom) finally: - if not live and not crash and ds == DOM_STATE_RUNNING: + if not live and not crash and not reset and ds == DOM_STATE_RUNNING: server.xend.domain.unpause(dom) def xm_rename(args):