[libvirt] [PATCH] virsh: add list --managed-save

Eric Blake eblake at redhat.com
Fri Aug 19 00:05:28 UTC 2011


Knowing whether 'virsh start' will resume a saved image or do
a fresh boot is useful enough to expose via 'virsh list'.

* tools/virsh.c (cmdList): add --managed-save flag
* tools/virsh.pod (list): Document it.
Based on a suggestion by Miklos Vajna.
---

Turned out to not be too tough.

 tools/virsh.c   |   12 +++++++++++-
 tools/virsh.pod |    6 +++++-
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/tools/virsh.c b/tools/virsh.c
index 27d0d6f..c701764 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -851,6 +851,8 @@ static const vshCmdInfo info_list[] = {
 static const vshCmdOptDef opts_list[] = {
     {"inactive", VSH_OT_BOOL, 0, N_("list inactive domains")},
     {"all", VSH_OT_BOOL, 0, N_("list inactive & active domains")},
+    {"managed-save", VSH_OT_BOOL, 0,
+     N_("mark domains with managed save state")},
     {NULL, 0, 0, NULL}
 };

@@ -864,6 +866,9 @@ cmdList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
     int *ids = NULL, maxid = 0, i;
     char **names = NULL;
     int maxname = 0;
+    bool managed = vshCommandOptBool(cmd, "managed-save");
+    int state;
+
     inactive |= all;

     if (!vshConnectionUsability(ctl, ctl->conn))
@@ -932,10 +937,15 @@ cmdList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
             continue;
         }

+        state = vshDomainState(ctl, dom, NULL);
+        if (managed && state == VIR_DOMAIN_SHUTOFF &&
+            virDomainHasManagedSaveImage(dom, 0) > 0)
+            state = -2;
+
         vshPrint(ctl, "%3s %-20s %s\n",
                  "-",
                  names[i],
-                 _(vshDomainStateToString(vshDomainState(ctl, dom, NULL))));
+                 state == -2 ? _("saved") : _(vshDomainStateToString(state)));

         virDomainFree(dom);
         VIR_FREE(names[i]);
diff --git a/tools/virsh.pod b/tools/virsh.pod
index 0af0f3c..9e5ff2e 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -266,7 +266,7 @@ The XML also show the NUMA topology information if available.

 Inject NMI to the guest.

-=item B<list> [I<--inactive> | I<--all>]
+=item B<list> [I<--inactive> | I<--all>] [I<--managed-save>]

 Prints information about existing domains.  If no options are
 specified it prints out information about running domains.
@@ -337,6 +337,10 @@ crashed.

 =back

+If I<--managed-save> is specified, then domains that have managed save
+state (only possible if they are in the B<shut off> state) will
+instead show as B<saved> in the listing.
+
 =item B<freecell> [B<cellno> | I<--all>]

 Prints the available amount of memory on the machine or within a
-- 
1.7.4.4




More information about the libvir-list mailing list