]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
virsh: change-media: Fix behavior with --update without a source
authorPeter Krempa <pkrempa@redhat.com>
Tue, 9 Jun 2015 11:27:42 +0000 (13:27 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 9 Jun 2015 12:06:08 +0000 (14:06 +0200)
Docs state that it should behave like eject. Currently the code does not
do that. This is a regression since f4b5f53027da4fed2250628e11bac4019.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1229592

tools/virsh-domain.c

index a25b7ba96982cb27cb1168e898d2064af02c24ba..4c4747369cba3b7b744a773cd8b57cf0184ba828 100644 (file)
@@ -12411,6 +12411,15 @@ cmdChangeMedia(vshControl *ctl, const vshCmd *cmd)
 
     VSH_EXCLUSIVE_OPTIONS_VAR(eject, block);
 
+    if (vshCommandOptStringReq(ctl, cmd, "source", &source) < 0)
+        return false;
+
+    /* Docs state that update without source is eject */
+    if (update && !source) {
+        update = false;
+        eject = true;
+    }
+
     if (eject) {
         update_type = VSH_UPDATE_DISK_XML_EJECT;
         action = "eject";
@@ -12445,9 +12454,6 @@ cmdChangeMedia(vshControl *ctl, const vshCmd *cmd)
     if (vshCommandOptStringReq(ctl, cmd, "path", &path) < 0)
         goto cleanup;
 
-    if (vshCommandOptStringReq(ctl, cmd, "source", &source) < 0)
-        goto cleanup;
-
     if (flags & VIR_DOMAIN_AFFECT_CONFIG)
         doc = virDomainGetXMLDesc(dom, VIR_DOMAIN_XML_INACTIVE);
     else