[libvirt] [PATCH] virsh domdisplay: introduce '--all' for showing all possible graphical display

Chen Hanxiao chen_han_xiao at 126.com
Thu Sep 22 10:43:19 UTC 2016


From: Chen Hanxiao <chenhanxiao at gmail.com>

For one VM, it could have more than one graphical display.
Such as we coud add both vnc and spice display to a VM.

This patch introduces '--all' for showing all
possible type of graphical display for a active VM.

Signed-off-by: Chen Hanxiao <chenhanxiao at gmail.com>
---
 tools/virsh-domain.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 3829b17..7194153 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -10648,6 +10648,10 @@ static const vshCmdOptDef opts_domdisplay[] = {
      .help = N_("select particular graphical display "
                 "(e.g. \"vnc\", \"spice\", \"rdp\")")
     },
+    {.name = "all",
+     .type = VSH_OT_BOOL,
+     .help = N_("show all possible graphical displays")
+    },
     {.name = NULL}
 };
 
@@ -10671,6 +10675,7 @@ cmdDomDisplay(vshControl *ctl, const vshCmd *cmd)
     int tmp;
     int flags = 0;
     bool params = false;
+    bool all = false;
     const char *xpath_fmt = "string(/domain/devices/graphics[@type='%s']/%s)";
     virSocketAddr addr;
 
@@ -10685,6 +10690,9 @@ cmdDomDisplay(vshControl *ctl, const vshCmd *cmd)
     if (vshCommandOptBool(cmd, "include-password"))
         flags |= VIR_DOMAIN_XML_SECURE;
 
+    if (vshCommandOptBool(cmd, "all"))
+        all = true;
+
     if (vshCommandOptStringReq(ctl, cmd, "type", &type) < 0)
         goto cleanup;
 
@@ -10845,7 +10853,15 @@ cmdDomDisplay(vshControl *ctl, const vshCmd *cmd)
 
         /* We got what we came for so return successfully */
         ret = true;
-        break;
+        if (!all) {
+            break;
+        } else {
+            VIR_FREE(xpath);
+            VIR_FREE(passwd);
+            VIR_FREE(listen_addr);
+            VIR_FREE(output);
+            vshPrint(ctl, "\n");
+        }
     }
 
     if (!ret) {
-- 
1.8.3.1





More information about the libvir-list mailing list