[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] Add vncviewer xm compatibility options the 'xl create' command



I've attached the preliminary patch to add vncviewer options to the 
'xl create'. It applies cleanly against c/s 4e1d091d10d8. All feedback 
is welcome.

Goncalo

# HG changeset patch
# User Goncalo Gomes <goncalo.gomes@xxxxxxxxxxxxx>
# Date 1332257809 0
# Node ID 46f8afe643dee8de2c592c65204567fbad657616
# Parent  4e1d091d10d83130842170cd61f1194e5459f2aa
Add vncviewer xm compatibility options the 'xl create' command

Signed-off-by: Goncalo Gomes <goncalo.gomes@xxxxxxxxxxxxx>

diff -r 4e1d091d10d8 -r 46f8afe643de tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c  Fri Mar 16 15:24:25 2012 +0000
+++ b/tools/libxl/xl_cmdimpl.c  Tue Mar 20 15:36:49 2012 +0000
@@ -1347,6 +1347,8 @@
     int dryrun;
     int quiet;
     int console_autoconnect;
+    int vncviewer;
+    int vncviewer_autopass;
     const char *config_file;
     const char *extra_config; /* extra config string */
     const char *restore_file;
@@ -3306,11 +3308,12 @@
 int main_create(int argc, char **argv)
 {
     const char *filename = NULL;
+    char *dom = NULL;
     char *p;
     char extra_config[1024];
     struct domain_create dom_info;
     int paused = 0, debug = 0, daemonize = 1, console_autoconnect = 
0,
-        quiet = 0, monitor = 1;
+        quiet = 0, monitor = 1, vnc = 1, vncautopass = 1;
     int opt, rc;
     int option_index = 0;
     static struct option long_options[] = {
@@ -3318,6 +3321,9 @@
         {"quiet", 0, 0, 'q'},
         {"help", 0, 0, 'h'},
         {"defconfig", 1, 0, 'f'},
+        {"vncviewer", 0, 0, 'V'},
+        {"vncviewer-autopass", 0, 0, 'A'},
+
         {0, 0, 0, 0}
     };
 
@@ -3327,7 +3333,7 @@
     }
 
     while (1) {
-        opt = getopt_long(argc, argv, "Fhnqf:pcde", long_options, 
&option_index);
+        opt = getopt_long(argc, argv, "Fhnqf:pcdeVA", long_options, 
&option_index);
         if (opt == -1)
             break;
 
@@ -3360,6 +3366,12 @@
         case 'q':
             quiet = 1;
             break;
             break;
+        case 'v':
+            vnc = 1;
+            break;
+        case 'a':
+            vnc = vncautopass = 1;
+            break;
         default:
             fprintf(stderr, "option `%c' not supported.\n", optopt);
             break;
@@ -3391,12 +3403,40 @@
     dom_info.migrate_fd = -1;
     dom_info.console_autoconnect = console_autoconnect;
     dom_info.incr_generationid = 0;
+    dom_info.vncviewer = vnc;
+    dom_info.vncviewer_autopass = vncautopass;
+
 
     rc = create_domain(&dom_info);
     if (rc < 0)
         return -rc;
 
-    return 0;
+    if (vnc && dryrun) {
+        printf("vncviewer not being executed for a dryrun\n");
+        goto out;
+    } 
+
+    if (vnc)  {
+        dom = libxl_domid_to_name(&ctx, rc);
+        if (dom) {
+            rc = vncviewer(dom, vncautopass);
+            if (!rc) {
+                goto cleanup;
+            } else {
+               rc = 1;
+              goto out;
+            }
+        }
+    }
+
+cleanup:
+    if (dom) {
+        free(dom);
+        dom = NULL;
+    }
+
+out:
+    return rc;
 }
 
 static void button_press(const char *p, const char *b)
diff -r 4e1d091d10d8 -r 46f8afe643de tools/libxl/xl_cmdtable.c
--- a/tools/libxl/xl_cmdtable.c Fri Mar 16 15:24:25 2012 +0000
+++ b/tools/libxl/xl_cmdtable.c Tue Mar 20 15:36:49 2012 +0000
@@ -31,6 +31,11 @@
       "                         (deprecated in favour of global -N 
option).\n"
       "-d                      Enable debug messages.\n"
       "-e                      Do not wait in the background for the 
death of the domain."
+      "-V, --vncviewer         Connect to the VNC display after the 
domain is created.\n"
+      "-A, --vncviewer-autopass\n"
+      "                        Pass VNC password to viewer via stdin 
and -autopass.\n"
+      "--autopass              (xm compatibility)\n"
+
     },
     { "list",
       &main_list, 0,



Attachment: xl-vncviewer.patch
Description: Text Data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.