]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
esx: Track VMs by instanceUuid instead of UUID
authorMartin Kletzander <mkletzan@redhat.com>
Tue, 12 May 2026 10:16:54 +0000 (12:16 +0200)
committerMartin Kletzander <mkletzan@redhat.com>
Mon, 18 May 2026 08:22:15 +0000 (10:22 +0200)
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.

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.

To give users (and management applications) the possibility to revert
back to the previous (legacy) behaviour a new URI query parameter is
introduced, called `legacy_uuid` which, if set to `1`, still keeps the
code working as it did before this patch.

Last, but not least it changes the parameter to aforementioned function
to be true (unless the legacy behaviour is requested, of course) and
henceforth all searching ought to be done with the more unique ID.

Resolves: https://redhat.atlassian.net/browse/RHEL-174300
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
31 files changed:
docs/drvesx.rst
src/esx/esx_driver.c
src/esx/esx_util.c
src/esx/esx_util.h
src/esx/esx_vi.c
src/esx/esx_vi.h
src/vmx/vmx.c
tests/vmx2xmldata/case-insensitive-1.xml
tests/vmx2xmldata/case-insensitive-2.xml
tests/vmx2xmldata/esx-in-the-wild-1.xml
tests/vmx2xmldata/esx-in-the-wild-10.xml
tests/vmx2xmldata/esx-in-the-wild-11.xml
tests/vmx2xmldata/esx-in-the-wild-12.xml
tests/vmx2xmldata/esx-in-the-wild-13.xml
tests/vmx2xmldata/esx-in-the-wild-14.xml
tests/vmx2xmldata/esx-in-the-wild-15.xml
tests/vmx2xmldata/esx-in-the-wild-16.xml
tests/vmx2xmldata/esx-in-the-wild-17.xml
tests/vmx2xmldata/esx-in-the-wild-2.xml
tests/vmx2xmldata/esx-in-the-wild-3.xml
tests/vmx2xmldata/esx-in-the-wild-4.xml
tests/vmx2xmldata/esx-in-the-wild-5.xml
tests/vmx2xmldata/esx-in-the-wild-6.xml
tests/vmx2xmldata/esx-in-the-wild-7.xml
tests/vmx2xmldata/esx-in-the-wild-8.xml
tests/vmx2xmldata/esx-in-the-wild-9.xml
tests/vmx2xmldata/fusion-in-the-wild-1.xml
tests/vmx2xmldata/gsx-in-the-wild-1.xml
tests/vmx2xmldata/gsx-in-the-wild-2.xml
tests/vmx2xmldata/gsx-in-the-wild-3.xml
tests/vmx2xmldata/gsx-in-the-wild-4.xml

index 84416562ba3f6d66e8a3cfe6484a11739b3be6fc..dcf9e736783199acf6b82bdddf210fadf8426b43 100644 (file)
@@ -156,6 +156,15 @@ The driver understands the extra parameters shown below.
 |                 |                             | ``no_verify`` is set        |
 |                 |                             | to ``1``.                   |
 +-----------------+-----------------------------+-----------------------------+
+| ``legacy_uuid`` | ``0`` or ``1``              | If set to ``1``, the driver |
+|                 |                             | will track VMs based on     |
+|                 |                             | their "Host-unique" UUID.   |
+|                 |                             | If set to ``0`` it will use |
+|                 |                             | the "Cluster-unique" UUID   |
+|                 |                             | instead. The default value  |
+|                 |                             | is ``0``.                   |
+|                 |                             | :since:`Since 12.4.0`.      |
++-----------------+-----------------------------+-----------------------------+
 
 Authentication
 ~~~~~~~~~~~~~~
@@ -172,6 +181,21 @@ distinguish between requests for ESX server and vCenter.
 unrestricted ``root`` account. Problems may occur if you use a restricted
 account. Detailed testing with restricted accounts has not been done yet.
 
+UUID Stability
+~~~~~~~~~~~~~~
+
+:since:`Since 12.4.0` there is a change to which UUIDs a domain can be
+identified with.  Before this version there was a possible clash of UUIDs even
+on the same host, leading to unexpected issues.  In order to fix this libvirt
+started using a different UUID which might cause issues if any user has a domain
+UUID saved anywhere.  The older UUID is still available under ``<hwuuid>`` in
+the `General metadata <formatdomain.html#general-metadata>`__ section of the
+domain XML.
+
+In order to restore the previous behaviour parameter ``legacy_uuid=1`` (see
+`Extra parameters`_) can be appended to the URI, but only if needed as it may
+cause the aforementioned issues.
+
 Certificates for HTTPS
 ~~~~~~~~~~~~~~~~~~~~~~
 
