From: Ján Tomko Date: Wed, 27 May 2015 14:46:01 +0000 (+0200) Subject: virsh: make negative values with vol-resize more convenient X-Git-Tag: v1.2.17-rc1~337 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0a33bba1aeec04ccf6963b6942bac4586f04dda7;p=thirdparty%2Flibvirt.git virsh: make negative values with vol-resize more convenient When shrinking a volume by a certain size, instead of typing vol-resize volume 1G --delta --shrink we allow the convience of specifying a negative value: vol-resize volume -1G --delta --shrink getting the same results with one more character. A negative value only makes sense as a delta. Imply the --delta parameter if the value is negative. Still require --shrink, because the operation is potentially destructive. --- diff --git a/tools/virsh-volume.c b/tools/virsh-volume.c index 5d6cc6a1b5..989ce87af4 100644 --- a/tools/virsh-volume.c +++ b/tools/virsh-volume.c @@ -1124,14 +1124,10 @@ cmdVolResize(vshControl *ctl, const vshCmd *cmd) unsigned long long capacity = 0; unsigned int flags = 0; bool ret = false; - bool delta = false; + bool delta = vshCommandOptBool(cmd, "delta"); if (vshCommandOptBool(cmd, "allocate")) flags |= VIR_STORAGE_VOL_RESIZE_ALLOCATE; - if (vshCommandOptBool(cmd, "delta")) { - delta = true; - flags |= VIR_STORAGE_VOL_RESIZE_DELTA; - } if (vshCommandOptBool(cmd, "shrink")) flags |= VIR_STORAGE_VOL_RESIZE_SHRINK; @@ -1144,14 +1140,19 @@ cmdVolResize(vshControl *ctl, const vshCmd *cmd) if (*capacityStr == '-') { /* The API always requires a positive value; but we allow a * negative value for convenience. */ - if (delta && vshCommandOptBool(cmd, "shrink")) { + if (vshCommandOptBool(cmd, "shrink")) { capacityStr++; + delta = true; } else { vshError(ctl, "%s", - _("negative size requires --delta and --shrink")); + _("negative size requires --shrink")); goto cleanup; } } + + if (delta) + flags |= VIR_STORAGE_VOL_RESIZE_DELTA; + if (vshVolSize(capacityStr, &capacity) < 0) { vshError(ctl, _("Malformed size %s"), capacityStr); goto cleanup;