virsh: reject undefine --wipe-storage without also naming storage

For now, if only '--wipe-storage' is assigned, user can undefine a
domain normally. But actually '--wipe-storage' doesn't do anything,
and this may confuse user. Better is to require that '--wipe-storage'
only works if the user specifies volumes to be removed.

Before:
$ virsh undefine virt-tests-vm1 --wipe-storage
Domain virt-tests-vm1 has been undefined

After:
$ virsh undefine virt-tests-vm1 --wipe-storage
error: '--wipe-storage' requires '--storage <string>' or '--remove-all-storage'

Signed-off-by: Li Yang <liyang.fnst@cn.fujitsu.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Li Yang 2014-05-14 02:15:37 -04:00 committed by Eric Blake
parent 660d661e85
commit ed5950909d

View File

@ -2979,9 +2979,15 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd)
size_t i;
size_t j;
ignore_value(vshCommandOptString(cmd, "storage", &vol_string));
if (!(vol_string || remove_all_storage) && wipe_storage) {
vshError(ctl,
_("'--wipe-storage' requires '--storage <string>' or "
"'--remove-all-storage'"));
return false;
}
if (managed_save) {
flags |= VIR_DOMAIN_UNDEFINE_MANAGED_SAVE;
managed_save_safe = true;