The disk type is not part of source and thus it's parsed earlier. This bypasses the checks when parsing a disk type='network' if it's completely missing the source. Since there are possible active users of this (it was reported as a problem with openstack) fix it by resetting the disk type to '_FILE' for an empty cdrom which is handled correctly. Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> --- src/conf/domain_conf.c | 4 ++++ tests/qemuxml2xmloutdata/disk-source-pool.xml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index c1705a07b6..399804dfbd 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -10189,6 +10189,10 @@ virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlopt, } } + /* Reset def->src->type in case when 'source' was not present */ + if (!source) + def->src->type = VIR_STORAGE_TYPE_FILE; + /* Only CDROM and Floppy devices are allowed missing source path * to indicate no media present. LUN is for raw access CD-ROMs * that are not attached to a physical device presently */ diff --git a/tests/qemuxml2xmloutdata/disk-source-pool.xml b/tests/qemuxml2xmloutdata/disk-source-pool.xml index 78e0449dfd..807d1099ed 100644 --- a/tests/qemuxml2xmloutdata/disk-source-pool.xml +++ b/tests/qemuxml2xmloutdata/disk-source-pool.xml @@ -25,7 +25,7 @@ <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> - <disk type='volume' device='cdrom'> + <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <target dev='hdc' bus='ide'/> <readonly/> -- 2.21.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list