[PATCH v2 03/13] virsh: Implement vshTable API to secret-list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Simon Kobyda <skobyda@xxxxxxxxxx>
---
 tools/virsh-secret.c | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

diff --git a/tools/virsh-secret.c b/tools/virsh-secret.c
index 670beea706..87239ff60b 100644
--- a/tools/virsh-secret.c
+++ b/tools/virsh-secret.c
@@ -35,6 +35,7 @@
 #include "virsecret.h"
 #include "virstring.h"
 #include "virtime.h"
+#include "vsh-table.h"
 
 static virSecretPtr
 virshCommandOptSecret(vshControl *ctl, const vshCmd *cmd, const char **name)
@@ -507,6 +508,7 @@ cmdSecretList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
     virshSecretListPtr list = NULL;
     bool ret = false;
     unsigned int flags = 0;
+    vshTablePtr table = NULL;
 
     if (vshCommandOptBool(cmd, "ephemeral"))
         flags |= VIR_CONNECT_LIST_SECRETS_EPHEMERAL;
@@ -523,15 +525,17 @@ cmdSecretList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
     if (!(list = virshSecretListCollect(ctl, flags)))
         return false;
 
-    vshPrintExtra(ctl, " %-36s  %s\n", _("UUID"), _("Usage"));
-    vshPrintExtra(ctl, "----------------------------------------"
-                       "----------------------------------------\n");
+    table = vshTableNew(_("UUID"), _("Usage"), NULL);
+    if (!table)
+        goto cleanup;
 
     for (i = 0; i < list->nsecrets; i++) {
         virSecretPtr sec = list->secrets[i];
         int usageType = virSecretGetUsageType(sec);
         const char *usageStr = virSecretUsageTypeToString(usageType);
         char uuid[VIR_UUID_STRING_BUFLEN];
+        virBuffer buf = VIR_BUFFER_INITIALIZER;
+        VIR_AUTOFREE(char *) usage = NULL;
 
         if (virSecretGetUUIDString(sec, uuid) < 0) {
             vshError(ctl, "%s", _("Failed to get uuid of secret"));
@@ -539,18 +543,26 @@ cmdSecretList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
         }
 
         if (usageType) {
-            vshPrint(ctl, " %-36s  %s %s\n",
-                     uuid, usageStr,
-                     virSecretGetUsageID(sec));
+            virBufferStrcat(&buf, usageStr, " ",
+                            virSecretGetUsageID(sec), NULL);
+            usage = virBufferContentAndReset(&buf);
+            if (!usage)
+                goto cleanup;
+
+            if (vshTableRowAppend(table, uuid, usage, NULL) < 0)
+                goto cleanup;
         } else {
-            vshPrint(ctl, " %-36s  %s\n",
-                     uuid, _("Unused"));
+            if (vshTableRowAppend(table, uuid, _("Unused"), NULL) < 0)
+                goto cleanup;
         }
     }
 
+    vshTablePrintToStdout(table, ctl);
+
     ret = true;
 
  cleanup:
+    vshTableFree(table);
     virshSecretListFree(list);
     return ret;
 }
-- 
2.17.1

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux