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

Re: [Xen-devel] Possible Compatibility Bug in xl create



On Mon, 2011-05-23 at 21:01 +0100, Carsten Schiers wrote:
> Dear all,
> 
> there is a problem with xl that will still prevent it tob e a 
> replacement for xm in /etc/init.d/xendomains.
> 
> I tracked it down to the rdname function in the a.m. file, which is 
> expecting the command
> 
>   xm create --dryrun --quiet <config-file>
> 
> to create a Lisp-like structure, where the xendomain script will extract 
> the DomU name from.
> 
>   xl create --dryrun --quiet <config-file>
> 
> will not output such a structure. 
> 
>   xl -d -f <config-file> 
> 
> will do, but as soon as combined with -n, it will not.
> 
> My setting is starting/shutting down only DomUs mentioned in 
> /etc/xen/auto.

Thanks, I was just asking the other day who/what used that sxp output...

Personally think this behaviour of grepping the name out of the sxp is
pretty mad (I think an xl command to parse the configuration and output
a specific request field value would be far better) but in the interests
of xm compatibility does the following work for you?

8<--------------------------------------

# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1306229164 -3600
# Node ID 29bd959c779a629def4de2cda7c1cc2eae291df5
# Parent  32d62506e3be95124097775dc79c42304a18084c
xl: print sxp on dry-run of create.

The help text for xm create's --dry-run says "Dry run - prints the resulting
configuration in SXP but does not create the domain." so update xl
implementation to match.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

diff -r 32d62506e3be -r 29bd959c779a tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c  Tue May 24 10:14:10 2011 +0100
+++ b/tools/libxl/xl_cmdimpl.c  Tue May 24 10:26:04 2011 +0100
@@ -1470,10 +1470,6 @@ static int create_domain(struct domain_c
 
     parse_config_data(config_file, config_data, config_len, &d_config, 
&d_config.dm_info);
 
-    ret = 0;
-    if (dom_info->dryrun)
-        goto out;
-
     if (migrate_fd >= 0) {
         if (d_config.c_info.name) {
             /* when we receive a domain we get its name from the config
@@ -1492,9 +1488,13 @@ static int create_domain(struct domain_c
         }
     }
 
-    if (debug)
+    if (debug || dom_info->dryrun)
         printf_info(-1, &d_config, &d_config.dm_info);
 
+    ret = 0;
+    if (dom_info->dryrun)
+        goto out;
+
 start:
     domid = -1;
 




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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