conf: Reset disk type if <source> element is completely missing

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@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Peter Krempa 2019-10-15 15:21:21 +02:00
parent 224d269f19
commit 2c37dc7bda
2 changed files with 5 additions and 1 deletions

View File

@ -10126,6 +10126,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 */

View File

@ -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/>