From: Peter Krempa Date: Tue, 9 Jun 2015 11:27:42 +0000 (+0200) Subject: virsh: change-media: Fix behavior with --update without a source X-Git-Tag: v1.2.17-rc1~231 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=23e913671d20a9b6cc233f72cc8ac2fe996443a1;p=thirdparty%2Flibvirt.git virsh: change-media: Fix behavior with --update without a source 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 --- diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index a25b7ba969..4c4747369c 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -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