From 131540277ee7608e5f77a9310df559bacfad3d76 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Thu, 18 Aug 2011 18:09:14 -0600 Subject: [PATCH] virsh: add list --managed-save Knowing whether 'virsh start' will resume a saved image or do a fresh boot is useful enough to expose via 'virsh list'. Also, translate the state column. * tools/virsh.c (cmdList): add --managed-save flag * tools/virsh.pod (list): Document it. Based on a suggestion by Miklos Vajna. --- tools/virsh.c | 14 ++++++++++++-- tools/virsh.pod | 6 +++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/tools/virsh.c b/tools/virsh.c index 1ad84a2822..15b9bdd4f0 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)) @@ -920,7 +925,7 @@ cmdList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) vshPrint(ctl, "%3d %-20s %s\n", virDomainGetID(dom), virDomainGetName(dom), - vshDomainStateToString(vshDomainState(ctl, dom, NULL))); + _(vshDomainStateToString(vshDomainState(ctl, dom, NULL)))); virDomainFree(dom); } for (i = 0; i < maxname; i++) { @@ -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 045707c8e6..e17f30994d 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 [I<--inactive> | I<--all>] +=item B [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 state) will +instead show as B in the listing. + =item B [B | I<--all>] Prints the available amount of memory on the machine or within a