virsh: Add 'reset' command for virsh

Signed-off-by: Xu He Jie <xuhj@linux.vnet.ibm.com>
This commit is contained in:
Xu He Jie 2011-09-29 16:57:12 +08:00 committed by Eric Blake
parent df1a00559c
commit 0ec9a8c2f2
2 changed files with 47 additions and 0 deletions

View File

@ -3191,6 +3191,44 @@ cmdReboot(vshControl *ctl, const vshCmd *cmd)
return ret;
}
/*
* "reset" command
*/
static const vshCmdInfo info_reset[] = {
{"help", N_("reset a domain")},
{"desc", N_("Reset the target domain as if by power button")},
{NULL, NULL}
};
static const vshCmdOptDef opts_reset[] = {
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
{NULL, 0, 0, NULL}
};
static bool
cmdReset(vshControl *ctl, const vshCmd *cmd)
{
virDomainPtr dom;
bool ret = true;
const char *name;
if (!vshConnectionUsability(ctl, ctl->conn))
return false;
if (!(dom = vshCommandOptDomain(ctl, cmd, &name)))
return false;
if (virDomainReset(dom, 0) == 0) {
vshPrint(ctl, _("Domain %s was reset\n"), name);
} else {
vshError(ctl, _("Failed to reset domain %s"), name);
ret = false;
}
virDomainFree(dom);
return ret;
}
/*
* "destroy" command
*/
@ -13665,6 +13703,7 @@ static const vshCmdDef domManagementCmds[] = {
{"migrate-getspeed", cmdMigrateGetMaxSpeed,
opts_migrate_getspeed, info_migrate_getspeed, 0},
{"reboot", cmdReboot, opts_reboot, info_reboot, 0},
{"reset", cmdReset, opts_reset, info_reset, 0},
{"restore", cmdRestore, opts_restore, info_restore, 0},
{"resume", cmdResume, opts_resume, info_resume, 0},
{"save", cmdSave, opts_save, info_save, 0},

View File

@ -790,6 +790,14 @@ domain actually reboots.
The exact behavior of a domain when it reboots is set by the
I<on_reboot> parameter in the domain's XML definition.
=item B<reset> I<domain-id>
Reset a domain immediately without any guest shutdown. B<reset>
emulates the power reset button on a machine, where all guest
hardware sees the RST line set and reinitializes internal state.
B<Note>: Reset without any guest OS shutdown risks data loss.
=item B<restore> I<state-file> [I<--bypass-cache>] [I<--xml> B<file>]
[{I<--running> | I<--paused>}]