[libvirt] [PATCH] esx: Allow '-' in VMX entry names

Add a test for this. Reported by Frank Dirks. --- src/util/conf.c | 2 +- src/util/conf.h | 4 +- tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.vmx | 97 +++++++++++++++++++++++ tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.xml | 34 ++++++++ tests/vmx2xmltest.c | 1 + 5 files changed, 135 insertions(+), 3 deletions(-) create mode 100644 tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.vmx create mode 100644 tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.xml diff --git a/src/util/conf.c b/src/util/conf.c index 8682f7b..0aef2c2 100644 --- a/src/util/conf.c +++ b/src/util/conf.c @@ -561,7 +561,7 @@ virConfParseName(virConfParserCtxtPtr ctxt) while ((ctxt->cur < ctxt->end) && (c_isalnum(CUR) || (CUR == '_') || ((ctxt->conf->flags & VIR_CONF_FLAG_VMX_FORMAT) && - ((CUR == ':') || (CUR == '.'))))) + ((CUR == ':') || (CUR == '.') || (CUR == '-'))))) NEXT; ret = strndup(base, ctxt->cur - base); if (ret == NULL) { diff --git a/src/util/conf.h b/src/util/conf.h index 8282bd4..e7d470d 100644 --- a/src/util/conf.h +++ b/src/util/conf.h @@ -25,8 +25,8 @@ typedef enum { } virConfType; typedef enum { - VIR_CONF_FLAG_VMX_FORMAT = 1, /* allow : and . in names for compatibility with - VMware VMX configuration file, but restrict + VIR_CONF_FLAG_VMX_FORMAT = 1, /* allow ':', '.' and '-' in names for compatibility + with VMware VMX configuration file, but restrict allowed value types to string only */ } virConfFlags; diff --git a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.vmx b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.vmx new file mode 100644 index 0000000..6b11cc2 --- /dev/null +++ b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.vmx @@ -0,0 +1,97 @@ +.encoding = "UTF-8" +config.version = "8" +virtualHW.version = "7" +pciBridge0.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" +nvram = "vmtest.nvram" +virtualHW.productCompatibility = "hosted" +powerType.powerOff = "soft" +powerType.powerOn = "hard" +powerType.suspend = "hard" +powerType.reset = "soft" +displayName = "vmtest.local" +extendedConfigFile = "vmtest.vmxf" +numvcpus = "2" +scsi0.present = "true" +scsi0.sharedBus = "none" +scsi0.virtualDev = "lsilogic" +memsize = "2048" +scsi0:0.present = "true" +scsi0:0.fileName = "vmtest-000001.vmdk" +scsi0:0.deviceType = "scsi-hardDisk" +sched.scsi0:0.shares = "normal" +ide0:0.present = "true" +ide0:0.fileName = "/vmfs/volumes/4af0231d-1eff559a-6369-0024e84773b6/isos/CentOS-5.5-x86_64-bin-DVD-1of2.iso" +ide0:0.deviceType = "cdrom-image" +ide1:0.present = "true" +ide1:0.clientDevice = "true" +ide1:0.deviceType = "atapi-cdrom" +ide1:0.startConnected = "false" +ethernet0.present = "true" +ethernet0.virtualDev = "e1000" +ethernet0.networkName = "VM-LAN" +ethernet0.addressType = "vpx" +ethernet0.generatedAddress = "00:50:56:be:00:15" +guestOS = "centos-64" +uuid.bios = "42 3e 94 a9 a1 c7 b3 1d-71 61 76 c7 58 6c 83 0e" +vc.uuid = "50 3e 06 db f8 d5 45 8e-a2 fb f9 82 02 53 a7 be" +log.fileName = "vmware.log" +snapshot.action = "keep" +sched.cpu.min = "0" +sched.cpu.units = "mhz" +sched.cpu.shares = "normal" +sched.mem.minsize = "0" +sched.mem.shares = "normal" +tools.upgrade.policy = "manual" +cpuid.80000001.eax = "--------------------------------" +cpuid.80000001.eax.amd = "--------------------------------" +cpuid.80000001.ebx = "--------------------------------" +cpuid.80000001.ebx.amd = "--------------------------------" +cpuid.80000001.ecx = "--------------------------------" +cpuid.80000001.ecx.amd = "--------------------------------" +cpuid.80000001.edx = "-----------H--------------------" +cpuid.80000001.edx.amd = "-----------H--------------------" +replay.supported = "FALSE" +replay.filename = "" +scsi0:0.redo = "" +pciBridge0.pciSlotNumber = "17" +pciBridge4.pciSlotNumber = "21" +pciBridge5.pciSlotNumber = "22" +pciBridge6.pciSlotNumber = "23" +pciBridge7.pciSlotNumber = "24" +scsi0.pciSlotNumber = "16" +ethernet0.pciSlotNumber = "33" +vmci0.pciSlotNumber = "32" +scsi0.sasWWID = "50 05 05 6b 91 ac 28 90" +vmotion.checkpointFBSize = "4194304" +hostCPUID.0 = "0000000568747541444d416369746e65" +hostCPUID.1 = "00100f420004080000802009178bfbff" +hostCPUID.80000001 = "00100f42000004ef000037ffefd3fbff" +guestCPUID.0 = "0000000568747541444d416369746e65" +guestCPUID.1 = "00100f420000080080802001078bfbff" +guestCPUID.80000001 = "00100f42000004ef000001e9ebd3fbff" +userCPUID.0 = "0000000568747541444d416369746e65" +userCPUID.1 = "00100f420004080080802001078bfbff" +userCPUID.80000001 = "00100f42000004ef000001e9ebd3fbff" +evcCompatibilityMode = "FALSE" +sched.scsi0:0.throughputCap = "off" +guest.commands.sharedSecretLogin.hostd-quiescedsnap = "9ARGZmWQPtsUVrAVi/XviNUSQUF0td426itHw2cqHwg=" +floppy0.present = "FALSE" +vmci0.id = "1483506446" +tools.syncTime = "FALSE" +annotation = "Centos 5.5 64bit Server" +uuid.location = "56 4d 58 2e 12 3c 07 e4-0b 84 af d9 ea 5d 83 0a" +cleanShutdown = "FALSE" +sched.swap.derivedName = "/vmfs/volumes/4bd1a428-b723f5bb-d406-0024e84773db/vmtest/vmtest-56acee0d.vswp" diff --git a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.xml b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.xml new file mode 100644 index 0000000..c324673 --- /dev/null +++ b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.xml @@ -0,0 +1,34 @@ +<domain type='vmware'> + <name>vmtest.local</name> + <uuid>423e94a9-a1c7-b31d-7161-76c7586c830e</uuid> + <description>Centos 5.5 64bit Server</description> + <memory>2097152</memory> + <currentMemory>2097152</currentMemory> + <vcpu>2</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/vmtest-000001.vmdk'/> + <target dev='sda' bus='scsi'/> + <address type='drive' controller='0' bus='0' unit='0'/> + </disk> + <disk type='file' device='cdrom'> + <source file='[4af0231d-1eff559a-6369-0024e84773b6] isos/CentOS-5.5-x86_64-bin-DVD-1of2.iso'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' unit='0'/> + </disk> + <controller type='scsi' index='0' model='lsilogic'/> + <controller type='ide' index='0'/> + <interface type='bridge'> + <mac address='00:50:56:be:00:15'/> + <source bridge='VM-LAN'/> + <model type='e1000'/> + </interface> + </devices> +</domain> diff --git a/tests/vmx2xmltest.c b/tests/vmx2xmltest.c index 67296d6..c71f536 100644 --- a/tests/vmx2xmltest.c +++ b/tests/vmx2xmltest.c @@ -274,6 +274,7 @@ mymain(int argc, char **argv) DO_TEST("esx-in-the-wild-2", "esx-in-the-wild-2", esxVI_ProductVersion_ESX35); DO_TEST("esx-in-the-wild-3", "esx-in-the-wild-3", esxVI_ProductVersion_ESX35); DO_TEST("esx-in-the-wild-4", "esx-in-the-wild-4", esxVI_ProductVersion_ESX35); + DO_TEST("esx-in-the-wild-5", "esx-in-the-wild-5", esxVI_ProductVersion_ESX40); DO_TEST("gsx-in-the-wild-1", "gsx-in-the-wild-1", esxVI_ProductVersion_ESX35); DO_TEST("gsx-in-the-wild-2", "gsx-in-the-wild-2", esxVI_ProductVersion_ESX35); -- 1.7.0.4

On 09/22/2010 04:34 PM, Matthias Bolte wrote:
Add a test for this.
Always the best part of a one-liner patch :)
Reported by Frank Dirks. --- src/util/conf.c | 2 +- src/util/conf.h | 4 +- tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.vmx | 97 +++++++++++++++++++++++ tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.xml | 34 ++++++++ tests/vmx2xmltest.c | 1 + 5 files changed, 135 insertions(+), 3 deletions(-) create mode 100644 tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.vmx create mode 100644 tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.xml
ACK. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

2010/9/23 Eric Blake <eblake@redhat.com>:
On 09/22/2010 04:34 PM, Matthias Bolte wrote:
Add a test for this.
Always the best part of a one-liner patch :)
Reported by Frank Dirks. --- src/util/conf.c | 2 +- src/util/conf.h | 4 +- tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.vmx | 97 +++++++++++++++++++++++ tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.xml | 34 ++++++++ tests/vmx2xmltest.c | 1 + 5 files changed, 135 insertions(+), 3 deletions(-) create mode 100644 tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.vmx create mode 100644 tests/vmx2xmldata/vmx2xml-esx-in-the-wild-5.xml
ACK.
Thanks, pushed. Matthias

On 09/23/2010 06:43 PM, Matthias Bolte wrote: <snip>
Thanks, pushed.
Hi Frank, Matthias has applied a fix for the dumpxml problem to the main libvirt source code. Would you have the time to download and try the very latest libvirt development source code, to confirm it fixes the problem? :) Regards and best wishes, Justin Clift
participants (3)
-
Eric Blake
-
Justin Clift
-
Matthias Bolte