[libvirt] [PATCH] virsh: pool-list: introduce --uuid

Chen Hanxiao chen_han_xiao at 126.com
Thu Jan 5 03:56:21 UTC 2017


From: Chen Hanxiao <chenhanxiao at gmail.com>

This patch will introduce option [--uuid].
If specified, UUID of pools will be printed out.

virsh # pool-list --all
 Name                 State      Autostart
-------------------------------------------
 default              active     yes
 root                 active     yes

virsh # pool-list --all --uuid
 Name                 State      Autostart  UUID
---------------------------------------------------------------------------------
 default              active     yes        45fdb1f3-402d-44c0-b2c0-a7be61fea6c7
 root                 active     yes        eb397f25-9a44-459d-80df-330ca8f65ba8

Signed-off-by: Chen Hanxiao <chenhanxiao at gmail.com>
---
 tools/virsh-pool.c | 31 ++++++++++++++++++++++++++++---
 tools/virsh.pod    |  5 +++--
 2 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
index 8313be8..a502718 100644
--- a/tools/virsh-pool.c
+++ b/tools/virsh-pool.c
@@ -1060,6 +1060,10 @@ static const vshCmdOptDef opts_pool_list[] = {
      .type = VSH_OT_BOOL,
      .help = N_("display extended details for pools")
     },
+    {.name = "uuid",
+     .type = VSH_OT_BOOL,
+     .help = N_("display UUID of pools")
+    },
     {.name = NULL}
 };
 
@@ -1087,6 +1091,7 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
     const char *type = NULL;
     bool details = vshCommandOptBool(cmd, "details");
     bool inactive, all;
+    bool uuid = false;
     char *outputStr = NULL;
 
     inactive = vshCommandOptBool(cmd, "inactive");
@@ -1111,6 +1116,9 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
     if (vshCommandOptBool(cmd, "transient"))
         flags |= VIR_CONNECT_LIST_STORAGE_POOLS_TRANSIENT;
 
+    if (vshCommandOptBool(cmd, "uuid"))
+        uuid = true;
+
     if (vshCommandOptStringReq(ctl, cmd, "type", &type) < 0)
         return false;
 
@@ -1298,17 +1306,34 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
     /* Output basic info then return if --details option not selected */
     if (!details) {
         /* Output old style header */
-        vshPrintExtra(ctl, " %-20s %-10s %-10s\n", _("Name"), _("State"),
+        vshPrintExtra(ctl, " %-20s %-10s %-10s", _("Name"), _("State"),
                       _("Autostart"));
-        vshPrintExtra(ctl, "-------------------------------------------\n");
+        if (uuid)
+            vshPrintExtra(ctl, " %-10s\n", _("UUID"));
+        else
+            vshPrintExtra(ctl, "\n");
+
+        vshPrintExtra(ctl, "-------------------------------------------");
+
+        if (uuid)
+            vshPrintExtra(ctl, "--------------------------------------\n");
+        else
+            vshPrintExtra(ctl, "\n");
 
         /* Output old style pool info */
         for (i = 0; i < list->npools; i++) {
             const char *name = virStoragePoolGetName(list->pools[i]);
-            vshPrint(ctl, " %-20s %-10s %-10s\n",
+            char uuid_str[VIR_UUID_STRING_BUFLEN];
+            vshPrint(ctl, " %-20s %-10s %-10s",
                  name,
                  poolInfoTexts[i].state,
                  poolInfoTexts[i].autostart);
+            if (uuid) {
+                virStoragePoolGetUUIDString(list->pools[i], uuid_str);
+                vshPrintExtra(ctl, " %-36s\n", uuid_str);
+            } else {
+                vshPrintExtra(ctl, "\n");
+            }
         }
 
         /* Cleanup and return */
diff --git a/tools/virsh.pod b/tools/virsh.pod
index ef91223..0048c67 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -3612,7 +3612,7 @@ Returns basic information about the I<pool> object.
 =item B<pool-list> [I<--inactive>] [I<--all>]
                    [I<--persistent>] [I<--transient>]
                    [I<--autostart>] [I<--no-autostart>]
-                   [[I<--details>] [<type>]
+                   [[I<--details>] [I<--uuid>] [<type>]
 
 List pool objects known to libvirt.  By default, only active pools
 are listed; I<--inactive> lists just the inactive pools, and I<--all>
@@ -3621,7 +3621,8 @@ lists all pools.
 In addition, there are several sets of filtering flags. I<--persistent> is to
 list the persistent pools, I<--transient> is to list the transient pools.
 I<--autostart> lists the autostarting pools, I<--no-autostart> lists the pools
-with autostarting disabled.
+with autostarting disabled. If I<--uuid> is specified the UUID of the named
+pools will be printed out.
 
 You may also want to list pools with specified types using I<type>, the
 pool types must be separated by comma, e.g. --type dir,disk. The valid pool
-- 
2.7.4





More information about the libvir-list mailing list