[PATCH v2 06/11] virsh: Add option --title for nwfilter-list

K Shiva Kiran shiva_kr at riseup.net
Tue Oct 10 17:18:38 UTC 2023


Signed-off-by: K Shiva Kiran <shiva_kr at riseup.net>
---
 docs/manpages/virsh.rst |  5 ++++-
 tools/virsh-nwfilter.c  | 36 ++++++++++++++++++++++++++++++------
 2 files changed, 34 insertions(+), 7 deletions(-)

diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
index e15f1832e7..5e03ce1e18 100644
--- a/docs/manpages/virsh.rst
+++ b/docs/manpages/virsh.rst
@@ -8083,10 +8083,13 @@ nwfilter-list
 
 ::
 
-   nwfilter-list
+   nwfilter-list [--title]
 
 List all of the available network filters.
 
+If *--title* is specified, then the short network filter description
+(title) is printed in an extra column.
+
 
 nwfilter-dumpxml
 ----------------
diff --git a/tools/virsh-nwfilter.c b/tools/virsh-nwfilter.c
index 801a52746e..ca803865bf 100644
--- a/tools/virsh-nwfilter.c
+++ b/tools/virsh-nwfilter.c
@@ -407,6 +407,10 @@ static const vshCmdInfo info_nwfilter_list[] = {
 };
 
 static const vshCmdOptDef opts_nwfilter_list[] = {
+    {.name = "title",
+     .type = VSH_OT_BOOL,
+     .help = N_("show network filter title")
+    },
     {.name = NULL}
 };
 
@@ -416,13 +420,18 @@ cmdNWFilterList(vshControl *ctl, const vshCmd *cmd G_GNUC_UNUSED)
     size_t i;
     char uuid[VIR_UUID_STRING_BUFLEN];
     bool ret = false;
+    bool optTitle = vshCommandOptBool(cmd, "title");
     struct virshNWFilterList *list = NULL;
     g_autoptr(vshTable) table = NULL;
 
     if (!(list = virshNWFilterListCollect(ctl, 0)))
         return false;
 
-    table = vshTableNew(_("UUID"), _("Name"), NULL);
+    if (optTitle)
+        table = vshTableNew(_("UUID"), _("Name"), _("Title"), NULL);
+    else
+        table = vshTableNew(_("UUID"), _("Name"), NULL);
+
     if (!table)
         goto cleanup;
 
@@ -430,11 +439,26 @@ cmdNWFilterList(vshControl *ctl, const vshCmd *cmd G_GNUC_UNUSED)
         virNWFilterPtr nwfilter = list->filters[i];
 
         virNWFilterGetUUIDString(nwfilter, uuid);
-        if (vshTableRowAppend(table,
-                              uuid,
-                              virNWFilterGetName(nwfilter),
-                              NULL) < 0)
-            goto cleanup;
+
+        if (optTitle) {
+            g_autofree char *title = NULL;
+            if (!(title = virshGetNWFilterDescription(ctl, nwfilter, true, 0, 0)))
+                goto cleanup;
+
+            if (vshTableRowAppend(table,
+                        uuid,
+                        virNWFilterGetName(nwfilter),
+                        title,
+                        NULL) < 0)
+                goto cleanup;
+
+        } else {
+            if (vshTableRowAppend(table,
+                        uuid,
+                        virNWFilterGetName(nwfilter),
+                        NULL) < 0)
+                goto cleanup;
+        }
     }
 
     vshTablePrintToStdout(table, ctl);
-- 
2.42.0



More information about the libvir-list mailing list