On Tue, May 12, 2026 at 06:23:30PM +0200, Martin Kletzander via Devel wrote: > From: Martin Kletzander <[email protected]> > > The difference is that the usual UUID is supposed to be unique per host > and instanceUuid should be unique across the whole cluster. One could > think of them as HUID and CUID (as the first "U" does apparently mean > something else in the Broadcom world). That _would_ be fine for our > scenario. However, that piece of information turns out to be false as > well and the UUID we were using (`config.uuid`, or in VMX the > `uuid.bios`) can be the same in two machines on the same host.
WTF is the normal "UUID" used for ? Is that being exposed to the guest OS as the SMBIOS UUID, while instanceUuid is used for host side tracking ? Since fairly recently we do have a <hwuuid> field now which can be used in the case of the SMBIOS UUID being different from the host side UUID. Possibly we should include <hwuuid> in ESX if this can differ. > > Fortunately the `FindByUuid()` function can also search for VMs based on > their `instanceUuid`, dictated by the so far omitted third parameter. > Unfortunately that parameter is not parsed (or at least properly) before > vSphere API 4.0 (the documentation says 2.0, but we are not using that > namespace and 4.0 is the lowest we can target), which we are not > specifying in the server returns a 500 HTTP error if we use the > `instanceUuid` parameter. > > So this patch adds the `SOAPAction: urn:vim25/4.0` header to the cURL > requests which makes that `FindByUuid()` function work even with the > `instanceUuid` set, but without any extra labor. > > After that this patch also changes all UUIDs to be parsed from the > `config.instanceUuid` (or `vc.uuid` in the VMX, but there's a fallback > to the old `uuid.bios`) and adjusts tests accordingly. > > Last, but not least it changes the parameter to aforementioned function > to be always true and henceforth all searching ought to be done with the > more unique ID. > diff --git a/tests/vmx2xmldata/esx-in-the-wild-10.xml > b/tests/vmx2xmldata/esx-in-the-wild-10.xml > index 1b1fdf06623f..3a8bb20140a1 100644 > --- a/tests/vmx2xmldata/esx-in-the-wild-10.xml > +++ b/tests/vmx2xmldata/esx-in-the-wild-10.xml > @@ -1,6 +1,6 @@ > <domain type='vmware'> > <name>w2019biosvmware</name> > - <uuid>421a6177-5aa9-abb7-5924-fc376c18a1b4</uuid> > + <uuid>501af9f2-6d29-1c76-19a9-b208ede5f374</uuid> Hmmm, seeing this indicates that this change is effectively a semantic incompatibility across the libvirt upgrade path. Any management application which is using the libvirt reported UUID for tracking / correlating will effectively see all their VMs disappear and an entirely new set appear with different UUIDs. This is the kind of upgrade incompatibility that libvirt promises not to impose on applications. What options do we have for mitigation ? Given that we don't have /etc/libvirt config files for stateless drivers, I feel like we need to at minimum have a URI parameter to allow the toggle of old/new UUID representations. A strict view would be for the old behaviour to be the default, but on the other hand the old behaviour violates our API semantics by not actually being unique. So that could lean me towards accepting the compat break, in order to get better API compliance, as long as we have the URI param to opt-in to the original behaviour > <genid>13c67c91-9f47-526f-b0d6-e4dd2e4bb4f9</genid> > <memory unit='KiB'>4194304</memory> > <currentMemory unit='KiB'>4194304</currentMemory> > diff --git a/tests/vmx2xmldata/esx-in-the-wild-11.xml > b/tests/vmx2xmldata/esx-in-the-wild-11.xml > index 0dd297af43f0..6398e50c5c6c 100644 > --- a/tests/vmx2xmldata/esx-in-the-wild-11.xml > +++ b/tests/vmx2xmldata/esx-in-the-wild-11.xml > @@ -1,6 +1,6 @@ > <domain type='vmware'> > <name>esx6.7-rhel7.7-x86_64</name> > - <uuid>422c0152-63ab-cd03-9650-4301ae77aefd</uuid> > + <uuid>502ca229-12eb-24f6-0c37-c025ff5da005</uuid> > <memory unit='KiB'>2097152</memory> > <currentMemory unit='KiB'>2097152</currentMemory> > <vcpu placement='static'>1</vcpu> > diff --git a/tests/vmx2xmldata/esx-in-the-wild-12.xml > b/tests/vmx2xmldata/esx-in-the-wild-12.xml > index ac83982b9b88..d505ff58d12d 100644 > --- a/tests/vmx2xmldata/esx-in-the-wild-12.xml > +++ b/tests/vmx2xmldata/esx-in-the-wild-12.xml > @@ -1,6 +1,6 @@ > <domain type='vmware'> > <name>Auto-esx8.0-rhell9.3-efi-with-empty-cdrom</name> > - <uuid>4220fca7-11dd-d67e-19cc-fcad0a37c342</uuid> > + <uuid>5020ca5b-7ac1-5c44-cfa1-9e762e2f933b</uuid> > <memory unit='KiB'>2097152</memory> > <currentMemory unit='KiB'>2097152</currentMemory> > <vcpu placement='static'>1</vcpu> > diff --git a/tests/vmx2xmldata/esx-in-the-wild-13.xml > b/tests/vmx2xmldata/esx-in-the-wild-13.xml > index cef9fd4e48c9..2bea51a087eb 100644 > --- a/tests/vmx2xmldata/esx-in-the-wild-13.xml > +++ b/tests/vmx2xmldata/esx-in-the-wild-13.xml > @@ -1,6 +1,6 @@ > <domain type='vmware'> > <name>Test-Mig-VM-1 (01ce57d0-4e20-41a5-8b6c-bcbf49a032ec)</name> > - <uuid>421eb458-5448-fc12-2074-83d5e419e138</uuid> > + <uuid>01ce57d0-4e20-41a5-8b6c-bcbf49a032ec</uuid> > <description>name:Test-Mig-VM-1 > userid:962314ba515c48388a0e95c0961709ff > username:admin > diff --git a/tests/vmx2xmldata/esx-in-the-wild-14.xml > b/tests/vmx2xmldata/esx-in-the-wild-14.xml > index f10707d1d412..574dd2097455 100644 > --- a/tests/vmx2xmldata/esx-in-the-wild-14.xml > +++ b/tests/vmx2xmldata/esx-in-the-wild-14.xml > @@ -1,6 +1,6 @@ > <domain type='vmware'> > <name>wild14</name> > - <uuid>421b223a-f2c1-c7c9-a399-34d2d9fde26d</uuid> > + <uuid>501b831e-75d8-15f8-36fa-b9e225f395aa</uuid> > <description>execution env sandbox automation platform</description> > <memory unit='KiB'>33554432</memory> > <currentMemory unit='KiB'>33554432</currentMemory> > diff --git a/tests/vmx2xmldata/esx-in-the-wild-15.xml > b/tests/vmx2xmldata/esx-in-the-wild-15.xml > index 78d15e1538e6..4c753f87e2ea 100644 > --- a/tests/vmx2xmldata/esx-in-the-wild-15.xml > +++ b/tests/vmx2xmldata/esx-in-the-wild-15.xml > @@ -1,6 +1,6 @@ > <domain type='vmware'> > <name>dokuwiki</name> > - <uuid>420338bd-1c9e-ad50-99a2-59e92ddda8b6</uuid> > + <uuid>500341d5-fe23-ac46-8cb3-77a8e5a1143d</uuid> > <memory unit='KiB'>2097152</memory> > <currentMemory unit='KiB'>2097152</currentMemory> > <vcpu placement='static'>2</vcpu> > diff --git a/tests/vmx2xmldata/esx-in-the-wild-16.xml > b/tests/vmx2xmldata/esx-in-the-wild-16.xml > index 51746dd77ef0..8c5bc7f43513 100644 > --- a/tests/vmx2xmldata/esx-in-the-wild-16.xml > +++ b/tests/vmx2xmldata/esx-in-the-wild-16.xml > @@ -1,6 +1,6 @@ > <domain type='vmware'> > <name>Auto-esx8.0-rhel9.4-efi-nvme-disk</name> > - <uuid>4220df89-e3a8-8513-f611-ad252bfd7047</uuid> > + <uuid>5020196e-c5c8-7310-fcdb-d2933d0c4b2f</uuid> > <memory unit='KiB'>2097152</memory> > <currentMemory unit='KiB'>2097152</currentMemory> > <vcpu placement='static'>1</vcpu> > diff --git a/tests/vmx2xmldata/esx-in-the-wild-17.xml > b/tests/vmx2xmldata/esx-in-the-wild-17.xml > index 725f21bdf601..506e08fc54ec 100644 > --- a/tests/vmx2xmldata/esx-in-the-wild-17.xml > +++ b/tests/vmx2xmldata/esx-in-the-wild-17.xml > @@ -1,6 +1,6 @@ > <domain type='vmware'> > <name>esx8.0-win11-with-second-disk-in-subfolder</name> > - <uuid>42256ec1-e066-9364-3dd1-36a0b75263dd</uuid> > + <uuid>50250f27-538b-5091-a43b-a50ce95f2382</uuid> > <genid>3191ed70-eb21-9c71-2478-373fb27fed9b</genid> > <memory unit='KiB'>4194304</memory> > <currentMemory unit='KiB'>4194304</currentMemory> > diff --git a/tests/vmx2xmldata/esx-in-the-wild-5.xml > b/tests/vmx2xmldata/esx-in-the-wild-5.xml > index c88e60bdc070..a86119508c70 100644 > --- a/tests/vmx2xmldata/esx-in-the-wild-5.xml > +++ b/tests/vmx2xmldata/esx-in-the-wild-5.xml > @@ -1,6 +1,6 @@ > <domain type='vmware'> > <name>vmtest.local</name> > - <uuid>423e94a9-a1c7-b31d-7161-76c7586c830e</uuid> > + <uuid>503e06db-f8d5-458e-a2fb-f9820253a7be</uuid> > <description>Centos 5.5 64bit Server</description> > <memory unit='KiB'>2097152</memory> > <currentMemory unit='KiB'>2097152</currentMemory> > diff --git a/tests/vmx2xmldata/esx-in-the-wild-6.xml > b/tests/vmx2xmldata/esx-in-the-wild-6.xml > index 805f03356129..f252304f9796 100644 > --- a/tests/vmx2xmldata/esx-in-the-wild-6.xml > +++ b/tests/vmx2xmldata/esx-in-the-wild-6.xml > @@ -1,6 +1,6 @@ > <domain type='vmware'> > <name>el6-test</name> > - <uuid>564d15d4-d062-fe9a-80f5-eb8e1a2c3afc</uuid> > + <uuid>5200b69b-8d88-7bdf-a14a-02705d653772</uuid> > <memory unit='KiB'>1048576</memory> > <currentMemory unit='KiB'>1048576</currentMemory> > <vcpu placement='static'>1</vcpu> > diff --git a/tests/vmx2xmldata/esx-in-the-wild-7.xml > b/tests/vmx2xmldata/esx-in-the-wild-7.xml > index b641574776b6..076655f37ac2 100644 > --- a/tests/vmx2xmldata/esx-in-the-wild-7.xml > +++ b/tests/vmx2xmldata/esx-in-the-wild-7.xml > @@ -1,6 +1,6 @@ > <domain type='vmware'> > <name>esx-rhel6-mini-with-scsi-device</name> > - <uuid>564d9176-621f-0239-f5ad-3a002371953b</uuid> > + <uuid>52409533-33a2-56c5-36ce-80d605f8ecf4</uuid> > <memory unit='KiB'>2097152</memory> > <currentMemory unit='KiB'>2097152</currentMemory> > <vcpu placement='static'>1</vcpu> > diff --git a/tests/vmx2xmldata/esx-in-the-wild-8.xml > b/tests/vmx2xmldata/esx-in-the-wild-8.xml > index f13e6f744880..2ef609e87bdb 100644 > --- a/tests/vmx2xmldata/esx-in-the-wild-8.xml > +++ b/tests/vmx2xmldata/esx-in-the-wild-8.xml > @@ -1,6 +1,6 @@ > <domain type='vmware'> > <name>RHEL7_10_NICs</name> > - <uuid>42359420-99dc-4261-5264-ba58ddae20e4</uuid> > + <uuid>50351de6-7d56-29ab-9d72-c7f9ea3fcfd0</uuid> > <memory unit='KiB'>2097152</memory> > <currentMemory unit='KiB'>2097152</currentMemory> > <vcpu placement='static'>8</vcpu> > diff --git a/tests/vmx2xmldata/esx-in-the-wild-9.xml > b/tests/vmx2xmldata/esx-in-the-wild-9.xml > index 6b4d878ab18a..4fbe141f6c47 100644 > --- a/tests/vmx2xmldata/esx-in-the-wild-9.xml > +++ b/tests/vmx2xmldata/esx-in-the-wild-9.xml > @@ -1,6 +1,6 @@ > <domain type='vmware'> > <name>v2v-windows-kkulkarn</name> > - <uuid>42009372-17da-be73-779d-007ccf1bd228</uuid> > + <uuid>5000d2b0-616e-6129-8c06-82b07440a871</uuid> > <description>MIQ GUID=b55c806d-99b9-4fa5-bbcc-a4de04f822e5</description> > <memory unit='KiB'>16777216</memory> > <currentMemory unit='KiB'>16777216</currentMemory> > -- > 2.54.0 > With regards, Daniel -- |: https://berrange.com ~~ https://hachyderm.io/@berrange :| |: https://libvirt.org ~~ https://entangle-photo.org :| |: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
