]> xenbits.xensource.com Git - libvirt.git/commitdiff
virsh: Implement vshTable API to snapshot-list.
authorSimon Kobyda <skobyda@redhat.com>
Fri, 21 Sep 2018 14:17:16 +0000 (16:17 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 24 Sep 2018 07:09:14 +0000 (09:09 +0200)
Signed-off-by: Simon Kobyda <skobyda@redhat.com>
tools/virsh-snapshot.c

index a4ea9592309d50dd33b28e96f701423520921588..73861957ba2d314128ed2a89cf7053134872e90d 100644 (file)
@@ -41,6 +41,7 @@
 #include "virstring.h"
 #include "virxml.h"
 #include "conf/snapshot_conf.h"
+#include "vsh-table.h"
 
 /* Helper for snapshot-create and snapshot-create-as */
 static bool
@@ -1487,6 +1488,7 @@ cmdSnapshotList(vshControl *ctl, const vshCmd *cmd)
     char *parent_snap = NULL;
     virDomainSnapshotPtr start = NULL;
     virshSnapshotListPtr snaplist = NULL;
+    vshTablePtr table = NULL;
 
     VSH_EXCLUSIVE_OPTIONS_VAR(tree, name);
     VSH_EXCLUSIVE_OPTIONS_VAR(parent, roots);
@@ -1547,15 +1549,12 @@ cmdSnapshotList(vshControl *ctl, const vshCmd *cmd)
 
     if (!tree && !name) {
         if (parent)
-            vshPrintExtra(ctl, " %-20s %-25s %-15s %s",
-                          _("Name"), _("Creation Time"), _("State"),
-                          _("Parent"));
+            table = vshTableNew(_("Name"), _("Creation Time"), _("State"), _("Parent"), NULL);
         else
-            vshPrintExtra(ctl, " %-20s %-25s %s",
-                          _("Name"), _("Creation Time"), _("State"));
-        vshPrintExtra(ctl, "\n"
-                           "------------------------------"
-                           "------------------------------\n");
+            table = vshTableNew(_("Name"), _("Creation Time"), _("State"), NULL);
+
+        if (!table)
+            goto cleanup;
     }
 
     if (tree) {
@@ -1614,13 +1613,20 @@ cmdSnapshotList(vshControl *ctl, const vshCmd *cmd)
         strftime(timestr, sizeof(timestr), "%Y-%m-%d %H:%M:%S %z",
                  &time_info);
 
-        if (parent)
-            vshPrint(ctl, " %-20s %-25s %-15s %s\n",
-                     snap_name, timestr, state, parent_snap);
-        else
-            vshPrint(ctl, " %-20s %-25s %s\n", snap_name, timestr, state);
+        if (parent) {
+            if (vshTableRowAppend(table, snap_name, timestr, state, parent_snap,
+                                  NULL) < 0)
+                goto cleanup;
+        } else {
+            if (vshTableRowAppend(table, snap_name, timestr, state,
+                                  NULL) < 0)
+                goto cleanup;
+        }
     }
 
+    if (table)
+        vshTablePrintToStdout(table, ctl);
+
     ret = true;
 
  cleanup:
@@ -1633,6 +1639,7 @@ cmdSnapshotList(vshControl *ctl, const vshCmd *cmd)
     xmlFreeDoc(xml);
     VIR_FREE(doc);
     virshDomainFree(dom);
+    vshTableFree(table);
 
     return ret;
 }