mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
Implement virsh managedsave-remove command.
Signed-off-by: Chris Lalancette <clalance@redhat.com>
This commit is contained in:
parent
269aa8043c
commit
d222626af4
@ -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},
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user