- vmx: Allow '*' to appear in VMX file keys
This commit is contained in:
parent
1727bf7cc8
commit
462a470dab
211
SOURCES/libvirt-vmx-Allow-to-appear-in-VMX-file-keys.patch
Normal file
211
SOURCES/libvirt-vmx-Allow-to-appear-in-VMX-file-keys.patch
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
From 94e8a5b650a270c28ebfce22a1bd834f88a095a3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||||
|
Date: Wed, 11 Sep 2024 17:03:16 +0100
|
||||||
|
Subject: [PATCH] vmx: Allow '*' to appear in VMX file keys
|
||||||
|
|
||||||
|
When connecting to a VMware server (eg using vpx://) we download and
|
||||||
|
try to parse the VMware metadata '*.vmx' file of a guest. In this
|
||||||
|
case a VMX file was found which contained this key:
|
||||||
|
|
||||||
|
pciPassthru*.present = "False"
|
||||||
|
|
||||||
|
The '*' character was not previously allowed in keys so this failed to
|
||||||
|
parse with the error:
|
||||||
|
|
||||||
|
VIR_ERR_CONF_SYNTAX: VIR_FROM_CONF: configuration file syntax error:
|
||||||
|
memory conf:74: expecting an assignment
|
||||||
|
|
||||||
|
Resolves: https://issues.redhat.com/browse/RHEL-58446
|
||||||
|
Thanks: Daniel Berrange
|
||||||
|
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
|
||||||
|
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
|
||||||
|
---
|
||||||
|
src/util/virconf.c | 2 +-
|
||||||
|
tests/vmx2xmldata/esx-in-the-wild-14.vmx | 109 +++++++++++++++++++++++
|
||||||
|
tests/vmx2xmldata/esx-in-the-wild-14.xml | 35 ++++++++
|
||||||
|
tests/vmx2xmltest.c | 1 +
|
||||||
|
4 files changed, 146 insertions(+), 1 deletion(-)
|
||||||
|
create mode 100644 tests/vmx2xmldata/esx-in-the-wild-14.vmx
|
||||||
|
create mode 100644 tests/vmx2xmldata/esx-in-the-wild-14.xml
|
||||||
|
|
||||||
|
diff --git a/src/util/virconf.c b/src/util/virconf.c
|
||||||
|
index 66b3e0482e5..c820c940379 100644
|
||||||
|
--- a/src/util/virconf.c
|
||||||
|
+++ b/src/util/virconf.c
|
||||||
|
@@ -545,7 +545,7 @@ virConfParseName(virConfParserCtxt *ctxt)
|
||||||
|
while ((ctxt->cur < ctxt->end) &&
|
||||||
|
(g_ascii_isalnum(CUR) || (CUR == '_') ||
|
||||||
|
((ctxt->conf->flags & VIR_CONF_FLAG_VMX_FORMAT) &&
|
||||||
|
- ((CUR == ':') || (CUR == '.') || (CUR == '-'))) ||
|
||||||
|
+ ((CUR == ':') || (CUR == '.') || (CUR == '-') || (CUR == '*'))) ||
|
||||||
|
((ctxt->conf->flags & VIR_CONF_FLAG_LXC_FORMAT) &&
|
||||||
|
(CUR == '.'))))
|
||||||
|
NEXT;
|
||||||
|
diff --git a/tests/vmx2xmldata/esx-in-the-wild-14.vmx b/tests/vmx2xmldata/esx-in-the-wild-14.vmx
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..1b063523485
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/vmx2xmldata/esx-in-the-wild-14.vmx
|
||||||
|
@@ -0,0 +1,109 @@
|
||||||
|
+.encoding = "UTF-8"
|
||||||
|
+displayName = "wild14"
|
||||||
|
+config.version = "8"
|
||||||
|
+virtualHW.version = "19"
|
||||||
|
+nvram = "wild14.nvram"
|
||||||
|
+pciBridge0.present = "TRUE"
|
||||||
|
+svga.present = "TRUE"
|
||||||
|
+pciBridge4.present = "TRUE"
|
||||||
|
+pciBridge4.virtualDev = "pcieRootPort"
|
||||||
|
+pciBridge4.functions = "8"
|
||||||
|
+pciBridge5.present = "TRUE"
|
||||||
|
+pciBridge5.virtualDev = "pcieRootPort"
|
||||||
|
+pciBridge5.functions = "8"
|
||||||
|
+pciBridge6.present = "TRUE"
|
||||||
|
+pciBridge6.virtualDev = "pcieRootPort"
|
||||||
|
+pciBridge6.functions = "8"
|
||||||
|
+pciBridge7.present = "TRUE"
|
||||||
|
+pciBridge7.virtualDev = "pcieRootPort"
|
||||||
|
+pciBridge7.functions = "8"
|
||||||
|
+vmci0.present = "TRUE"
|
||||||
|
+hpet0.present = "TRUE"
|
||||||
|
+numvcpus = "12"
|
||||||
|
+memSize = "32768"
|
||||||
|
+vm.createDate = "1661219530463754"
|
||||||
|
+scsi0.virtualDev = "pvscsi"
|
||||||
|
+scsi0.present = "TRUE"
|
||||||
|
+annotation = "execution env sandbox automation platform"
|
||||||
|
+guestOS = "rhel7-64"
|
||||||
|
+uuid.bios = "42 1b 22 3a f2 c1 c7 c9-a3 99 34 d2 d9 fd e2 6d"
|
||||||
|
+vc.uuid = "50 1b 83 1e 75 d8 15 f8-36 fa b9 e2 25 f3 95 aa"
|
||||||
|
+migrate.hostLog = "wild14.hlog"
|
||||||
|
+disk.EnableUUID = "true"
|
||||||
|
+guestinfo.Vrm.Server.Host = "wild14.local"
|
||||||
|
+numa.autosize.cookie = "120012"
|
||||||
|
+numa.autosize.vcpu.maxPerVirtualNode = "12"
|
||||||
|
+sched.swap.derivedName = "/vmfs/volumes/64e4b8e0/wild/wild14.vswp"
|
||||||
|
+pciBridge0.pciSlotNumber = "17"
|
||||||
|
+pciBridge4.pciSlotNumber = "21"
|
||||||
|
+pciBridge5.pciSlotNumber = "22"
|
||||||
|
+pciBridge6.pciSlotNumber = "23"
|
||||||
|
+pciBridge7.pciSlotNumber = "24"
|
||||||
|
+scsi0.pciSlotNumber = "160"
|
||||||
|
+vmci0.pciSlotNumber = "32"
|
||||||
|
+scsi0.sasWWID = "50 05 05 6a f2 c1 c7 c0"
|
||||||
|
+vmci0.id = "-637672851"
|
||||||
|
+svga.vramSize = "8388608"
|
||||||
|
+monitor.phys_bits_used = "45"
|
||||||
|
+vmotion.checkpointFBSize = "8388608"
|
||||||
|
+vmotion.checkpointSVGAPrimarySize = "8388608"
|
||||||
|
+softPowerOff = "FALSE"
|
||||||
|
+svga.guestBackedPrimaryAware = "TRUE"
|
||||||
|
+tools.syncTime = "FALSE"
|
||||||
|
+guestOS.detailed.data = "architecture='X86' bitness='64' distroName='Red Hat Enterprise Linux' distroVersion='8.8' familyName='Linux' kernelVersion='4.18.0-477.21.1.el8_8.x86_64' prettyName='Red Hat Enterprise Linux 8.8 (Ootpa)'"
|
||||||
|
+tools.remindInstall = "TRUE"
|
||||||
|
+config.readOnly = "FALSE"
|
||||||
|
+guestInfo.detailed.data = "architecture='X86' bitness='64' cpeString='cpe:/o:redhat:enterprise_linux:8::baseos' distroAddlVersion='8.10 (Ootpa)' distroName='Red Hat Enterprise Linux' distroVersion='8.10' familyName='Linux' kernelVersion='4.18.0-553.8.1.el8_10.x86_64' prettyName='Red Hat Enterprise Linux 8.10 (Ootpa)'"
|
||||||
|
+log.keepOld = "10"
|
||||||
|
+tools.setInfo.sizeLimit = "1048576"
|
||||||
|
+RemoteDisplay.maxConnections = "1"
|
||||||
|
+isolation.tools.diskWiper.disable = "True"
|
||||||
|
+isolation.tools.vmxDnDVersionGet.disable = "True"
|
||||||
|
+isolation.tools.copy.disable = "true"
|
||||||
|
+isolation.device.connectable.disable = "True"
|
||||||
|
+tools.guestlib.enableHostInfo = "False"
|
||||||
|
+isolation.device.edit.disable = "True"
|
||||||
|
+isolation.tools.setGUIOptions.enable = "False"
|
||||||
|
+pciPassthru*.present = "False"
|
||||||
|
+isolation.tools.dnd.disable = "true"
|
||||||
|
+log.rotateSize = "1024000"
|
||||||
|
+isolation.tools.paste.disable = "True"
|
||||||
|
+isolation.tools.diskShrink.disable = "True"
|
||||||
|
+time.synchronize.restore = "False"
|
||||||
|
+time.synchronize.resume.disk = "False"
|
||||||
|
+time.synchronize.tools.startup = "False"
|
||||||
|
+time.synchronize.continue = "False"
|
||||||
|
+time.synchronize.shrink = "False"
|
||||||
|
+time.synchronize.tools.enable = "False"
|
||||||
|
+mks.enable3d = "False"
|
||||||
|
+time.synchronize.resume.host = "False"
|
||||||
|
+ethernet0.addressType = "static"
|
||||||
|
+ethernet0.pciSlotNumber = "192"
|
||||||
|
+ethernet0.present = "TRUE"
|
||||||
|
+ethernet0.uptCompatibility = "TRUE"
|
||||||
|
+ethernet0.virtualDev = "vmxnet3"
|
||||||
|
+floppy0.present = "FALSE"
|
||||||
|
+ide0:0.deviceType = "atapi-cdrom"
|
||||||
|
+ide0:0.present = "TRUE"
|
||||||
|
+ide0:0.startConnected = "FALSE"
|
||||||
|
+ethernet0.opaqueNetwork.id = "a2636d32-fc15-469f-b3b4-f8193fefd097"
|
||||||
|
+ethernet0.opaqueNetwork.type = "nsx.LogicalSwitch"
|
||||||
|
+ethernet0.address = "00:00:00:00:00:00"
|
||||||
|
+vmotion.svga.mobMaxSize = "8388608"
|
||||||
|
+vmotion.svga.graphicsMemoryKB = "8192"
|
||||||
|
+scsi0:0.deviceType = "scsi-hardDisk"
|
||||||
|
+scsi0:0.fileName = "wild1.vmdk"
|
||||||
|
+sched.scsi0:0.shares = "normal"
|
||||||
|
+sched.scsi0:0.throughputCap = "off"
|
||||||
|
+scsi0:0.present = "TRUE"
|
||||||
|
+scsi0:1.deviceType = "scsi-hardDisk"
|
||||||
|
+scsi0:1.fileName = "wild2.vmdk"
|
||||||
|
+sched.scsi0:1.shares = "normal"
|
||||||
|
+sched.scsi0:1.throughputCap = "off"
|
||||||
|
+scsi0:1.present = "TRUE"
|
||||||
|
+bios.bootDelay = "10000"
|
||||||
|
+scsi0:1.redo = ""
|
||||||
|
+scsi0:0.redo = ""
|
||||||
|
+ide0:0.fileName = "emptyBackingString"
|
||||||
|
+ide0:0.clientDevice = "TRUE"
|
||||||
|
+cleanShutdown = "FALSE"
|
||||||
|
diff --git a/tests/vmx2xmldata/esx-in-the-wild-14.xml b/tests/vmx2xmldata/esx-in-the-wild-14.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..dd5c2434ee1
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/vmx2xmldata/esx-in-the-wild-14.xml
|
||||||
|
@@ -0,0 +1,35 @@
|
||||||
|
+<domain type='vmware'>
|
||||||
|
+ <name>wild14</name>
|
||||||
|
+ <uuid>421b223a-f2c1-c7c9-a399-34d2d9fde26d</uuid>
|
||||||
|
+ <description>execution env sandbox automation platform</description>
|
||||||
|
+ <memory unit='KiB'>33554432</memory>
|
||||||
|
+ <currentMemory unit='KiB'>33554432</currentMemory>
|
||||||
|
+ <vcpu placement='static'>12</vcpu>
|
||||||
|
+ <os>
|
||||||
|
+ <type arch='x86_64'>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='disk'>
|
||||||
|
+ <source file='[datastore] directory/wild1.vmdk'/>
|
||||||
|
+ <target dev='sda' bus='scsi'/>
|
||||||
|
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||||
|
+ </disk>
|
||||||
|
+ <disk type='file' device='disk'>
|
||||||
|
+ <source file='[datastore] directory/wild2.vmdk'/>
|
||||||
|
+ <target dev='sdb' bus='scsi'/>
|
||||||
|
+ <address type='drive' controller='0' bus='0' target='0' unit='1'/>
|
||||||
|
+ </disk>
|
||||||
|
+ <controller type='scsi' index='0' model='vmpvscsi'/>
|
||||||
|
+ <interface type='null'>
|
||||||
|
+ <mac address='00:00:00:00:00:00' type='static'/>
|
||||||
|
+ <model type='vmxnet3'/>
|
||||||
|
+ </interface>
|
||||||
|
+ <video>
|
||||||
|
+ <model type='vmvga' vram='8192' primary='yes'/>
|
||||||
|
+ </video>
|
||||||
|
+ </devices>
|
||||||
|
+</domain>
|
||||||
|
diff --git a/tests/vmx2xmltest.c b/tests/vmx2xmltest.c
|
||||||
|
index 0fb5f13f72c..3ca95410008 100644
|
||||||
|
--- a/tests/vmx2xmltest.c
|
||||||
|
+++ b/tests/vmx2xmltest.c
|
||||||
|
@@ -262,6 +262,7 @@ mymain(void)
|
||||||
|
DO_TEST("esx-in-the-wild-9");
|
||||||
|
DO_TEST("esx-in-the-wild-10");
|
||||||
|
DO_TEST("esx-in-the-wild-11");
|
||||||
|
+ DO_TEST("esx-in-the-wild-14");
|
||||||
|
|
||||||
|
DO_TEST("gsx-in-the-wild-1");
|
||||||
|
DO_TEST("gsx-in-the-wild-2");
|
@ -270,7 +270,7 @@
|
|||||||
Summary: Library providing a simple virtualization API
|
Summary: Library providing a simple virtualization API
|
||||||
Name: libvirt
|
Name: libvirt
|
||||||
Version: 10.0.0
|
Version: 10.0.0
|
||||||
Release: 6.6%{?dist}%{?extra_release}.alma.1
|
Release: 6.7%{?dist}%{?extra_release}.alma.1
|
||||||
License: GPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND OFL-1.1
|
License: GPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND OFL-1.1
|
||||||
URL: https://libvirt.org/
|
URL: https://libvirt.org/
|
||||||
|
|
||||||
@ -400,6 +400,8 @@ Patch88: libvirt-qemu-Fix-migration-with-disabled-vmx--CPU-features.patch
|
|||||||
Patch89: libvirt-vmx-Do-not-require-DVS-Port-ID.patch
|
Patch89: libvirt-vmx-Do-not-require-DVS-Port-ID.patch
|
||||||
# https://github.com/libvirt/libvirt/commit/db622081e0fa55b481da1fc7fb81279224a60f88
|
# https://github.com/libvirt/libvirt/commit/db622081e0fa55b481da1fc7fb81279224a60f88
|
||||||
Patch90: libvirt-vmx-Do-not-require-all-ID-data-for-VMWare-Distributed-Switch.patch
|
Patch90: libvirt-vmx-Do-not-require-all-ID-data-for-VMWare-Distributed-Switch.patch
|
||||||
|
# https://github.com/libvirt/libvirt/commit/94e8a5b650a270c28ebfce22a1bd834f88a095a3
|
||||||
|
Patch91: libvirt-vmx-Allow-to-appear-in-VMX-file-keys.patch
|
||||||
|
|
||||||
|
|
||||||
Requires: libvirt-daemon = %{version}-%{release}
|
Requires: libvirt-daemon = %{version}-%{release}
|
||||||
@ -2703,6 +2705,9 @@ exit 0
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Sep 16 2024 Eduard Abdullin <eabdullin@almalinux.org> - 10.0.0-6.7.el9_4.alma.1
|
||||||
|
- vmx: Allow '*' to appear in VMX file keys
|
||||||
|
|
||||||
* Wed Jul 24 2024 Eduard Abdullin <eabdullin@almalinux.org> - 10.0.0-6.6.el9_4.alma.1
|
* Wed Jul 24 2024 Eduard Abdullin <eabdullin@almalinux.org> - 10.0.0-6.6.el9_4.alma.1
|
||||||
- vmx: Do not require all ID data for VMWare Distributed Switch
|
- vmx: Do not require all ID data for VMWare Distributed Switch
|
||||||
- vmx: Do not require DVS Port ID
|
- vmx: Do not require DVS Port ID
|
||||||
|
Loading…
Reference in New Issue
Block a user