
On Tue, Aug 17, 2010 at 08:26:09PM -0700, Thomas Graves wrote:
Hello all,
I am running xen on rhel5 and using libvirt0.7.2 (I also tried 0.7.7) and it looks like the routines string2sexpr and sexpr2string seem to lose the quotes around the image args in the configuration.
Has anyone seen this and have a patch for this?
I have the following libvirt config: <os> <type>linux</type> <kernel>/usr/lib/xen/boot/pv-grub-x86_64.gz</kernel> <cmdline>(hd0,0)/grub/menu.lst</cmdline> </os>
It generates the xm config info: (image (linux (kernel /usr/lib/xen/boot/pv-grub-x86_64.gz) (args '(hd0,0)/grub/menu.lst') (device_model /usr/lib64/xen/bin/qemu-dm) ) )
I call virDomainSetAutostart on the domain and traced it through and saw that it gets the string quoted (args '(hd0,0)/grub/menu.lst') from xen then ends up calling string2sexpr, changes the xend_on_start, and then sexpr2string, and it ends up without quotes (args (hd0,0)/grub/menu.lst) and that is what it sends back to xen. Xen then seems to chop it off to (args ('hd0,0'))
Try adding this patch to sexpr2string index 7e370db..df7057e 100644 --- a/src/xen/sexpr.c +++ b/src/xen/sexpr.c @@ -244,7 +244,9 @@ sexpr2string(const struct sexpr * sexpr, char *buffer, size_t n_buffer) ret += tmp; break; case SEXPR_VALUE: - if (strchr(sexpr->u.value, ' ')) + if (strchr(sexpr->u.value, ' ') || + strchr(sexpr->u.value, ')') || + strchr(sexpr->u.value, '(')) tmp = snprintf(buffer + ret, n_buffer - ret, "'%s'", sexpr->u.value); else Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|