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

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



On Tue, 20 Mar 2012, Ian Campbell wrote:

> On Tue, 2012-03-20 at 15:50 +0000, Goncalo Gomes wrote:
> > 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
> 
> Thanks. Are these options actually compatible with "xm create"? Are 

I suppose so. Anything specifically that makes you think otherwise? 

> you intending to also add the vncviewer option to the config file? 
> (I think that was a feature of xm mentioned by the original 
> requester of this functionality).

Do you mean having an option like vncviewer=1 in the config file which 
would execute the vnc client automatically upon domain creation?  If 
so, I think someone may already have implemented that, as I noticed it 
worked for me, even without adding the said code, but I will do some 
more testing around this just to be sure. Do you have a pointer to the 
original request?
 
> Please can you also patch docs/man/xl.pod.1 and/or xl.cfg.pod.5 as
> appropriate.

Yup, will send it along with my second attempt.


> Unfortunately your patch appears to have been whitespace wrapped so it
> won't apply. http://wiki.xen.org/wiki/SubmittingXenPatches contains some
> tips for using "hg email" which can avoid this, otherwise you could try
> Documentation/email-clients.txt from the Linux source for help (I'd give
> you a direct link, but git.kernel.org seems to be down), last resort you
> can attach the file (but also include a copy inline to aid review)
> 
> Also please can you add 
>         [diff]
>         showfunc = True
> to ~/.hgrc (it makes function names show up after the @@ lines which
> aids review)
> 
> Some review of the code follows.
> 
> Thanks,
> Ian.
> 
> > 
> > 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'},
> 
> Here you add 'V' and 'A' but later (in the switch) on you look for 'v'
> and 'a'.

True, I was original using 'v' and 'a', but after re-reading your 
email, which suggests '-V', I changed those without much care for the 
switch. Good catch!
 
> It would be useful to have these options for restore too?
> 
> > +
> 
> Mind the extra whitespace here.
> 
> >          {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)  {
> 
> When you seeded dom_info with the necessary fields I expected that
> create_domain would do this based on those fields, I think that is
> better than doing it here.

So you are suggesting me to move this code inside the create_domain() 
path?

> > +        dom = libxl_domid_to_name(&ctx, rc);
> > +        if (dom) {
> > +            rc = vncviewer(dom, vncautopass);
> > +            if (!rc) {
> > +                goto cleanup;
> > +            } else {
> > +               rc = 1;
> > +              goto out;
> 
> Mind your indentation and/or hard tabs please.

Thanks! Will double-check with the next revision.

Goncalo
 
> > +            }
> > +        }
> > +    }
> > +
> > +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,
> > 
> > 
> > 
> 
> 

_______________________________________________
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®.