index 6ff0db48ac02006e0149dfe5eae501d01fa6b404..c5b3fa47b6a2bedb7f8922a8db87969fb6d6dd39 100644 (file)
@@ -1418,8 +1418,9 @@ esxDomainLookupByID(virConnectPtr conn, int id)
     if (esxVI_String_AppendValueListToList(&propertyNameList,
                                            "configStatus\0"
                                            "name\0"
-                                           "runtime.powerState\0"
-                                           "config.uuid\0") < 0 ||
+                                           "runtime.powerState\0") < 0 ||
+        esxVI_String_AppendValueToList(&propertyNameList,
+                                       priv->primary->uuid_key) < 0 ||
         esxVI_LookupVirtualMachineList(priv->primary, propertyNameList,
                                        &virtualMachineList) < 0) {
         goto cleanup;
@@ -1439,6 +1440,7 @@ esxDomainLookupByID(virConnectPtr conn, int id)
             continue;
 
         if (esxVI_GetVirtualMachineIdentity(virtualMachine,
+                                            priv->primary->uuid_key,
                                             &id_candidate, &name_candidate,
                                             uuid_candidate) < 0) {
             goto cleanup;
@@ -1486,7 +1488,7 @@ esxDomainLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
         esxVI_LookupVirtualMachineByUuid(priv->primary, uuid, propertyNameList,
                                          &virtualMachine,
                                          esxVI_Occurrence_RequiredItem) < 0 ||
-        esxVI_GetVirtualMachineIdentity(virtualMachine, &id, &name, NULL) < 0 ||
+        esxVI_GetVirtualMachineIdentity(virtualMachine, NULL, &id, &name, NULL) < 0 ||
         esxVI_GetVirtualMachinePowerState(virtualMachine, &powerState) < 0) {
         goto cleanup;
     }
@@ -1521,15 +1523,17 @@ esxDomainLookupByName(virConnectPtr conn, const char *name)
 
     if (esxVI_String_AppendValueListToList(&propertyNameList,
                                            "configStatus\0"
-                                           "runtime.powerState\0"
-                                           "config.uuid\0") < 0 ||
+                                           "runtime.powerState\0") < 0 ||
+        esxVI_String_AppendValueToList(&propertyNameList,
+                                       priv->primary->uuid_key) < 0 ||
         esxVI_LookupVirtualMachineByName(priv->primary, name, propertyNameList,
                                          &virtualMachine,
                                          esxVI_Occurrence_RequiredItem) < 0) {
         goto cleanup;
     }
 
-    if (esxVI_GetVirtualMachineIdentity(virtualMachine, &id, NULL, uuid) < 0 ||
+    if (esxVI_GetVirtualMachineIdentity(virtualMachine, priv->primary->uuid_key,
+                                        &id, NULL, uuid) < 0 ||
         esxVI_GetVirtualMachinePowerState(virtualMachine, &powerState) < 0) {
         goto cleanup;
     }
@@ -2583,7 +2587,7 @@ esxDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
                                          esxVI_Occurrence_RequiredItem) < 0 ||
         esxVI_GetVirtualMachineMORef(virtualMachine, &moref) < 0 ||
         esxVI_GetVirtualMachinePowerState(virtualMachine, &powerState) < 0 ||
-        esxVI_GetVirtualMachineIdentity(virtualMachine, &id, NULL, NULL) < 0 ||
+        esxVI_GetVirtualMachineIdentity(virtualMachine, NULL, &id, NULL, NULL) < 0 ||
         esxVI_GetStringValue(virtualMachine, "config.files.vmPathName",
                              &vmPathName, esxVI_Occurrence_RequiredItem) < 0) {
         goto cleanup;
@@ -2630,6 +2634,9 @@ esxDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
         if (powerState != esxVI_VirtualMachinePowerState_PoweredOff)
             def->id = id;
 
+        if (priv->primary->legacy_uuid)
+            memcpy(def->uuid, def->hw_uuid, VIR_UUID_BUFLEN);
+
         xml = virDomainDefFormat(def, priv->xmlopt,
                                  virDomainDefFormatConvertXMLFlags(flags));
     }
