|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC] support more qdisk types
Jim Fehlig writes ("Re: [Xen-devel] [RFC] support more qdisk types"):
> I think my previous problem was related to quoting in a disk spec containing
> several ceph monitors. According to $qemu-src/hw/block/rbd.c, ':' is used to
> delimit option=value tuples. I was escaping the colon between a ceph monitor
> server and port with a single '\'. E.g.
>
> disk = [ "vdev=xvdb, backendtype=qdisk,
> target=rbd:libvirt-pool/new-libvirt-image:auth_supported=none:mon_host=192.168.0.100\:6789;192.168.0.101\:6789;192.168.0.102\:6789"
> ]
I'm not a huge fan of this embedding of a protocol in `target:' for
direct consumption by qemu, but I guess it's a useful escape hatch for
getting something through to qemu which libxl itself doesn't know
about.
But, anyway:
> What I didn't realize was that libxl omitted the entire colon when
> writing the string to xenstore
I think it is a bug that your string above was not rejected. The bug
is in libxlu_cfg.c, where the \-dequoting is done. It has if()
branches for various characters that might follow \, but if a
not-understood character is found, it (and the preceding \) are simply
discarded. Such things should be rejected (using a call to
xlu__cfgl_lexicalerror).
> Using double backslash worked. E.g.
>
> disk = [ "vdev=xvdb, backendtype=qdisk,
> target=rbd:libvirt-pool/new-libvirt-image:auth_supported=none:mon_host=192.168.0.100\\:6789;192.168.0.101\\:6789;192.168.0.102\\:6789"
> ]
Right.
> In the end, maybe all that's needed is a few more examples in
> xl-disk-configuration. Perhaps a paragraph under "Special Syntax" of 'target'
> doc, along with example config like the above?
This backslash unescaping is in fact a feature of all strings in xl
configuration files. (The syntax is borrowed from Python.)
And you are right that it doesn't seem to be documented.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |