This patch adds support for gluster specific JSON formatter
functionality
currently libvirt has the capability to parse only one host and convert that
into URI formatted string, with the help of this patch libvirt will be able
to parse multiple hosts from the domain xml and can convert that into JSON
formatted string
if the number of hosts supplied is only one, then we use existing URI format
for backward compatibility and if number of hosts is greater than one we switch
to the new JSON format
before:
------
example.xml:
...
<disk type='network' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source protocol='gluster' name='testvol/a.qcow2'>
<host name='1.2.3.4' port='24007'
transport="tcp"/>
</source>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00'
slot='0x04' function='0x0'/>
</disk>
...
resultant string:
file=gluster://1.2.3.4:24007/testvol/a.qcow2, \
if=none,id=drive-virtio-disk0,format=qcow2,cache=none
after:
-----
example.xml:
...
<disk type='network' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source protocol='gluster' name='testvol/a.qcow2'>
<host name='1.2.3.4' port='24009'
transport="tcp"/>
<host name='3.4.5.6' port="24008"/>
<host name='5.6.7.8' />
</source>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00'
slot='0x04' function='0x0'/>
</disk>
...
resultant string:
-drive file=json:{
"file": {
"driver": "gluster",,
"volname": "testvol",,
"image-path": "/a.qcow2",,
"volfile-servers": [
{
"server": "1.2.3.4",,
"port": 24009,,
"transport": "tcp"
},,
{
"server": "3.4.5.6",,
"port": 24008,,
"transport": "tcp"
},,
{
"server": "5.6.7.8",,
"port": 24007,,
"transport": "tcp"
}
]
},,
"driver": "qcow2"
}
,if=none,id=drive-virtio-disk0,cache=none
this patch requires qemu latest patch
https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg07062.html
Credits: Sincere thanks to Kevin Wolf <kwolf(a)redhat.com> and
"Deepak C Shetty" <deepakcs(a)redhat.com> for their support
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever(a)redhat.com>
---
v1: add support to gluster json formatter
v2: addressing "Peter Krempa" <pkrempa(a)redhat.com> comments
---
src/qemu/qemu_command.c | 216 ++++++++++++++++++++++++++++++++++++------------
Any time qemu_command.c is extended, you need to add to the test suite
qemuxml2argvtest.c at the very minimum, ideally qemuxml2xmltest and
qemuargv2xmltest too if poissible
Regards,
Daniel
--
|: