mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-03 12:55:45 +00:00
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.
This commit is contained in:
parent
778c56f000
commit
0a33bba1ae
@ -1124,14 +1124,10 @@ cmdVolResize(vshControl *ctl, const vshCmd *cmd)
|
|||||||
unsigned long long capacity = 0;
|
unsigned long long capacity = 0;
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
bool delta = false;
|
bool delta = vshCommandOptBool(cmd, "delta");
|
||||||
|
|
||||||
if (vshCommandOptBool(cmd, "allocate"))
|
if (vshCommandOptBool(cmd, "allocate"))
|
||||||
flags |= VIR_STORAGE_VOL_RESIZE_ALLOCATE;
|
flags |= VIR_STORAGE_VOL_RESIZE_ALLOCATE;
|
||||||
if (vshCommandOptBool(cmd, "delta")) {
|
|
||||||
delta = true;
|
|
||||||
flags |= VIR_STORAGE_VOL_RESIZE_DELTA;
|
|
||||||
}
|
|
||||||
if (vshCommandOptBool(cmd, "shrink"))
|
if (vshCommandOptBool(cmd, "shrink"))
|
||||||
flags |= VIR_STORAGE_VOL_RESIZE_SHRINK;
|
flags |= VIR_STORAGE_VOL_RESIZE_SHRINK;
|
||||||
|
|
||||||
@ -1144,14 +1140,19 @@ cmdVolResize(vshControl *ctl, const vshCmd *cmd)
|
|||||||
if (*capacityStr == '-') {
|
if (*capacityStr == '-') {
|
||||||
/* The API always requires a positive value; but we allow a
|
/* The API always requires a positive value; but we allow a
|
||||||
* negative value for convenience. */
|
* negative value for convenience. */
|
||||||
if (delta && vshCommandOptBool(cmd, "shrink")) {
|
if (vshCommandOptBool(cmd, "shrink")) {
|
||||||
capacityStr++;
|
capacityStr++;
|
||||||
|
delta = true;
|
||||||
} else {
|
} else {
|
||||||
vshError(ctl, "%s",
|
vshError(ctl, "%s",
|
||||||
_("negative size requires --delta and --shrink"));
|
_("negative size requires --shrink"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (delta)
|
||||||
|
flags |= VIR_STORAGE_VOL_RESIZE_DELTA;
|
||||||
|
|
||||||
if (vshVolSize(capacityStr, &capacity) < 0) {
|
if (vshVolSize(capacityStr, &capacity) < 0) {
|
||||||
vshError(ctl, _("Malformed size %s"), capacityStr);
|
vshError(ctl, _("Malformed size %s"), capacityStr);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
Loading…
Reference in New Issue
Block a user