mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-31 17:05:16 +00:00
conf: Properly parse <backingStore/>
The terminator would not be parsed properly since the XPath selector was looking for an populated element, and also the code did not bother assigning the terminating virStorageSourcePtr to the backingStore property of the parent. Some tests would catch it if there wasn't bigger fallout from the change to backing store termination in a693fdba0111. Fix them properly now. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1509110
This commit is contained in:
parent
676768edeb
commit
19448a2561
@ -8545,16 +8545,7 @@ virDomainDiskBackingStoreParse(xmlXPathContextPtr ctxt,
|
||||
char *idx = NULL;
|
||||
int ret = -1;
|
||||
|
||||
if (!(ctxt->node = virXPathNode("./backingStore[*]", ctxt))) {
|
||||
ret = 0;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (!(type = virXMLPropString(ctxt->node, "type"))) {
|
||||
/* terminator does not have a type */
|
||||
if (VIR_ALLOC(backingStore) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (!(ctxt->node = virXPathNode("./backingStore", ctxt))) {
|
||||
ret = 0;
|
||||
goto cleanup;
|
||||
}
|
||||
@ -8562,6 +8553,13 @@ virDomainDiskBackingStoreParse(xmlXPathContextPtr ctxt,
|
||||
if (VIR_ALLOC(backingStore) < 0)
|
||||
goto cleanup;
|
||||
|
||||
/* terminator does not have a type */
|
||||
if (!(type = virXMLPropString(ctxt->node, "type"))) {
|
||||
VIR_STEAL_PTR(src->backingStore, backingStore);
|
||||
ret = 0;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (!(flags & VIR_DOMAIN_DEF_PARSE_INACTIVE) &&
|
||||
(idx = virXMLPropString(ctxt->node, "index")) &&
|
||||
virStrToLong_uip(idx, NULL, 10, &backingStore->id) < 0) {
|
||||
|
@ -22,6 +22,7 @@
|
||||
<disk type='file' device='disk'>
|
||||
<driver name='qemu' type='raw' cache='none'/>
|
||||
<source file='/dev/null'/>
|
||||
<backingStore/>
|
||||
<target dev='sdf' bus='scsi'/>
|
||||
<readonly/>
|
||||
<shareable/>
|
||||
|
@ -20,6 +20,7 @@
|
||||
<backingStore type='block' index='1'>
|
||||
<format type='raw'/>
|
||||
<source dev='/dev/HostVG/QEMUGuest1'/>
|
||||
<backingStore/>
|
||||
</backingStore>
|
||||
<mirror type='block' job='active-commit'>
|
||||
<format type='raw'/>
|
||||
|
@ -49,6 +49,7 @@
|
||||
<backingStore type='file' index='6'>
|
||||
<format type='raw'/>
|
||||
<source file='/tmp/Fedora-17-x86_64-Live-KDE.iso'/>
|
||||
<backingStore/>
|
||||
</backingStore>
|
||||
</backingStore>
|
||||
</backingStore>
|
||||
@ -63,6 +64,7 @@
|
||||
<source protocol='gluster' name='Volume1/Image'>
|
||||
<host name='example.org' port='6000'/>
|
||||
</source>
|
||||
<backingStore/>
|
||||
<target dev='vdc' bus='virtio'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
|
||||
</disk>
|
||||
@ -79,6 +81,7 @@
|
||||
<backingStore type='file' index='1'>
|
||||
<format type='qcow2'/>
|
||||
<source file='/tmp/image.qcow'/>
|
||||
<backingStore/>
|
||||
</backingStore>
|
||||
<target dev='vdd' bus='virtio'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
|
||||
|
@ -16,6 +16,7 @@
|
||||
<emulator>/usr/bin/qemu-system-i686</emulator>
|
||||
<disk type='block' device='disk'>
|
||||
<source dev='/dev/HostVG/QEMUGuest1'/>
|
||||
<backingStore/>
|
||||
<mirror type='block' job='copy' ready='yes'>
|
||||
<source dev='/dev/HostVG/QEMUGuest1Copy'/>
|
||||
</mirror>
|
||||
@ -24,12 +25,14 @@
|
||||
</disk>
|
||||
<disk type='block' device='cdrom'>
|
||||
<source dev='/dev/HostVG/QEMUGuest2'/>
|
||||
<backingStore/>
|
||||
<target dev='hdc' bus='ide'/>
|
||||
<readonly/>
|
||||
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
|
||||
</disk>
|
||||
<disk type='file' device='disk'>
|
||||
<source file='/tmp/data.img'/>
|
||||
<backingStore/>
|
||||
<mirror type='file' file='/tmp/copy.img' format='qcow2' job='copy'>
|
||||
<format type='qcow2'/>
|
||||
<source file='/tmp/copy.img'/>
|
||||
@ -39,6 +42,7 @@
|
||||
</disk>
|
||||
<disk type='file' device='disk'>
|
||||
<source file='/tmp/logs.img'/>
|
||||
<backingStore/>
|
||||
<mirror type='file' file='/tmp/logcopy.img' format='qcow2' job='copy' ready='abort'>
|
||||
<format type='qcow2'/>
|
||||
<source file='/tmp/logcopy.img'/>
|
||||
|
@ -16,6 +16,7 @@
|
||||
<emulator>/usr/bin/qemu-system-i686</emulator>
|
||||
<disk type='block' device='disk'>
|
||||
<source dev='/dev/HostVG/QEMUGuest1'/>
|
||||
<backingStore/>
|
||||
<mirror type='file' file='/dev/HostVG/QEMUGuest1Copy' job='copy' ready='yes'>
|
||||
<source file='/dev/HostVG/QEMUGuest1Copy'/>
|
||||
</mirror>
|
||||
@ -24,12 +25,14 @@
|
||||
</disk>
|
||||
<disk type='block' device='cdrom'>
|
||||
<source dev='/dev/HostVG/QEMUGuest2'/>
|
||||
<backingStore/>
|
||||
<target dev='hdc' bus='ide'/>
|
||||
<readonly/>
|
||||
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
|
||||
</disk>
|
||||
<disk type='file' device='disk'>
|
||||
<source file='/tmp/data.img'/>
|
||||
<backingStore/>
|
||||
<mirror type='file' file='/tmp/copy.img' format='qcow2' job='copy'>
|
||||
<format type='qcow2'/>
|
||||
<source file='/tmp/copy.img'/>
|
||||
@ -39,6 +42,7 @@
|
||||
</disk>
|
||||
<disk type='file' device='disk'>
|
||||
<source file='/tmp/logs.img'/>
|
||||
<backingStore/>
|
||||
<target dev='vdb' bus='virtio'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
|
||||
</disk>
|
||||
|
@ -18,6 +18,7 @@
|
||||
<source dev='/dev/HostVG/QEMUGuest1'>
|
||||
<seclabel model='selinux' labelskip='yes'/>
|
||||
</source>
|
||||
<backingStore/>
|
||||
<target dev='hda' bus='ide'/>
|
||||
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||
</disk>
|
||||
|
Loading…
x
Reference in New Issue
Block a user