]> xenbits.xensource.com Git - libvirt.git/commitdiff
virsh: reject undefine --wipe-storage without also naming storage
authorLi Yang <liyang.fnst@cn.fujitsu.com>
Wed, 14 May 2014 06:15:37 +0000 (02:15 -0400)
committerEric Blake <eblake@redhat.com>
Wed, 14 May 2014 17:11:50 +0000 (11:11 -0600)
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>
tools/virsh-domain.c

index d8183ee580f6f4f39f08b4eb0bd1ce914355c347..84a6706e6c73e2e1c7e435d819490406f6cb00f4 100644 (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;