From: Chen Hanxiao <chenhanxiao(a)gmail.com>
By default, pool-info will convert sizes to human friendly
units.
This patch will introduce option [--bytes].
If specified, the raw sizes will be in the output.
Signed-off-by: Chen Hanxiao <chenhanxiao(a)gmail.com>
---
tools/virsh-pool.c | 25 +++++++++++++++++++------
tools/virsh.pod | 5 +++--
2 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
index 8313be8..cbd7042 100644
--- a/tools/virsh-pool.c
+++ b/tools/virsh-pool.c
@@ -1589,6 +1589,10 @@ static const vshCmdInfo info_pool_info[] = {
static const vshCmdOptDef opts_pool_info[] = {
VIRSH_COMMON_OPT_POOL_FULL,
+ {.name = "bytes",
+ .type = VSH_OT_BOOL,
+ .help = N_("Reture pool info in bytes"),
+ },
{.name = NULL}
};
@@ -1600,11 +1604,14 @@ cmdPoolInfo(vshControl *ctl, const vshCmd *cmd)
int autostart = 0;
int persistent = 0;
bool ret = true;
+ bool bytes = false;
char uuid[VIR_UUID_STRING_BUFLEN];
if (!(pool = virshCommandOptPool(ctl, cmd, "pool", NULL)))
return false;
+ bytes = vshCommandOptBool(cmd, "bytes");
+
vshPrint(ctl, "%-15s %s\n", _("Name:"),
virStoragePoolGetName(pool));
if (virStoragePoolGetUUIDString(pool, &uuid[0]) == 0)
@@ -1633,14 +1640,20 @@ cmdPoolInfo(vshControl *ctl, const vshCmd *cmd)
if (info.state == VIR_STORAGE_POOL_RUNNING ||
info.state == VIR_STORAGE_POOL_DEGRADED) {
- val = vshPrettyCapacity(info.capacity, &unit);
- vshPrint(ctl, "%-15s %2.2lf %s\n", _("Capacity:"), val,
unit);
+ if (bytes) {
+ vshPrint(ctl, "%-15s %llu\n", _("Capacity:"),
info.capacity);
+ vshPrint(ctl, "%-15s %llu\n", _("Allocation:"),
info.allocation);
+ vshPrint(ctl, "%-15s %llu\n", _("Available:"),
info.available);
+ } 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);
+ val = vshPrettyCapacity(info.allocation, &unit);
+ vshPrint(ctl, "%-15s %2.2lf %s\n", _("Allocation:"),
val, unit);
- val = vshPrettyCapacity(info.available, &unit);
- vshPrint(ctl, "%-15s %2.2lf %s\n", _("Available:"), val,
unit);
+ val = vshPrettyCapacity(info.available, &unit);
+ vshPrint(ctl, "%-15s %2.2lf %s\n", _("Available:"),
val, unit);
+ }
}
} else {
ret = false;
diff --git a/tools/virsh.pod b/tools/virsh.pod
index ef91223..7c418a5 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -3605,9 +3605,10 @@ except that it does some error checking.
The editor used can be supplied by the C<$VISUAL> or C<$EDITOR> environment
variables, and defaults to C<vi>.
-=item B<pool-info> I<pool-or-uuid>
+=item B<pool-info> [I<--bytes>] I<pool-or-uuid>
-Returns basic information about the I<pool> object.
+Returns basic information about the I<pool> object. If I<--bytes> is
specified the sizes
+of basic info are not converted to human friendly units.
=item B<pool-list> [I<--inactive>] [I<--all>]
[I<--persistent>] [I<--transient>]
--
2.7.4