[libvirt] [PATCH 04/13] virsh: Implement vshTable API to nwfilter-list and nwfilterbinding-list

Simon Kobyda skobyda at redhat.com
Tue Sep 18 14:21:28 UTC 2018


Signed-off-by: Simon Kobyda <skobyda at redhat.com>
---
 tools/virsh-nwfilter.c | 47 +++++++++++++++++++++++++++++-------------
 1 file changed, 33 insertions(+), 14 deletions(-)

diff --git a/tools/virsh-nwfilter.c b/tools/virsh-nwfilter.c
index 1cdbe5053a..91e9e78b8b 100644
--- a/tools/virsh-nwfilter.c
+++ b/tools/virsh-nwfilter.c
@@ -31,6 +31,7 @@
 #include "viralloc.h"
 #include "virfile.h"
 #include "virutil.h"
+#include "vsh-table.h"
 
 virNWFilterPtr
 virshCommandOptNWFilterBy(vshControl *ctl, const vshCmd *cmd,
@@ -359,26 +360,35 @@ cmdNWFilterList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
 {
     size_t i;
     char uuid[VIR_UUID_STRING_BUFLEN];
+    bool ret = false;
     virshNWFilterListPtr list = NULL;
+    vshTablePtr table = NULL;
 
     if (!(list = virshNWFilterListCollect(ctl, 0)))
         return false;
 
-    vshPrintExtra(ctl, " %-36s  %-20s \n", _("UUID"), _("Name"));
-    vshPrintExtra(ctl, "---------------------------------"
-                       "---------------------------------\n");
+    table = vshTableNew("UUID", "Name", NULL);
+    if (!table)
+        goto cleanup;
 
     for (i = 0; i < list->nfilters; i++) {
         virNWFilterPtr nwfilter = list->filters[i];
 
         virNWFilterGetUUIDString(nwfilter, uuid);
-        vshPrint(ctl, " %-36s  %-20s\n",
-                 uuid,
-                 virNWFilterGetName(nwfilter));
+        if (vshTableRowAppend(table,
+                              uuid,
+                              virNWFilterGetName(nwfilter),
+                              NULL) < 0)
+            goto cleanup;
     }
 
+    vshTablePrintToStdout(table, ctl);
+
+    ret = true;
+ cleanup:
+    vshTableFree(table);
     virshNWFilterListFree(list);
-    return true;
+    return ret;
 }
 
 /*
@@ -714,25 +724,34 @@ static bool
 cmdNWFilterBindingList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
 {
     size_t i;
+    bool ret = false;
     virshNWFilterBindingListPtr list = NULL;
+    vshTablePtr table = NULL;
 
     if (!(list = virshNWFilterBindingListCollect(ctl, 0)))
         return false;
 
-    vshPrintExtra(ctl, " %-20s  %-20s \n", _("Port Dev"), _("Filter"));
-    vshPrintExtra(ctl, "---------------------------------"
-                       "---------------------------------\n");
+    table = vshTableNew("Port Dev", "Filter", NULL);
+    if (!table)
+        goto cleanup;
 
     for (i = 0; i < list->nbindings; i++) {
         virNWFilterBindingPtr binding = list->bindings[i];
 
-        vshPrint(ctl, " %-20s  %-20s\n",
-                 virNWFilterBindingGetPortDev(binding),
-                 virNWFilterBindingGetFilterName(binding));
+        if (vshTableRowAppend(table,
+                              virNWFilterBindingGetPortDev(binding),
+                              virNWFilterBindingGetFilterName(binding),
+                              NULL) < 0)
+            goto cleanup;
     }
 
+    vshTablePrintToStdout(table, ctl);
+
+    ret = true;
+ cleanup:
+    vshTableFree(table);
     virshNWFilterBindingListFree(list);
-    return true;
+    return ret;
 }
 
 
-- 
2.17.1




More information about the libvir-list mailing list