@@ -2771,7 +2778,7 @@ esxConnectListDefinedDomains(virConnectPtr conn, char **const names, int maxname
 
         names[count] = NULL;
 
-        if (esxVI_GetVirtualMachineIdentity(virtualMachine, NULL, &names[count],
+        if (esxVI_GetVirtualMachineIdentity(virtualMachine, NULL, NULL, &names[count],
                                             NULL) < 0) {
             goto cleanup;
         }
@@ -2838,7 +2845,7 @@ esxDomainCreateWithFlags(virDomainPtr domain, unsigned int flags)
           (priv->primary, domain->uuid, propertyNameList, &virtualMachine,
            priv->parsedUri->autoAnswer) < 0 ||
         esxVI_GetVirtualMachinePowerState(virtualMachine, &powerState) < 0 ||
-        esxVI_GetVirtualMachineIdentity(virtualMachine, &id, NULL, NULL) < 0) {
+        esxVI_GetVirtualMachineIdentity(virtualMachine, NULL, &id, NULL, NULL) < 0) {
         goto cleanup;
     }
 
@@ -4787,8 +4794,9 @@ esxConnectListAllDomains(virConnectPtr conn,
         /* Request required data for esxVI_GetVirtualMachineIdentity */
         if (esxVI_String_AppendValueListToList(&propertyNameList,
                                                "configStatus\0"
-                                               "name\0"
-                                               "config.uuid\0") < 0) {
+                                               "name\0") < 0 ||
+            esxVI_String_AppendValueToList(&propertyNameList,
+                                           priv->primary->uuid_key) < 0) {
             goto cleanup;
         }
     }
@@ -4827,8 +4835,11 @@ esxConnectListAllDomains(virConnectPtr conn,
         /* If the lookup of the required properties fails for some of the machines
          * in the list it's preferrable to return the valid objects instead of
          * failing outright */
-        if ((needIdentity && esxVI_GetVirtualMachineIdentity(virtualMachine, &id, &name, uuid) < 0) ||
-            (needPowerState && esxVI_GetVirtualMachinePowerState(virtualMachine, &powerState) < 0)) {
+        if ((needIdentity &&
+             esxVI_GetVirtualMachineIdentity(virtualMachine, priv->primary->uuid_key,
+                                             &id, &name, uuid) < 0) ||
+            (needPowerState &&
+             esxVI_GetVirtualMachinePowerState(virtualMachine, &powerState) < 0)) {
 
             /* Raise error only if we didn't successfuly fill any domain */
             if (count == 0 && !virtualMachine->_next)
@@ -4960,9 +4971,13 @@ esxDomainHasManagedSaveImage(virDomainPtr domain, unsigned int flags)
     esxPrivate *priv = domain->conn->privateData;
     esxVI_ManagedObjectReference *managedObjectReference = NULL;
     char uuid_string[VIR_UUID_STRING_BUFLEN] = "";
+    esxVI_Boolean instanceUuid = esxVI_Boolean_True;
 
     virCheckFlags(0, -1);
 
+    if (priv->primary->legacy_uuid)
+        instanceUuid = esxVI_Boolean_Undefined;
+
     if (esxVI_EnsureSession(priv->primary) < 0)
         return -1;
 
@@ -4970,7 +4985,7 @@ esxDomainHasManagedSaveImage(virDomainPtr domain, unsigned int flags)
 
     if (esxVI_FindByUuid(priv->primary, priv->primary->datacenter->_reference,
                          uuid_string, esxVI_Boolean_True,
-                         esxVI_Boolean_Undefined,
+                         instanceUuid,
                          &managedObjectReference) < 0) {
         return -1;
     }
index 035b646fb60b6bd2a718c18ae13786b564751bfd..275e78bcc7ca006721af1e923663103a7ff56596 100644 (file)
@@ -43,6 +43,7 @@ esxUtil_ParseUri(esxUtil_ParsedUri **parsedUri, virURI *uri)
     size_t i;
     int noVerify;
     int autoAnswer;
+    int legacy_uuid;
     char *tmp;
 
     ESX_VI_CHECK_ARG_LIST(parsedUri);
@@ -88,6 +89,16 @@ esxUtil_ParseUri(esxUtil_ParsedUri **parsedUri, virURI *uri)
             }
 
             (*parsedUri)->autoAnswer = autoAnswer != 0;
+        } else if (STRCASEEQ(queryParam->name, "legacy_uuid")) {
+            if (virStrToLong_i(queryParam->value, NULL, 10, &legacy_uuid) < 0 ||
+                (legacy_uuid != 0 && legacy_uuid != 1)) {
+                virReportError(VIR_ERR_INVALID_ARG,
+                               _("Query parameter 'legacy_uuid' has unexpected value '%1$s' (should be 0 or 1)"),
+                               queryParam->value);
+                goto cleanup;
+            }
+
+            (*parsedUri)->legacy_uuid = legacy_uuid != 0;
         } else if (STRCASEEQ(queryParam->name, "proxy")) {
             /* Expected format: [<type>://]<hostname>[:<port>] */
             (*parsedUri)->proxy = true;
index 29f01e0c1559688c909bc4bd4f3ebe31e4ac5fa0..545bf7f3014c02cced0b64a4a401a9b6a6f1dbf6 100644 (file)
@@ -46,6 +46,7 @@ struct _esxUtil_ParsedUri {
     int proxy_port;
     char *path;
     char *cacert;
+    bool legacy_uuid;
 };
 
 int esxUtil_ParseUri(esxUtil_ParsedUri **parsedUri, virURI *uri);
index db006ed16f403175bce3434cfdb9d8285fc8ccbb..818ff0de4c500d80c912d793328484fb34dc6e55 100644 (file)
@@ -300,6 +300,17 @@ esxVI_CURL_Connect(esxVI_CURL *curl, esxUtil_ParsedUri *parsedUri)
     curl->headers = curl_slist_append(curl->headers,
                                       "Content-Type: text/xml; charset=UTF-8");
 
+    /*
+     * Testing showed that the 4.0 version is most close to our current types in
+     * esx_vi_generator.input data.  We could update the version if new method
+     * parameters or object properties are needed.
+     *
+     * The other option is to drop the "/x.y" suffix completely once
+     * https://gitlab.com/libvirt/libvirt/-/work_items/878 is implemented since
+     * that will not limit the version at all.
+     */
+    curl->headers = curl_slist_append(curl->headers, "SOAPAction: urn:vim25/4.0");
+
     /*
      * Add an empty expect header to stop CURL from waiting for a response code
      * 100 (Continue) from the server before continuing the POST operation.
@@ -933,7 +944,8 @@ esxVI_Context_Connect(esxVI_Context *ctx, const char *url,
     if (ctx->productLine == esxVI_ProductLine_VPX)
         ctx->hasSessionIsActive = true;
 
-
+    ctx->legacy_uuid = parsedUri->legacy_uuid;
+    ctx->uuid_key = ctx->legacy_uuid ? "config.uuid" : "config.instanceUuid";
 
     if (esxVI_Login(ctx, username, escapedPassword, NULL, &ctx->session) < 0 ||
         esxVI_BuildSelectSetCollection(ctx) < 0) {
@@ -2386,6 +2398,7 @@ esxVI_LookupNumberOfDomainsByPowerState(esxVI_Context *ctx,
 
 int
 esxVI_GetVirtualMachineIdentity(esxVI_ObjectContent *virtualMachine,
+                                const char *uuid_key,
                                 int *id, char **name, unsigned char *uuid)
 {
     const char *uuid_string = NULL;
@@ -2443,6 +2456,12 @@ esxVI_GetVirtualMachineIdentity(esxVI_ObjectContent *virtualMachine,
     }
 
     if (uuid) {
+        if (!uuid_key) {
+            virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+                           _("Cannot get VM's UUID without supplying a VM UUID key"));
+            goto failure;
+        }
+
         if (esxVI_GetManagedEntityStatus(virtualMachine, "configStatus",
                                          &configStatus) < 0) {
             goto failure;
@@ -2452,7 +2471,8 @@ esxVI_GetVirtualMachineIdentity(esxVI_ObjectContent *virtualMachine,
             for (dynamicProperty = virtualMachine->propSet;
                  dynamicProperty;
                  dynamicProperty = dynamicProperty->_next) {
-                if (STREQ(dynamicProperty->name, "config.uuid")) {
+
+                if (STREQ(dynamicProperty->name, uuid_key)) {
                     if (esxVI_AnyType_ExpectType(dynamicProperty->val,
                                                  esxVI_Type_String) < 0) {
                         goto failure;
@@ -2676,13 +2696,17 @@ esxVI_LookupVirtualMachineByUuid(esxVI_Context *ctx, const unsigned char *uuid,
     int result = -1;
     esxVI_ManagedObjectReference *managedObjectReference = NULL;
     char uuid_string[VIR_UUID_STRING_BUFLEN] = "";
+    esxVI_Boolean instanceUuid = esxVI_Boolean_True;
+
+    if (ctx->legacy_uuid)
+        instanceUuid = esxVI_Boolean_Undefined;
 
     ESX_VI_CHECK_ARG_LIST(virtualMachine);
 
     virUUIDFormat(uuid, uuid_string);
 
     if (esxVI_FindByUuid(ctx, ctx->datacenter->_reference, uuid_string,
-                         esxVI_Boolean_True, esxVI_Boolean_Undefined,
+                         esxVI_Boolean_True, instanceUuid,
                          &managedObjectReference) < 0) {
         return -1;
     }
@@ -2742,7 +2766,7 @@ esxVI_LookupVirtualMachineByName(esxVI_Context *ctx, const char *name,
          candidate = candidate->_next) {
         g_autofree char *name_candidate = NULL;
 
-        if (esxVI_GetVirtualMachineIdentity(candidate, NULL, &name_candidate,
+        if (esxVI_GetVirtualMachineIdentity(candidate, NULL, NULL, &name_candidate,
                                             NULL) < 0) {
             goto cleanup;
         }
index b083ef2b0c66ad85098f4086c4d6f28580e9e02c..98f89278a6e6d17d060c7b7b0234d18933e0f3b0 100644 (file)
@@ -199,6 +199,8 @@ struct _esxVI_Context {
     esxVI_SelectionSpec *selectSet_datacenterToNetwork;
     bool hasQueryVirtualDiskUuid;
     bool hasSessionIsActive;
+    bool legacy_uuid;
+    const char *uuid_key;
 };
 
 int esxVI_Context_Alloc(esxVI_Context **ctx);
@@ -351,6 +353,7 @@ int esxVI_LookupNumberOfDomainsByPowerState
        bool inverse);
 
 int esxVI_GetVirtualMachineIdentity(esxVI_ObjectContent *virtualMachine,
+                                    const char *uuid_key,
                                     int *id, char **name, unsigned char *uuid);
 
 int esxVI_GetNumberOfSnapshotTrees
index 084b4154427f6e0bd5a7a935583b427b41ed6ffb..572087341ae0b147a5820e08c2af2ed5375bc8ad 100644 (file)
@@ -1492,11 +1492,19 @@ virVMXParseConfig(virVMXContext *ctx,
         def->scsiBusMaxUnit = SCSI_SUPER_WIDE_BUS_MAX_CONT_UNIT;
     }
 
-    /* vmx:uuid.bios -> def:uuid */
+    /* vmx:uuid.bios -> def:hwuuid */
     /* FIXME: Need to handle 'uuid.action = "create"' */
-    if (virVMXGetConfigUUID(conf, "uuid.bios", def->uuid, true) < 0)
+    if (virVMXGetConfigUUID(conf, "uuid.bios", def->hw_uuid, true) < 0)
         goto cleanup;
 
+    /* vmx:vc.uuid -> def:uuid */
+    if (virVMXGetConfigUUID(conf, "vc.uuid", def->uuid, true) < 0)
+        goto cleanup;
+
+    /* Fallback to legacy behaviour if there is no vc.uuid */
+    if (!virUUIDIsValid(def->uuid))
+        memcpy(def->uuid, def->hw_uuid, VIR_UUID_BUFLEN);
+
     /* vmx:displayName -> def:name */
     if (virVMXGetConfigString(conf, "displayName", &def->name, true) < 0)
         goto cleanup;
index e854cc37cb2cadbc9c72071fc0f9b75e88b4bd95..e58a5f3f84eab40de95ca604bf88c7b8724ce8ab 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>FEDORA11</name>
   <uuid>50115e16-9bdc-49d7-f171-53c4d7f91710</uuid>
+  <hwuuid>50115e16-9bdc-49d7-f171-53c4d7f91710</hwuuid>
   <memory unit='KiB'>1048576</memory>
   <currentMemory unit='KiB'>1048576</currentMemory>
   <vcpu placement='static'>1</vcpu>
index f5c4446ab5536529e6a106ffc298da0bbf46b448..6e399721e21e6b7d2f6be0ebf6280e0d39c0f52a 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>fedora11</name>
   <uuid>50115e16-9bdc-49d7-f171-53c4d7f91710</uuid>
+  <hwuuid>50115e16-9bdc-49d7-f171-53c4d7f91710</hwuuid>
   <memory unit='KiB'>1048576</memory>
   <currentMemory unit='KiB'>1048576</currentMemory>
   <vcpu placement='static'>1</vcpu>
index 9ae28c8497b7cc3e12ec021cb0d1b127ac812dc8..089a52bcb316fe0050745fa9171ed892a242a653 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>Fedora11</name>
   <uuid>50115e16-9bdc-49d7-f171-53c4d7f91710</uuid>
+  <hwuuid>50115e16-9bdc-49d7-f171-53c4d7f91710</hwuuid>
   <memory unit='KiB'>1048576</memory>
   <currentMemory unit='KiB'>1048576</currentMemory>
   <vcpu placement='static'>1</vcpu>
index 1b1fdf06623fc00a44cb042537a4501b60ba1fd5..166240f96b16fafc141aa05965d9fa3dd899c9ce 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>w2019biosvmware</name>
-  <uuid>421a6177-5aa9-abb7-5924-fc376c18a1b4</uuid>
+  <uuid>501af9f2-6d29-1c76-19a9-b208ede5f374</uuid>
+  <hwuuid>421a6177-5aa9-abb7-5924-fc376c18a1b4</hwuuid>
   <genid>13c67c91-9f47-526f-b0d6-e4dd2e4bb4f9</genid>
   <memory unit='KiB'>4194304</memory>
   <currentMemory unit='KiB'>4194304</currentMemory>
index 0dd297af43f0cb467e8d6da2e1210988d62bbf2c..981287bb49309e13e799834d7880928e07edb086 100644 (file)
@@ -1,6 +1,7 @@
 <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>
+  <hwuuid>422c0152-63ab-cd03-9650-4301ae77aefd</hwuuid>
   <memory unit='KiB'>2097152</memory>
   <currentMemory unit='KiB'>2097152</currentMemory>
   <vcpu placement='static'>1</vcpu>
index ac83982b9b88625c2f1035cc34fe7169c79beb54..4836cbd03d21ea2685e282e03ec831803c2e4758 100644 (file)
@@ -1,6 +1,7 @@
 <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>
+  <hwuuid>4220fca7-11dd-d67e-19cc-fcad0a37c342</hwuuid>
   <memory unit='KiB'>2097152</memory>
   <currentMemory unit='KiB'>2097152</currentMemory>
   <vcpu placement='static'>1</vcpu>
index cef9fd4e48c967f6553d747ba10e97c116418d2d..604fe99f5c44f20b30bce7d47cefde6addd53943 100644 (file)
@@ -1,6 +1,7 @@
 <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>
+  <hwuuid>421eb458-5448-fc12-2074-83d5e419e138</hwuuid>
   <description>name:Test-Mig-VM-1
 userid:962314ba515c48388a0e95c0961709ff
 username:admin
index f10707d1d4127a4eb0efc92627a355d4a828964b..31ada6eb5fa975e47bee4878d2b497abf5bd1797 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>wild14</name>
-  <uuid>421b223a-f2c1-c7c9-a399-34d2d9fde26d</uuid>
+  <uuid>501b831e-75d8-15f8-36fa-b9e225f395aa</uuid>
+  <hwuuid>421b223a-f2c1-c7c9-a399-34d2d9fde26d</hwuuid>
   <description>execution env sandbox automation platform</description>
   <memory unit='KiB'>33554432</memory>
   <currentMemory unit='KiB'>33554432</currentMemory>
index 78d15e1538e66f58b4f1544e6ac15bc87ed91823..fb32a5aa59d955d5dc548cc5ca2788c570dc9e72 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>dokuwiki</name>
-  <uuid>420338bd-1c9e-ad50-99a2-59e92ddda8b6</uuid>
+  <uuid>500341d5-fe23-ac46-8cb3-77a8e5a1143d</uuid>
+  <hwuuid>420338bd-1c9e-ad50-99a2-59e92ddda8b6</hwuuid>
   <memory unit='KiB'>2097152</memory>
   <currentMemory unit='KiB'>2097152</currentMemory>
   <vcpu placement='static'>2</vcpu>
index 51746dd77ef067b09d0df9215cf55fe4c3821117..ab8497ba2d770010d77ceb2250cf12dea76c2cd5 100644 (file)
@@ -1,6 +1,7 @@
 <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>
+  <hwuuid>4220df89-e3a8-8513-f611-ad252bfd7047</hwuuid>
   <memory unit='KiB'>2097152</memory>
   <currentMemory unit='KiB'>2097152</currentMemory>
   <vcpu placement='static'>1</vcpu>
index 725f21bdf60196a61ce90c43b01eed4f01cf4f82..0603adfd35806e4d165823d0dd7548044dc354e7 100644 (file)
@@ -1,6 +1,7 @@
 <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>
+  <hwuuid>42256ec1-e066-9364-3dd1-36a0b75263dd</hwuuid>
   <genid>3191ed70-eb21-9c71-2478-373fb27fed9b</genid>
   <memory unit='KiB'>4194304</memory>
   <currentMemory unit='KiB'>4194304</currentMemory>
index 59c7087300eafefbff4515849826ebe7b043367e..d0ed415cb15898c3a83b85d1c7ac9d49f9cb9fba 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>virtDebian1</name>
   <uuid>564dcd37-3685-8889-35ea-719fc93c983e</uuid>
+  <hwuuid>564dcd37-3685-8889-35ea-719fc93c983e</hwuuid>
   <memory unit='KiB'>1024000</memory>
   <currentMemory unit='KiB'>120832</currentMemory>
   <vcpu placement='static' cpuset='0-2,5-7'>4</vcpu>
index 29c63d8d6bfdab5a9ecef8c4b90de72bf7b9da53..46ac2ebbc454e675115a953034a9320fa80afa80 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>virtDebian2</name>
   <uuid>564db768-f332-42ee-6201-06973cf5c30c</uuid>
+  <hwuuid>564db768-f332-42ee-6201-06973cf5c30c</hwuuid>
   <memory unit='KiB'>1048576</memory>
   <currentMemory unit='KiB'>1048576</currentMemory>
   <vcpu placement='static' cpuset='0,3-5'>2</vcpu>
index 82eccca1c4bb3eb0e39031a95bf41965e5ded993..389f212d97f2f3507f65569f250be9c2e8ca23c0 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>virtMonServ1</name>
   <uuid>564d9bef-acd9-b4e0-c8f0-aea8b9103515</uuid>
+  <hwuuid>564d9bef-acd9-b4e0-c8f0-aea8b9103515</hwuuid>
   <memory unit='KiB'>524288</memory>
   <currentMemory unit='KiB'>524288</currentMemory>
   <vcpu placement='static'>1</vcpu>
index c88e60bdc070411dca9fdb3eef83402fda78bcdb..fee496aa6aa0f73af94c9503273955e1e9bbb450 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>vmtest.local</name>
-  <uuid>423e94a9-a1c7-b31d-7161-76c7586c830e</uuid>
+  <uuid>503e06db-f8d5-458e-a2fb-f9820253a7be</uuid>
+  <hwuuid>423e94a9-a1c7-b31d-7161-76c7586c830e</hwuuid>
   <description>Centos 5.5 64bit Server</description>
   <memory unit='KiB'>2097152</memory>
   <currentMemory unit='KiB'>2097152</currentMemory>
index 805f033561290fa3a55506eca0479ecbe846a5bb..ab3b1fa7a6f681b680835ad760b5ffeaee3dc9cd 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>el6-test</name>
-  <uuid>564d15d4-d062-fe9a-80f5-eb8e1a2c3afc</uuid>
+  <uuid>5200b69b-8d88-7bdf-a14a-02705d653772</uuid>
+  <hwuuid>564d15d4-d062-fe9a-80f5-eb8e1a2c3afc</hwuuid>
   <memory unit='KiB'>1048576</memory>
   <currentMemory unit='KiB'>1048576</currentMemory>
   <vcpu placement='static'>1</vcpu>
index b641574776b6f223363c81cbad2db9ccb5ec67d6..daaac5e92df25b86e2711ffdc4a31dd7e3e24bb2 100644 (file)
@@ -1,6 +1,7 @@
 <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>
+  <hwuuid>564d9176-621f-0239-f5ad-3a002371953b</hwuuid>
   <memory unit='KiB'>2097152</memory>
   <currentMemory unit='KiB'>2097152</currentMemory>
   <vcpu placement='static'>1</vcpu>
index f13e6f7448807c7281c3af156f2433c1a01ce088..3472ce14efb30b061426196eb97e3abb0c67a448 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>RHEL7_10_NICs</name>
-  <uuid>42359420-99dc-4261-5264-ba58ddae20e4</uuid>
+  <uuid>50351de6-7d56-29ab-9d72-c7f9ea3fcfd0</uuid>
+  <hwuuid>42359420-99dc-4261-5264-ba58ddae20e4</hwuuid>
   <memory unit='KiB'>2097152</memory>
   <currentMemory unit='KiB'>2097152</currentMemory>
   <vcpu placement='static'>8</vcpu>
index 6b4d878ab18a31a81ee0f2f488e2ff73c5c75ac5..57a376209b0fa00c489385a62739ce49486bf706 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>v2v-windows-kkulkarn</name>
-  <uuid>42009372-17da-be73-779d-007ccf1bd228</uuid>
+  <uuid>5000d2b0-616e-6129-8c06-82b07440a871</uuid>
+  <hwuuid>42009372-17da-be73-779d-007ccf1bd228</hwuuid>
   <description>MIQ GUID=b55c806d-99b9-4fa5-bbcc-a4de04f822e5</description>
   <memory unit='KiB'>16777216</memory>
   <currentMemory unit='KiB'>16777216</currentMemory>
index a47fab5cd507ef301413cc00d8eaa14f6b1f387b..a39bcbb2cd49cde1e8813260c55dfc0ff88c0fbd 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>ATTM_VM</name>
   <uuid>564d7088-01a1-9832-e72b-6790c73b64ea</uuid>
+  <hwuuid>564d7088-01a1-9832-e72b-6790c73b64ea</hwuuid>
   <memory unit='KiB'>3657728</memory>
   <currentMemory unit='KiB'>3657728</currentMemory>
   <vcpu placement='static'>2</vcpu>
index f189ff79e40b95250102143f028c262d6e4aad27..4618e574a9d089d442e61a796b688085de769432 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>Server1</name>
   <uuid>564d1223-f835-c4b1-bbf6-e32390d62bd3</uuid>
+  <hwuuid>564d1223-f835-c4b1-bbf6-e32390d62bd3</hwuuid>
   <memory unit='KiB'>32768</memory>
   <currentMemory unit='KiB'>32768</currentMemory>
   <vcpu placement='static'>1</vcpu>
index d1c1bf39dff6f9e6cb6486433de810db244bff21..8841bc5fddc9c55daaa2b8dd5639a3c3fa36d753 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>Server2</name>
   <uuid>564d3301-267f-a0ef-8b7d-d45e98d6cba4</uuid>
+  <hwuuid>564d3301-267f-a0ef-8b7d-d45e98d6cba4</hwuuid>
   <memory unit='KiB'>32768</memory>
   <currentMemory unit='KiB'>32768</currentMemory>
   <vcpu placement='static'>1</vcpu>
index acc9d6ba5dc6e24ca5116cef31c369ae01cefe12..181036a12638a013c79a6a27780cc0750df53f4d 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>Router</name>
   <uuid>564ddebe-e86f-d586-0854-a0879cc4be5a</uuid>
+  <hwuuid>564ddebe-e86f-d586-0854-a0879cc4be5a</hwuuid>
   <memory unit='KiB'>32768</memory>
   <currentMemory unit='KiB'>32768</currentMemory>
   <vcpu placement='static'>1</vcpu>
index 8c7322484662abb4c835038e200654dfb974d7ed..f66afe35bdf68eb4530a66f06e054751c703f173 100644 (file)
@@ -1,6 +1,7 @@
 <domain type='vmware'>
   <name>Client</name>
   <uuid>564dad58-0629-d3e6-ecfe-8ff839c5e35d</uuid>
+  <hwuuid>564dad58-0629-d3e6-ecfe-8ff839c5e35d</hwuuid>
   <memory unit='KiB'>270336</memory>
   <currentMemory unit='KiB'>270336</currentMemory>
   <vcpu placement='static'>1</vcpu>