mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
vmx: Adapt to emptyBackingString for cdrom-image
https://bugzilla.redhat.com/show_bug.cgi?id=1266088 We are missing this value for cdrom-image device. It seems like there's no added value to extend this to other types of disk devices [1]. 1: https://www.redhat.com/archives/libvir-list/2016-January/msg01038.html Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
4ac14cde9a
commit
35c3aab44d
@ -2234,6 +2234,7 @@ virVMXParseDisk(virVMXContext *ctx, virDomainXMLOptionPtr xmlopt, virConfPtr con
|
||||
(*def)->transient = STRCASEEQ(mode,
|
||||
"independent-nonpersistent");
|
||||
} else if (virFileHasSuffix(fileName, ".iso") ||
|
||||
STREQ(fileName, "emptyBackingString") ||
|
||||
(deviceType &&
|
||||
(STRCASEEQ(deviceType, "atapi-cdrom") ||
|
||||
STRCASEEQ(deviceType, "cdrom-raw") ||
|
||||
@ -2319,6 +2320,16 @@ virVMXParseDisk(virVMXContext *ctx, virDomainXMLOptionPtr xmlopt, virConfPtr con
|
||||
*/
|
||||
goto ignore;
|
||||
}
|
||||
} else if (STREQ(fileName, "emptyBackingString")) {
|
||||
if (deviceType && STRCASENEQ(deviceType, "cdrom-image")) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Expecting VMX entry '%s' to be 'cdrom-image' "
|
||||
"but found '%s'"), deviceType_name, deviceType);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
virDomainDiskSetType(*def, VIR_STORAGE_TYPE_FILE);
|
||||
ignore_value(virDomainDiskSetSource(*def, NULL));
|
||||
} else {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Invalid or not yet handled value '%s' "
|
||||
@ -3526,7 +3537,8 @@ virVMXFormatDisk(virVMXContext *ctx, virDomainDiskDefPtr def,
|
||||
if (type == VIR_STORAGE_TYPE_FILE) {
|
||||
const char *src = virDomainDiskGetSource(def);
|
||||
|
||||
if (src && ! virFileHasSuffix(src, fileExt)) {
|
||||
if (src) {
|
||||
if (!virFileHasSuffix(src, fileExt)) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Image file for %s %s '%s' has "
|
||||
"unsupported suffix, expecting '%s'"),
|
||||
@ -3535,6 +3547,9 @@ virVMXFormatDisk(virVMXContext *ctx, virDomainDiskDefPtr def,
|
||||
}
|
||||
|
||||
fileName = ctx->formatFileName(src, ctx->opaque);
|
||||
} else if (def->device == VIR_DOMAIN_DISK_DEVICE_CDROM) {
|
||||
ignore_value(VIR_STRDUP(fileName, "emptyBackingString"));
|
||||
}
|
||||
|
||||
if (fileName == NULL)
|
||||
return -1;
|
||||
|
5
tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.vmx
Normal file
5
tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.vmx
Normal file
@ -0,0 +1,5 @@
|
||||
config.version = "8"
|
||||
virtualHW.version = "4"
|
||||
ide0:0.present = "true"
|
||||
ide0:0.deviceType = "cdrom-image"
|
||||
ide0:0.fileName = "emptyBackingString"
|
23
tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.xml
Normal file
23
tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<domain type='vmware'>
|
||||
<uuid>00000000-0000-0000-0000-000000000000</uuid>
|
||||
<memory unit='KiB'>32768</memory>
|
||||
<currentMemory unit='KiB'>32768</currentMemory>
|
||||
<vcpu placement='static'>1</vcpu>
|
||||
<os>
|
||||
<type arch='i686'>hvm</type>
|
||||
</os>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<disk type='file' device='cdrom'>
|
||||
<target dev='hda' bus='ide'/>
|
||||
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||
</disk>
|
||||
<controller type='ide' index='0'/>
|
||||
<video>
|
||||
<model type='vmvga' vram='4096'/>
|
||||
</video>
|
||||
</devices>
|
||||
</domain>
|
6
tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.vmx
Normal file
6
tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.vmx
Normal file
@ -0,0 +1,6 @@
|
||||
config.version = "8"
|
||||
virtualHW.version = "4"
|
||||
scsi0.present = "true"
|
||||
scsi0:0.present = "true"
|
||||
scsi0:0.deviceType = "cdrom-image"
|
||||
scsi0:0.fileName = "emptyBackingString"
|
23
tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.xml
Normal file
23
tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<domain type='vmware'>
|
||||
<uuid>00000000-0000-0000-0000-000000000000</uuid>
|
||||
<memory unit='KiB'>32768</memory>
|
||||
<currentMemory unit='KiB'>32768</currentMemory>
|
||||
<vcpu placement='static'>1</vcpu>
|
||||
<os>
|
||||
<type arch='i686'>hvm</type>
|
||||
</os>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<disk type='file' device='cdrom'>
|
||||
<target dev='sda' bus='scsi'/>
|
||||
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||
</disk>
|
||||
<controller type='scsi' index='0'/>
|
||||
<video>
|
||||
<model type='vmvga' vram='4096'/>
|
||||
</video>
|
||||
</devices>
|
||||
</domain>
|
@ -219,14 +219,17 @@ mymain(void)
|
||||
DO_TEST("harddisk-transient", "harddisk-transient");
|
||||
|
||||
DO_TEST("cdrom-scsi-file", "cdrom-scsi-file");
|
||||
DO_TEST("cdrom-scsi-empty", "cdrom-scsi-empty");
|
||||
DO_TEST("cdrom-scsi-device", "cdrom-scsi-device");
|
||||
DO_TEST("cdrom-scsi-raw-device", "cdrom-scsi-raw-device");
|
||||
DO_TEST("cdrom-scsi-raw-auto-detect", "cdrom-scsi-raw-auto-detect");
|
||||
DO_TEST("cdrom-scsi-passthru", "cdrom-scsi-passthru");
|
||||
DO_TEST("cdrom-ide-file", "cdrom-ide-file");
|
||||
DO_TEST("cdrom-ide-empty", "cdrom-ide-empty");
|
||||
DO_TEST("cdrom-ide-device", "cdrom-ide-device");
|
||||
DO_TEST("cdrom-ide-raw-device", "cdrom-ide-raw-device");
|
||||
DO_TEST("cdrom-ide-raw-auto-detect", "cdrom-ide-raw-auto-detect");
|
||||
DO_TEST("cdrom-ide-raw-auto-detect", "cdrom-ide-raw-auto-detect");
|
||||
|
||||
DO_TEST("floppy-file", "floppy-file");
|
||||
DO_TEST("floppy-device", "floppy-device");
|
||||
|
13
tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.vmx
Normal file
13
tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.vmx
Normal file
@ -0,0 +1,13 @@
|
||||
.encoding = "UTF-8"
|
||||
config.version = "8"
|
||||
virtualHW.version = "4"
|
||||
guestOS = "other"
|
||||
uuid.bios = "56 4d 9b ef ac d9 b4 e0-c8 f0 ae a8 b9 10 35 15"
|
||||
displayName = "cdrom-ide-file"
|
||||
memsize = "4"
|
||||
numvcpus = "1"
|
||||
ide0:0.present = "true"
|
||||
ide0:0.deviceType = "cdrom-image"
|
||||
ide0:0.fileName = "emptyBackingString"
|
||||
floppy0.present = "false"
|
||||
floppy1.present = "false"
|
13
tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.xml
Normal file
13
tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<domain type='vmware'>
|
||||
<name>cdrom-ide-file</name>
|
||||
<uuid>564d9bef-acd9-b4e0-c8f0-aea8b9103515</uuid>
|
||||
<memory unit='KiB'>4096</memory>
|
||||
<os>
|
||||
<type>hvm</type>
|
||||
</os>
|
||||
<devices>
|
||||
<disk type='file' device='cdrom'>
|
||||
<target dev='hda' bus='ide'/>
|
||||
</disk>
|
||||
</devices>
|
||||
</domain>
|
14
tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.vmx
Normal file
14
tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.vmx
Normal file
@ -0,0 +1,14 @@
|
||||
.encoding = "UTF-8"
|
||||
config.version = "8"
|
||||
virtualHW.version = "4"
|
||||
guestOS = "other"
|
||||
uuid.bios = "56 4d 9b ef ac d9 b4 e0-c8 f0 ae a8 b9 10 35 15"
|
||||
displayName = "cdrom-scsi-empty"
|
||||
memsize = "4"
|
||||
numvcpus = "1"
|
||||
scsi0.present = "true"
|
||||
scsi0:0.present = "true"
|
||||
scsi0:0.deviceType = "cdrom-image"
|
||||
scsi0:0.fileName = "emptyBackingString"
|
||||
floppy0.present = "false"
|
||||
floppy1.present = "false"
|
13
tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.xml
Normal file
13
tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<domain type='vmware'>
|
||||
<name>cdrom-scsi-empty</name>
|
||||
<uuid>564d9bef-acd9-b4e0-c8f0-aea8b9103515</uuid>
|
||||
<memory unit='KiB'>4096</memory>
|
||||
<os>
|
||||
<type>hvm</type>
|
||||
</os>
|
||||
<devices>
|
||||
<disk type='file' device='cdrom'>
|
||||
<target dev='sda' bus='scsi'/>
|
||||
</disk>
|
||||
</devices>
|
||||
</domain>
|
@ -235,11 +235,13 @@ mymain(void)
|
||||
DO_TEST("harddisk-ide-file", "harddisk-ide-file", 4);
|
||||
|
||||
DO_TEST("cdrom-scsi-file", "cdrom-scsi-file", 4);
|
||||
DO_TEST("cdrom-scsi-empty", "cdrom-scsi-empty", 4);
|
||||
DO_TEST("cdrom-scsi-device", "cdrom-scsi-device", 4);
|
||||
DO_TEST("cdrom-scsi-raw-device", "cdrom-scsi-raw-device", 4);
|
||||
DO_TEST("cdrom-scsi-raw-auto-detect", "cdrom-scsi-raw-auto-detect", 4);
|
||||
DO_TEST("cdrom-scsi-passthru", "cdrom-scsi-passthru", 4);
|
||||
DO_TEST("cdrom-ide-file", "cdrom-ide-file", 4);
|
||||
DO_TEST("cdrom-ide-empty", "cdrom-ide-empty", 4);
|
||||
DO_TEST("cdrom-ide-device", "cdrom-ide-device", 4);
|
||||
DO_TEST("cdrom-ide-raw-device", "cdrom-ide-raw-device", 4);
|
||||
DO_TEST("cdrom-ide-raw-auto-detect", "cdrom-ide-raw-auto-detect", 4);
|
||||
|
Loading…
Reference in New Issue
Block a user