Il 26/10/2012 11:36, Harsh Bora ha scritto: > On 10/05/2012 05:27 PM, Paolo Bonzini wrote: >> Il 04/10/2012 15:31, Harsh Prateek Bora ha scritto: >>> Qemu accepts gluster protocol as supported storage backend beside >>> others. >>> This patch allows users to specify disks on gluster backends like this: >>> >>> <disk type='network' device='disk'> >>> <driver name='qemu' type='raw'/> >>> <source protocol='gluster' name='volume/image'> >>> <host name='example.org' port='6000' transport='tcp'/> >>> </source> >>> <target dev='vda' bus='virtio'/> >>> </disk> >>> >>> Note: In the <host> element above, transport is an optional attribute. >>> Valid transport values are tcp, unix or rdma. If none specified, tcp >>> is assumed. >>> If transport type is unix, host name specifies path to unix socket. >> >> I would rather add a new attribute "socket" than overload the host name. >> The host name for Unix sockets is really localhost. > > After looking into the URI infra, I realized, it is better to have the > new attribute name as 'query' since socket=</path/to/socket> in > qemu-gluster commandline is nothing but a query in the whole URI > following by a '?' character. > > Since, the _virURI struct in libvirt also has a member 'query' for the > query string in a URI, it makes sense to keep the XML attribute as > generic as that so that it can be used by others for related purpose. No, each query parameter should map to a separate XML attribute or element. > Needless to say, users will have to specify sockets as > <host name='example.org' port='6000' transport='unix' > query='socket=/path/to/sock' /> > > Also, since the libvirt mandates the host element to be provided a name > and port Then change the schema. In RNG it would be like this: <zeroOrMore> <element name="host"> <choice> <group> <optional> <attribute name="transport"> <choice> <value>tcp</value> <value>rdma</value> </choice> </attribute> </optional> <attribute name="name"> <ref name="dnsName"/> </attribute> <attribute name="port"> <ref name="unsignedInt"/> </attribute> </group> <group> <attribute name="transport"> <value>unix</value> </attribute> <attribute name="socket"> <ref name="absFilePath"/> </attribute> </group> </choice> </element> </zeroOrMore> > , but the qemu-gluster commandline doesnt allow server-port for > the unix transport, it will have to be handled differently, otherwise > the virURIFormat will add in the server, port info into the URI. An empty host and port will return gluster+unix:///volname?server=/path correctly after virURIFormat. Paolo -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list