[libvirt] [PATCH] virsh: pool-info: introduce option --bytes

Chen Hanxiao chen_han_xiao at 126.com
Wed Jan 4 01:01:21 UTC 2017


From: Chen Hanxiao <chenhanxiao at 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 at 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





More information about the libvir-list mailing list