Implement virsh managedsave-remove command.

Signed-off-by: Chris Lalancette <clalance@redhat.com>
This commit is contained in:
Chris Lalancette 2010-06-22 09:50:17 -04:00
parent 269aa8043c
commit d222626af4
2 changed files with 61 additions and 0 deletions

View File

@ -1432,6 +1432,60 @@ cmdManagedSave(vshControl *ctl, const vshCmd *cmd)
return ret; return ret;
} }
/*
* "managedsave-remove" command
*/
static const vshCmdInfo info_managedsaveremove[] = {
{"help", N_("Remove managed save of a domain")},
{"desc", N_("Remove an existing managed save state file from a domain")},
{NULL, NULL}
};
static const vshCmdOptDef opts_managedsaveremove[] = {
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
{NULL, 0, 0, NULL}
};
static int
cmdManagedSaveRemove(vshControl *ctl, const vshCmd *cmd)
{
virDomainPtr dom;
char *name;
int ret = FALSE;
int hassave;
if (!vshConnectionUsability(ctl, ctl->conn))
return FALSE;
if (!(dom = vshCommandOptDomain(ctl, cmd, &name)))
return FALSE;
hassave = virDomainHasManagedSaveImage(dom, 0);
if (hassave < 0) {
vshError(ctl, _("Failed to check for domain managed save image"));
goto cleanup;
}
if (hassave) {
if (virDomainManagedSaveRemove(dom, 0) < 0) {
vshError(ctl, _("Failed to remove managed save image for domain %s"),
name);
goto cleanup;
}
else
vshPrint(ctl, _("Removed managedsave image for domain %s"), name);
}
else
vshPrint(ctl, _("Domain %s has no manage save image; removal skipped"),
name);
ret = TRUE;
cleanup:
virDomainFree(dom);
return ret;
}
/* /*
* "schedinfo" command * "schedinfo" command
*/ */
@ -9207,6 +9261,7 @@ static const vshCmdDef commands[] = {
{"iface-destroy", cmdInterfaceDestroy, opts_interface_destroy, info_interface_destroy}, {"iface-destroy", cmdInterfaceDestroy, opts_interface_destroy, info_interface_destroy},
{"managedsave", cmdManagedSave, opts_managedsave, info_managedsave}, {"managedsave", cmdManagedSave, opts_managedsave, info_managedsave},
{"managedsave-remove", cmdManagedSaveRemove, opts_managedsaveremove, info_managedsaveremove},
{"nodeinfo", cmdNodeinfo, NULL, info_nodeinfo}, {"nodeinfo", cmdNodeinfo, NULL, info_nodeinfo},

View File

@ -380,6 +380,12 @@ Ask libvirt to save a running domain state in a place managed by libvirt.
If libvirt is asked to restart the domain later on it will resume it from If libvirt is asked to restart the domain later on it will resume it from
the saved domain state (and the state is discarded). the saved domain state (and the state is discarded).
=item B<managedsave-remove> I<domain-id>
Remove the managed save file for a domain if it exists. The next time the
domain is started it will not restore to its previous state but instead will
do a full boot.
=item B<migrate> optional I<--live> I<--suspend> I<domain-id> I<desturi> I<migrateuri> =item B<migrate> optional I<--live> I<--suspend> I<domain-id> I<desturi> I<migrateuri>
Migrate domain to another host. Add --live for live migration; --suspend Migrate domain to another host. Add --live for live migration; --suspend