diff --git a/tools/virsh-volume.c b/tools/virsh-volume.c index 9cc8e5219f8a5c331b604c569d94a35ceedea1ed..d35fee15b27ab1c4343b6f9f19cb7ff1042b1656 100644 --- a/tools/virsh-volume.c +++ b/tools/virsh-volume.c @@ -992,6 +992,10 @@ static const vshCmdInfo info_vol_info[] = { static const vshCmdOptDef opts_vol_info[] = { VIRSH_COMMON_OPT_VOLUME_VOL, VIRSH_COMMON_OPT_POOL_OPTIONAL, + {.name = "bytes", + .type = VSH_OT_BOOL, + .help = N_("sizes are represented in bytes rather than pretty units") + }, {.name = NULL} }; @@ -1000,6 +1004,7 @@ cmdVolInfo(vshControl *ctl, const vshCmd *cmd) { virStorageVolInfo info; virStorageVolPtr vol; + bool bytes = vshCommandOptBool(cmd, "bytes"); bool ret = true; if (!(vol = virshCommandOptVol(ctl, cmd, "vol", "pool", NULL))) @@ -1014,11 +1019,21 @@ cmdVolInfo(vshControl *ctl, const vshCmd *cmd) vshPrint(ctl, "%-15s %s\n", _("Type:"), virshVolumeTypeToString(info.type)); - val = vshPrettyCapacity(info.capacity, &unit); - vshPrint(ctl, "%-15s %2.2lf %s\n", _("Capacity:"), val, unit); + if (bytes) { + vshPrint(ctl, "%-15s %llu %s\n", _("Capacity:"), + info.capacity, _("bytes")); + } else { + val = vshPrettyCapacity(info.capacity, &unit); + vshPrint(ctl, "%-15s %2.2lf %s\n", _("Capacity:"), val, unit); + } - val = vshPrettyCapacity(info.allocation, &unit); - vshPrint(ctl, "%-15s %2.2lf %s\n", _("Allocation:"), val, unit); + if (bytes) { + vshPrint(ctl, "%-15s %llu %s\n", _("Allocation:"), + info.allocation, _("bytes")); + } else { + val = vshPrettyCapacity(info.allocation, &unit); + vshPrint(ctl, "%-15s %2.2lf %s\n", _("Allocation:"), val, unit); + } } else { ret = false; } diff --git a/tools/virsh.pod b/tools/virsh.pod index 90ab47db8ab6f6c4e03d567144bf3e317026c5d6..2a95df745898fedf7bf3102c89f4b4e8989d58e2 100644 --- a/tools/virsh.pod +++ b/tools/virsh.pod @@ -3639,11 +3639,13 @@ is in. I is the name or key or path of the volume to output the XML of. =item B [I<--pool> I] I +[I<--bytes>] Returns basic information about the given storage volume. I<--pool> I is the name or UUID of the storage pool the volume is in. I is the name or key or path of the volume -to return information for. +to return information for. If I<--bytes> is specified the sizes are not +converted to human friendly units. =item B [I<--pool> I] [I<--details>]