From nobody Sat May 30 15:28:33 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1778841208; cv=none; d=zohomail.com; s=zohoarc; b=Hbtks/XQi0wwrdfe5KmXCAguP5xXlbuNq/h/WluKSHyjRCcWch7KtzOgeyVfS1OTDuXvXiHIzmpb2rdDpualH/IMNBXfJk1n8M7wnM98czODIivG+NG0BGUXHc9PrC+wuEnyoybHtsGNdp1dU4dUp8Aw8yhJYGpOQ1cwyquKZdM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778841208; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=+wUTzIkr47mZRIDDVazMVeVaSeDWvK2xBHEs0LtFBRg=; b=DGlSlNeWofj1BeMS0iZV4p/E+T7SPtTChWhGkiaBGQJuew3n0+IujiqIqTepwhgpT+2oisPo3EZdAs5m4P0W14nDStuhLkZOd2cRXwWaVfsW+dF/XfO61fwAGsw4uOXXopAMcFFzKrNnhhsKG878NgtGk4oJ8QNOd+zbac18oIU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1778841208726441.50784114355747; Fri, 15 May 2026 03:33:28 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 90DEB3F33E; Fri, 15 May 2026 06:33:27 -0400 (EDT) Received: from [172.19.199.12] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 3BC0241AC3; Fri, 15 May 2026 06:28:30 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id AEB0A3F33E; Fri, 15 May 2026 06:28:16 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 699013F340 for ; Fri, 15 May 2026 06:28:13 -0400 (EDT) Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-549-SVuldT3kPn-buXCbxSsvgA-1; Fri, 15 May 2026 06:28:11 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-4411a69f565so7898323f8f.2 for ; Fri, 15 May 2026 03:28:11 -0700 (PDT) Received: from wheatley.localdomain ([213.175.37.14]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da0a17a22sm13634575f8f.22.2026.05.15.03.28.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 03:28:09 -0700 (PDT) Received: from wheatley.pinto-pinecone.ts.net (wheatley.k8r.cz [127.0.0.1]) by wheatley.localdomain (Postfix) with ESMTP id 92F001A84FEFA for ; Fri, 15 May 2026 12:28:08 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1778840893; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+wUTzIkr47mZRIDDVazMVeVaSeDWvK2xBHEs0LtFBRg=; b=MuBD+vhj1qN8osrgI8YhoDwhsGbvqYbhO//D1bOjXwIA1Y50GWrbNkrifp1R1g1VNsWIU+ jvvEk2yw9N7CSWdXlO3aX8ewD+o8IJPiEqvPppQPhU/rC769ow+TnAJUdABAOUm4nEggOE 1oeXSBJGgYr0yd/s8HWycWg7fiz79uM= X-MC-Unique: SVuldT3kPn-buXCbxSsvgA-1 X-Mimecast-MFC-AGG-ID: SVuldT3kPn-buXCbxSsvgA_1778840890 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778840890; x=1779445690; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=+wUTzIkr47mZRIDDVazMVeVaSeDWvK2xBHEs0LtFBRg=; b=kIbSQHCw2JwJOTYghIXVT+DfA1+sGxAxS78sWAIxPn+SsDc1uZNzY4C2QlThb+TTg5 gy/PLmbNn7TR8jGUvm2qPdIB+YVRWDk2A8H3eDT7WPIIEqe7OYArifISFYQ/r5J8zUWN 5m2dhkkk5UJdI1vdOl3fC30tbXuph/ylWyRU9pKdcUXSlMaViuTLxMUWtnmfHUXtUBWa 0KOeI5590tpF3/4W1alD4ruCZPXfarEIy+xJB9VGKQmFqx9tVlqK8sTQY1EQynUYgvIm JRyjIz3b0gFL414ipW/CqoG8BTmWp3qUG6mQEdVGUwBpjSrUekmMi17zjr88rGBytgjt K89w== X-Gm-Message-State: AOJu0YybKBzoEnzB0TM3X2PhlWtl0li66TASroa7VW8EUQRYu5TXEa7M BqZuE3h5OOkTXy6NDEepycOmsyM4+1k/0DsiPZB1QW6zffvnTN467xWZ7VDP6LmA59h22wnQUfW Q3dWFkEQAYib+y7sjsHF0jWt9tieQS+AcJ/5WszCxFlBDy4R1E8vw4ZYK0lUVfjlbmquPmA98Et lpicEA9Pp4EGfWW2MP72RIwZ8nu0OL2yrDCnvmKzY8AAo= X-Gm-Gg: Acq92OHLkFlXSRjA1mh0rwLIplCiJXcG6jPz+yK+G7xjzg54hKz5QUMhInZoqEVA2l+ 89mkfr7OBjribYwt/rMVtd7IP8Tiu8L6E/rvugQGqON8k3sNXWIhF0zq/Izu7TeFrvQcMD+78uo 7D9VmTiDXVUApMHdkawDNZhdYuwlBA5kVi56xiQ34/5Emnb5ArmyjUkSnuOCMTj0MtIuZ55W/Hj cq9FDxiPzUm0R2/SZPDV6FiOc5/9Sgijg1nC91xX0E3Nj/n/VGy6RaGJ0OyhfWb+3r4gRcpF7+n 99M9Zb+8Jyx3BMNU5R0zF0fQ0F/Awa0JLJA2+eK467UCTalPfB/EnUbv3l7DVhyRSzj5hJxHvLo 0bIW9iC1GyC3tz2QWDczpxw== X-Received: by 2002:a05:6000:2289:b0:454:4472:6234 with SMTP id ffacd0b85a97d-45e5c5bbe18mr4262987f8f.1.1778840890130; Fri, 15 May 2026 03:28:10 -0700 (PDT) X-Received: by 2002:a05:6000:2289:b0:454:4472:6234 with SMTP id ffacd0b85a97d-45e5c5bbe18mr4262932f8f.1.1778840889380; Fri, 15 May 2026 03:28:09 -0700 (PDT) To: devel@lists.libvirt.org Subject: [PATCH v4 1/2] esx: Track VMs by instanceUuid instead of UUID Date: Fri, 15 May 2026 12:28:04 +0200 Message-ID: <14a7f8a8fce23778c42207602af394b939bf7042.1778840347.git.mkletzan@redhat.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: References: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: YLOK21j6mfCHemFIdUyh2uraqXHjhw_3oeA57iqpVKk_1778840890 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: I6ZBIRF5K6TSILKEV36TW6OCAE24O2WH X-Message-ID-Hash: I6ZBIRF5K6TSILKEV36TW6OCAE24O2WH X-MailFrom: mkletzan@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Martin Kletzander via Devel Reply-To: Martin Kletzander X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1778841209801158500 Content-Type: text/plain; charset="utf-8"; x-default="true" From: Martin Kletzander 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 Reviewed-by: Peter Krempa --- docs/drvesx.rst | 24 ++++++++++++ src/esx/esx_driver.c | 43 +++++++++++++++------- src/esx/esx_util.c | 11 ++++++ src/esx/esx_util.h | 1 + src/esx/esx_vi.c | 32 ++++++++++++++-- src/esx/esx_vi.h | 3 ++ src/vmx/vmx.c | 12 +++++- tests/vmx2xmldata/case-insensitive-1.xml | 1 + tests/vmx2xmldata/case-insensitive-2.xml | 1 + tests/vmx2xmldata/esx-in-the-wild-1.xml | 1 + tests/vmx2xmldata/esx-in-the-wild-10.xml | 3 +- tests/vmx2xmldata/esx-in-the-wild-11.xml | 3 +- tests/vmx2xmldata/esx-in-the-wild-12.xml | 3 +- tests/vmx2xmldata/esx-in-the-wild-13.xml | 3 +- tests/vmx2xmldata/esx-in-the-wild-14.xml | 3 +- tests/vmx2xmldata/esx-in-the-wild-15.xml | 3 +- tests/vmx2xmldata/esx-in-the-wild-16.xml | 3 +- tests/vmx2xmldata/esx-in-the-wild-17.xml | 3 +- tests/vmx2xmldata/esx-in-the-wild-2.xml | 1 + tests/vmx2xmldata/esx-in-the-wild-3.xml | 1 + tests/vmx2xmldata/esx-in-the-wild-4.xml | 1 + tests/vmx2xmldata/esx-in-the-wild-5.xml | 3 +- tests/vmx2xmldata/esx-in-the-wild-6.xml | 3 +- tests/vmx2xmldata/esx-in-the-wild-7.xml | 3 +- tests/vmx2xmldata/esx-in-the-wild-8.xml | 3 +- tests/vmx2xmldata/esx-in-the-wild-9.xml | 3 +- tests/vmx2xmldata/fusion-in-the-wild-1.xml | 1 + tests/vmx2xmldata/gsx-in-the-wild-1.xml | 1 + tests/vmx2xmldata/gsx-in-the-wild-2.xml | 1 + tests/vmx2xmldata/gsx-in-the-wild-3.xml | 1 + tests/vmx2xmldata/gsx-in-the-wild-4.xml | 1 + 31 files changed, 143 insertions(+), 33 deletions(-) diff --git a/docs/drvesx.rst b/docs/drvesx.rst index 84416562ba3f..dcf9e7367831 100644 --- a/docs/drvesx.rst +++ b/docs/drvesx.rst @@ -156,6 +156,15 @@ The driver understands the extra parameters shown belo= w. | | | ``no_verify`` is set = | | | | to ``1``. = | +-----------------+-----------------------------+-------------------------= ----+ +| ``legacy_uuid`` | ``0`` or ``1`` | If set to ``1``, the dri= ver | +| | | will track VMs based on = | +| | | their "Host-unique" UUID= . | +| | | If set to ``0`` it will = use | +| | | the "Cluster-unique" UUI= D | +| | | instead. The default val= ue | +| | | is ``0``. = | +| | | :since:`Since 12.4.0`. = | ++-----------------+-----------------------------+-------------------------= ----+ =20 Authentication ~~~~~~~~~~~~~~ @@ -172,6 +181,21 @@ distinguish between requests for ESX server and vCente= r. unrestricted ``root`` account. Problems may occur if you use a restricted account. Detailed testing with restricted accounts has not been done yet. =20 +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 libv= irt +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 ````= in +the `General metadata `__ section of t= he +domain XML. + +In order to restore the previous behaviour parameter ``legacy_uuid=3D1`` (= see +`Extra parameters`_) can be appended to the URI, but only if needed as it = may +cause the aforementioned issues. + Certificates for HTTPS ~~~~~~~~~~~~~~~~~~~~~~ =20 diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index 6ff0db48ac02..c5b3fa47b6a2 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -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; =20 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 unsig= ned char *uuid) esxVI_LookupVirtualMachineByUuid(priv->primary, uuid, propertyName= List, &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 cha= r *name) =20 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, propertyName= List, &virtualMachine, esxVI_Occurrence_RequiredItem) < = 0) { goto cleanup; } =20 - if (esxVI_GetVirtualMachineIdentity(virtualMachine, &id, NULL, uuid) <= 0 || + if (esxVI_GetVirtualMachineIdentity(virtualMachine, priv->primary->uui= d_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, N= ULL) < 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 !=3D esxVI_VirtualMachinePowerState_PoweredOff) def->id =3D id; =20 + if (priv->primary->legacy_uuid) + memcpy(def->uuid, def->hw_uuid, VIR_UUID_BUFLEN); + xml =3D virDomainDefFormat(def, priv->xmlopt, virDomainDefFormatConvertXMLFlags(flags)); } @@ -2771,7 +2778,7 @@ esxConnectListDefinedDomains(virConnectPtr conn, char= **const names, int maxname =20 names[count] =3D NULL; =20 - if (esxVI_GetVirtualMachineIdentity(virtualMachine, NULL, &names[c= ount], + if (esxVI_GetVirtualMachineIdentity(virtualMachine, NULL, NULL, &n= ames[count], NULL) < 0) { goto cleanup; } @@ -2838,7 +2845,7 @@ esxDomainCreateWithFlags(virDomainPtr domain, unsigne= d 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, N= ULL) < 0) { goto cleanup; } =20 @@ -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 instea= d of * failing outright */ - if ((needIdentity && esxVI_GetVirtualMachineIdentity(virtualMachin= e, &id, &name, uuid) < 0) || - (needPowerState && esxVI_GetVirtualMachinePowerState(virtualMa= chine, &powerState) < 0)) { + if ((needIdentity && + esxVI_GetVirtualMachineIdentity(virtualMachine, priv->primary= ->uuid_key, + &id, &name, uuid) < 0) || + (needPowerState && + esxVI_GetVirtualMachinePowerState(virtualMachine, &powerState= ) < 0)) { =20 /* Raise error only if we didn't successfuly fill any domain */ if (count =3D=3D 0 && !virtualMachine->_next) @@ -4960,9 +4971,13 @@ esxDomainHasManagedSaveImage(virDomainPtr domain, un= signed int flags) esxPrivate *priv =3D domain->conn->privateData; esxVI_ManagedObjectReference *managedObjectReference =3D NULL; char uuid_string[VIR_UUID_STRING_BUFLEN] =3D ""; + esxVI_Boolean instanceUuid =3D esxVI_Boolean_True; =20 virCheckFlags(0, -1); =20 + if (priv->primary->legacy_uuid) + instanceUuid =3D esxVI_Boolean_Undefined; + if (esxVI_EnsureSession(priv->primary) < 0) return -1; =20 @@ -4970,7 +4985,7 @@ esxDomainHasManagedSaveImage(virDomainPtr domain, uns= igned int flags) =20 if (esxVI_FindByUuid(priv->primary, priv->primary->datacenter->_refere= nce, uuid_string, esxVI_Boolean_True, - esxVI_Boolean_Undefined, + instanceUuid, &managedObjectReference) < 0) { return -1; } diff --git a/src/esx/esx_util.c b/src/esx/esx_util.c index 035b646fb60b..275e78bcc7ca 100644 --- a/src/esx/esx_util.c +++ b/src/esx/esx_util.c @@ -43,6 +43,7 @@ esxUtil_ParseUri(esxUtil_ParsedUri **parsedUri, virURI *u= ri) size_t i; int noVerify; int autoAnswer; + int legacy_uuid; char *tmp; =20 ESX_VI_CHECK_ARG_LIST(parsedUri); @@ -88,6 +89,16 @@ esxUtil_ParseUri(esxUtil_ParsedUri **parsedUri, virURI *= uri) } =20 (*parsedUri)->autoAnswer =3D autoAnswer !=3D 0; + } else if (STRCASEEQ(queryParam->name, "legacy_uuid")) { + if (virStrToLong_i(queryParam->value, NULL, 10, &legacy_uuid) = < 0 || + (legacy_uuid !=3D 0 && legacy_uuid !=3D 1)) { + virReportError(VIR_ERR_INVALID_ARG, + _("Query parameter 'legacy_uuid' has unexpe= cted value '%1$s' (should be 0 or 1)"), + queryParam->value); + goto cleanup; + } + + (*parsedUri)->legacy_uuid =3D legacy_uuid !=3D 0; } else if (STRCASEEQ(queryParam->name, "proxy")) { /* Expected format: [://][:] */ (*parsedUri)->proxy =3D true; diff --git a/src/esx/esx_util.h b/src/esx/esx_util.h index 29f01e0c1559..545bf7f3014c 100644 --- a/src/esx/esx_util.h +++ b/src/esx/esx_util.h @@ -46,6 +46,7 @@ struct _esxUtil_ParsedUri { int proxy_port; char *path; char *cacert; + bool legacy_uuid; }; =20 int esxUtil_ParseUri(esxUtil_ParsedUri **parsedUri, virURI *uri); diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c index db006ed16f40..818ff0de4c50 100644 --- a/src/esx/esx_vi.c +++ b/src/esx/esx_vi.c @@ -300,6 +300,17 @@ esxVI_CURL_Connect(esxVI_CURL *curl, esxUtil_ParsedUri= *parsedUri) curl->headers =3D curl_slist_append(curl->headers, "Content-Type: text/xml; charset=3DU= TF-8"); =20 + /* + * Testing showed that the 4.0 version is most close to our current ty= pes in + * esx_vi_generator.input data. We could update the version if new me= thod + * 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 =3D curl_slist_append(curl->headers, "SOAPAction: urn:vi= m25/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 *u= rl, if (ctx->productLine =3D=3D esxVI_ProductLine_VPX) ctx->hasSessionIsActive =3D true; =20 - + ctx->legacy_uuid =3D parsedUri->legacy_uuid; + ctx->uuid_key =3D ctx->legacy_uuid ? "config.uuid" : "config.instanceU= uid"; =20 if (esxVI_Login(ctx, username, escapedPassword, NULL, &ctx->session) <= 0 || esxVI_BuildSelectSetCollection(ctx) < 0) { @@ -2386,6 +2398,7 @@ esxVI_LookupNumberOfDomainsByPowerState(esxVI_Context= *ctx, =20 int esxVI_GetVirtualMachineIdentity(esxVI_ObjectContent *virtualMachine, + const char *uuid_key, int *id, char **name, unsigned char *uuid) { const char *uuid_string =3D NULL; @@ -2443,6 +2456,12 @@ esxVI_GetVirtualMachineIdentity(esxVI_ObjectContent = *virtualMachine, } =20 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 =3D virtualMachine->propSet; dynamicProperty; dynamicProperty =3D 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 =3D -1; esxVI_ManagedObjectReference *managedObjectReference =3D NULL; char uuid_string[VIR_UUID_STRING_BUFLEN] =3D ""; + esxVI_Boolean instanceUuid =3D esxVI_Boolean_True; + + if (ctx->legacy_uuid) + instanceUuid =3D esxVI_Boolean_Undefined; =20 ESX_VI_CHECK_ARG_LIST(virtualMachine); =20 virUUIDFormat(uuid, uuid_string); =20 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 =3D candidate->_next) { g_autofree char *name_candidate =3D NULL; =20 - if (esxVI_GetVirtualMachineIdentity(candidate, NULL, &name_candida= te, + if (esxVI_GetVirtualMachineIdentity(candidate, NULL, NULL, &name_c= andidate, NULL) < 0) { goto cleanup; } diff --git a/src/esx/esx_vi.h b/src/esx/esx_vi.h index b083ef2b0c66..98f89278a6e6 100644 --- a/src/esx/esx_vi.h +++ b/src/esx/esx_vi.h @@ -199,6 +199,8 @@ struct _esxVI_Context { esxVI_SelectionSpec *selectSet_datacenterToNetwork; bool hasQueryVirtualDiskUuid; bool hasSessionIsActive; + bool legacy_uuid; + const char *uuid_key; }; =20 int esxVI_Context_Alloc(esxVI_Context **ctx); @@ -351,6 +353,7 @@ int esxVI_LookupNumberOfDomainsByPowerState bool inverse); =20 int esxVI_GetVirtualMachineIdentity(esxVI_ObjectContent *virtualMachine, + const char *uuid_key, int *id, char **name, unsigned char *u= uid); =20 int esxVI_GetNumberOfSnapshotTrees diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 084b4154427f..572087341ae0 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -1492,11 +1492,19 @@ virVMXParseConfig(virVMXContext *ctx, def->scsiBusMaxUnit =3D SCSI_SUPER_WIDE_BUS_MAX_CONT_UNIT; } =20 - /* vmx:uuid.bios -> def:uuid */ + /* vmx:uuid.bios -> def:hwuuid */ /* FIXME: Need to handle 'uuid.action =3D "create"' */ - if (virVMXGetConfigUUID(conf, "uuid.bios", def->uuid, true) < 0) + if (virVMXGetConfigUUID(conf, "uuid.bios", def->hw_uuid, true) < 0) goto cleanup; =20 + /* 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; diff --git a/tests/vmx2xmldata/case-insensitive-1.xml b/tests/vmx2xmldata/c= ase-insensitive-1.xml index e854cc37cb2c..e58a5f3f84ea 100644 --- a/tests/vmx2xmldata/case-insensitive-1.xml +++ b/tests/vmx2xmldata/case-insensitive-1.xml @@ -1,6 +1,7 @@ FEDORA11 50115e16-9bdc-49d7-f171-53c4d7f91710 + 50115e16-9bdc-49d7-f171-53c4d7f91710 1048576 1048576 1 diff --git a/tests/vmx2xmldata/case-insensitive-2.xml b/tests/vmx2xmldata/c= ase-insensitive-2.xml index f5c4446ab553..6e399721e21e 100644 --- a/tests/vmx2xmldata/case-insensitive-2.xml +++ b/tests/vmx2xmldata/case-insensitive-2.xml @@ -1,6 +1,7 @@ fedora11 50115e16-9bdc-49d7-f171-53c4d7f91710 + 50115e16-9bdc-49d7-f171-53c4d7f91710 1048576 1048576 1 diff --git a/tests/vmx2xmldata/esx-in-the-wild-1.xml b/tests/vmx2xmldata/es= x-in-the-wild-1.xml index 9ae28c8497b7..089a52bcb316 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-1.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-1.xml @@ -1,6 +1,7 @@ Fedora11 50115e16-9bdc-49d7-f171-53c4d7f91710 + 50115e16-9bdc-49d7-f171-53c4d7f91710 1048576 1048576 1 diff --git a/tests/vmx2xmldata/esx-in-the-wild-10.xml b/tests/vmx2xmldata/e= sx-in-the-wild-10.xml index 1b1fdf06623f..166240f96b16 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-10.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-10.xml @@ -1,6 +1,7 @@ w2019biosvmware - 421a6177-5aa9-abb7-5924-fc376c18a1b4 + 501af9f2-6d29-1c76-19a9-b208ede5f374 + 421a6177-5aa9-abb7-5924-fc376c18a1b4 13c67c91-9f47-526f-b0d6-e4dd2e4bb4f9 4194304 4194304 diff --git a/tests/vmx2xmldata/esx-in-the-wild-11.xml b/tests/vmx2xmldata/e= sx-in-the-wild-11.xml index 0dd297af43f0..981287bb4930 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-11.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-11.xml @@ -1,6 +1,7 @@ esx6.7-rhel7.7-x86_64 - 422c0152-63ab-cd03-9650-4301ae77aefd + 502ca229-12eb-24f6-0c37-c025ff5da005 + 422c0152-63ab-cd03-9650-4301ae77aefd 2097152 2097152 1 diff --git a/tests/vmx2xmldata/esx-in-the-wild-12.xml b/tests/vmx2xmldata/e= sx-in-the-wild-12.xml index ac83982b9b88..4836cbd03d21 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-12.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-12.xml @@ -1,6 +1,7 @@ Auto-esx8.0-rhell9.3-efi-with-empty-cdrom - 4220fca7-11dd-d67e-19cc-fcad0a37c342 + 5020ca5b-7ac1-5c44-cfa1-9e762e2f933b + 4220fca7-11dd-d67e-19cc-fcad0a37c342 2097152 2097152 1 diff --git a/tests/vmx2xmldata/esx-in-the-wild-13.xml b/tests/vmx2xmldata/e= sx-in-the-wild-13.xml index cef9fd4e48c9..604fe99f5c44 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-13.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-13.xml @@ -1,6 +1,7 @@ Test-Mig-VM-1 (01ce57d0-4e20-41a5-8b6c-bcbf49a032ec) - 421eb458-5448-fc12-2074-83d5e419e138 + 01ce57d0-4e20-41a5-8b6c-bcbf49a032ec + 421eb458-5448-fc12-2074-83d5e419e138 name:Test-Mig-VM-1 userid:962314ba515c48388a0e95c0961709ff username:admin diff --git a/tests/vmx2xmldata/esx-in-the-wild-14.xml b/tests/vmx2xmldata/e= sx-in-the-wild-14.xml index f10707d1d412..31ada6eb5fa9 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-14.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-14.xml @@ -1,6 +1,7 @@ wild14 - 421b223a-f2c1-c7c9-a399-34d2d9fde26d + 501b831e-75d8-15f8-36fa-b9e225f395aa + 421b223a-f2c1-c7c9-a399-34d2d9fde26d execution env sandbox automation platform 33554432 33554432 diff --git a/tests/vmx2xmldata/esx-in-the-wild-15.xml b/tests/vmx2xmldata/e= sx-in-the-wild-15.xml index 78d15e1538e6..fb32a5aa59d9 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-15.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-15.xml @@ -1,6 +1,7 @@ dokuwiki - 420338bd-1c9e-ad50-99a2-59e92ddda8b6 + 500341d5-fe23-ac46-8cb3-77a8e5a1143d + 420338bd-1c9e-ad50-99a2-59e92ddda8b6 2097152 2097152 2 diff --git a/tests/vmx2xmldata/esx-in-the-wild-16.xml b/tests/vmx2xmldata/e= sx-in-the-wild-16.xml index 51746dd77ef0..ab8497ba2d77 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-16.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-16.xml @@ -1,6 +1,7 @@ Auto-esx8.0-rhel9.4-efi-nvme-disk - 4220df89-e3a8-8513-f611-ad252bfd7047 + 5020196e-c5c8-7310-fcdb-d2933d0c4b2f + 4220df89-e3a8-8513-f611-ad252bfd7047 2097152 2097152 1 diff --git a/tests/vmx2xmldata/esx-in-the-wild-17.xml b/tests/vmx2xmldata/e= sx-in-the-wild-17.xml index 725f21bdf601..0603adfd3580 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-17.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-17.xml @@ -1,6 +1,7 @@ esx8.0-win11-with-second-disk-in-subfolder - 42256ec1-e066-9364-3dd1-36a0b75263dd + 50250f27-538b-5091-a43b-a50ce95f2382 + 42256ec1-e066-9364-3dd1-36a0b75263dd 3191ed70-eb21-9c71-2478-373fb27fed9b 4194304 4194304 diff --git a/tests/vmx2xmldata/esx-in-the-wild-2.xml b/tests/vmx2xmldata/es= x-in-the-wild-2.xml index 59c7087300ea..d0ed415cb158 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-2.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-2.xml @@ -1,6 +1,7 @@ virtDebian1 564dcd37-3685-8889-35ea-719fc93c983e + 564dcd37-3685-8889-35ea-719fc93c983e 1024000 120832 4 diff --git a/tests/vmx2xmldata/esx-in-the-wild-3.xml b/tests/vmx2xmldata/es= x-in-the-wild-3.xml index 29c63d8d6bfd..46ac2ebbc454 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-3.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-3.xml @@ -1,6 +1,7 @@ virtDebian2 564db768-f332-42ee-6201-06973cf5c30c + 564db768-f332-42ee-6201-06973cf5c30c 1048576 1048576 2 diff --git a/tests/vmx2xmldata/esx-in-the-wild-4.xml b/tests/vmx2xmldata/es= x-in-the-wild-4.xml index 82eccca1c4bb..389f212d97f2 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-4.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-4.xml @@ -1,6 +1,7 @@ virtMonServ1 564d9bef-acd9-b4e0-c8f0-aea8b9103515 + 564d9bef-acd9-b4e0-c8f0-aea8b9103515 524288 524288 1 diff --git a/tests/vmx2xmldata/esx-in-the-wild-5.xml b/tests/vmx2xmldata/es= x-in-the-wild-5.xml index c88e60bdc070..fee496aa6aa0 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-5.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-5.xml @@ -1,6 +1,7 @@ vmtest.local - 423e94a9-a1c7-b31d-7161-76c7586c830e + 503e06db-f8d5-458e-a2fb-f9820253a7be + 423e94a9-a1c7-b31d-7161-76c7586c830e Centos 5.5 64bit Server 2097152 2097152 diff --git a/tests/vmx2xmldata/esx-in-the-wild-6.xml b/tests/vmx2xmldata/es= x-in-the-wild-6.xml index 805f03356129..ab3b1fa7a6f6 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-6.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-6.xml @@ -1,6 +1,7 @@ el6-test - 564d15d4-d062-fe9a-80f5-eb8e1a2c3afc + 5200b69b-8d88-7bdf-a14a-02705d653772 + 564d15d4-d062-fe9a-80f5-eb8e1a2c3afc 1048576 1048576 1 diff --git a/tests/vmx2xmldata/esx-in-the-wild-7.xml b/tests/vmx2xmldata/es= x-in-the-wild-7.xml index b641574776b6..daaac5e92df2 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-7.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-7.xml @@ -1,6 +1,7 @@ esx-rhel6-mini-with-scsi-device - 564d9176-621f-0239-f5ad-3a002371953b + 52409533-33a2-56c5-36ce-80d605f8ecf4 + 564d9176-621f-0239-f5ad-3a002371953b 2097152 2097152 1 diff --git a/tests/vmx2xmldata/esx-in-the-wild-8.xml b/tests/vmx2xmldata/es= x-in-the-wild-8.xml index f13e6f744880..3472ce14efb3 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-8.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-8.xml @@ -1,6 +1,7 @@ RHEL7_10_NICs - 42359420-99dc-4261-5264-ba58ddae20e4 + 50351de6-7d56-29ab-9d72-c7f9ea3fcfd0 + 42359420-99dc-4261-5264-ba58ddae20e4 2097152 2097152 8 diff --git a/tests/vmx2xmldata/esx-in-the-wild-9.xml b/tests/vmx2xmldata/es= x-in-the-wild-9.xml index 6b4d878ab18a..57a376209b0f 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-9.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-9.xml @@ -1,6 +1,7 @@ v2v-windows-kkulkarn - 42009372-17da-be73-779d-007ccf1bd228 + 5000d2b0-616e-6129-8c06-82b07440a871 + 42009372-17da-be73-779d-007ccf1bd228 MIQ GUID=3Db55c806d-99b9-4fa5-bbcc-a4de04f822e5 16777216 16777216 diff --git a/tests/vmx2xmldata/fusion-in-the-wild-1.xml b/tests/vmx2xmldata= /fusion-in-the-wild-1.xml index a47fab5cd507..a39bcbb2cd49 100644 --- a/tests/vmx2xmldata/fusion-in-the-wild-1.xml +++ b/tests/vmx2xmldata/fusion-in-the-wild-1.xml @@ -1,6 +1,7 @@ ATTM_VM 564d7088-01a1-9832-e72b-6790c73b64ea + 564d7088-01a1-9832-e72b-6790c73b64ea 3657728 3657728 2 diff --git a/tests/vmx2xmldata/gsx-in-the-wild-1.xml b/tests/vmx2xmldata/gs= x-in-the-wild-1.xml index f189ff79e40b..4618e574a9d0 100644 --- a/tests/vmx2xmldata/gsx-in-the-wild-1.xml +++ b/tests/vmx2xmldata/gsx-in-the-wild-1.xml @@ -1,6 +1,7 @@ Server1 564d1223-f835-c4b1-bbf6-e32390d62bd3 + 564d1223-f835-c4b1-bbf6-e32390d62bd3 32768 32768 1 diff --git a/tests/vmx2xmldata/gsx-in-the-wild-2.xml b/tests/vmx2xmldata/gs= x-in-the-wild-2.xml index d1c1bf39dff6..8841bc5fddc9 100644 --- a/tests/vmx2xmldata/gsx-in-the-wild-2.xml +++ b/tests/vmx2xmldata/gsx-in-the-wild-2.xml @@ -1,6 +1,7 @@ Server2 564d3301-267f-a0ef-8b7d-d45e98d6cba4 + 564d3301-267f-a0ef-8b7d-d45e98d6cba4 32768 32768 1 diff --git a/tests/vmx2xmldata/gsx-in-the-wild-3.xml b/tests/vmx2xmldata/gs= x-in-the-wild-3.xml index acc9d6ba5dc6..181036a12638 100644 --- a/tests/vmx2xmldata/gsx-in-the-wild-3.xml +++ b/tests/vmx2xmldata/gsx-in-the-wild-3.xml @@ -1,6 +1,7 @@ Router 564ddebe-e86f-d586-0854-a0879cc4be5a + 564ddebe-e86f-d586-0854-a0879cc4be5a 32768 32768 1 diff --git a/tests/vmx2xmldata/gsx-in-the-wild-4.xml b/tests/vmx2xmldata/gs= x-in-the-wild-4.xml index 8c7322484662..f66afe35bdf6 100644 --- a/tests/vmx2xmldata/gsx-in-the-wild-4.xml +++ b/tests/vmx2xmldata/gsx-in-the-wild-4.xml @@ -1,6 +1,7 @@ Client 564dad58-0629-d3e6-ecfe-8ff839c5e35d + 564dad58-0629-d3e6-ecfe-8ff839c5e35d 270336 270336 1 --=20 2.54.0 From nobody Sat May 30 15:28:33 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1778841269; cv=none; d=zohomail.com; s=zohoarc; b=fTls+Dz4Kl3+ubLCIU11+oRaymW42yO5KUEy4LtXWGJMUuE+SOfLK4oL0P9+iO/l9UIFNi87ZEbgtAZ4DqibiK0uzTXluixlDxlo1svwMslnL7NnIyUw8Iop8sv2ynHmMEc8DRLxLH80JztonERF+S9lhjYjlPJu4ix2HkxzOj0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778841269; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=iLWAyiJy8GLRfDU03DkZ0LkIOQxJt/qru7OuTrfmNOU=; b=XZTpZG4kCJYDHlIkl/TZCUqcpcMt98bLOG8BL4UB8IbL86igdmrlN15GGwKTK9NZRL/KM0j4A2l76WAp/ia/M4LL3eCDabttwpnl1RSLX//Wmo0q44HWSAuGjVfnb1Cc/SFLPj7SSxhgH4WKGnpsFaa7AIg6Pkx4YABexJ+SxZA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1778841269821937.3355008274623; Fri, 15 May 2026 03:34:29 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 8AB8A418F6; Fri, 15 May 2026 06:34:28 -0400 (EDT) Received: from [172.19.199.12] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 940CE41B18; Fri, 15 May 2026 06:28:34 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 55B8D3F340; Fri, 15 May 2026 06:28:17 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id A4D303F2F5 for ; Fri, 15 May 2026 06:28:13 -0400 (EDT) Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-304-9LjIptEFPgK-AW4r3z1RAw-1; Fri, 15 May 2026 06:28:11 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-44a3aee3813so4535219f8f.3 for ; Fri, 15 May 2026 03:28:11 -0700 (PDT) Received: from wheatley.localdomain ([213.175.46.86]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45d9e768c4fsm13716958f8f.8.2026.05.15.03.28.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 03:28:09 -0700 (PDT) Received: from wheatley.pinto-pinecone.ts.net (wheatley.k8r.cz [127.0.0.1]) by wheatley.localdomain (Postfix) with ESMTP id 9F1291A84FEFB for ; Fri, 15 May 2026 12:28:08 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1778840893; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iLWAyiJy8GLRfDU03DkZ0LkIOQxJt/qru7OuTrfmNOU=; b=GUxGqDmgz+Mz7jfpdDtzKPeSa1cW/E5xQw1uEoJbya0C6PKUSOVNnfaGkYPvVvKgsVpooV 8ib4k0gUTFqXj8cBvwlMXhseHd+v1pyoMRMBLbAHwh36Ps58fNZTMFKuNdZenvkowZW9lU dU1JlKcFZBSZQsmya/fMNtd/Y6/mVfI= X-MC-Unique: 9LjIptEFPgK-AW4r3z1RAw-1 X-Mimecast-MFC-AGG-ID: 9LjIptEFPgK-AW4r3z1RAw_1778840890 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778840890; x=1779445690; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=iLWAyiJy8GLRfDU03DkZ0LkIOQxJt/qru7OuTrfmNOU=; b=DOiXoZlyrrfTyQhK09z+SzQwuYkZMtF1g9oKUjtMVXvxVtJfAV/jwr91cTEmLTJp2b RMJisQH3jNmicMVeDVhimpBl0dzYN7+Au0t013PsyfQXkuwYFCsKolOhcpjkC9ztVRJp U48PpFNKYLTqn4XwMmYQO4o1uEj7Us5MQQqT5Gv+B2Tq9qy4DWQmB+zTbJJgJ0JFY12u 53JAI7C+XmMczmVC5W5ZX2AX3/TES1frkpIGMgWuXuhgjN7oiu/U+Tjjsu1+dSpqEYGB 5DLTJbRXm78oHX0A9JCPIlkhYX9hUFjKJLsi9raIOWUU8lO6BhIHhPL6tseIw4E+fN14 Wchg== X-Gm-Message-State: AOJu0Yz25wlUJkq+z8y8MGYyh5VFv2ANhdUpBm2CW0wjFC2CabXHHaa4 9ZdOS1dIeLzP+lZDDc5hiiEFQ1W4XJke90D2fTs2fB0fjjkn2tvLXPgbU2D3HL2pkidRZo54pgF tn9r+xNJw+qR9bqg8XGsU43aesfXlB7X+f+Pi9/UPJOWecHf6kOO1NifKEpLsh9rZp9NUsvVDGD e1J/c78nGaZMpFG8YGhjKCPbGDePkswJAY5tCnw35SxDo= X-Gm-Gg: Acq92OEQwk25V0mmaEjyVFDrwASExlUicyQiCOWOjbnSO9/D+kwkgkm5Ion3mvlMxgb KdtYk2JC8jZe/JL5Rzkt7e1hMeQ6gY4bbas8lTqqOTvGItF49DzCXPT2a4rSymp7DIFLF4b0RDY JCIQRWzhNUtQ+l6D9QOApDtGYJH39iVxbU6K+sgyV81NbQ0cUEOtbb/3KYEkxg/RCZcECI1cafa MyqsxV/K5JOk0HlHTfCmDK/77goZ2EE0wcf0w7qgvWP5d8HeB3Xb3k8DGlKVlOmhD9Ph6EGNjS2 x0vhPTyAN8mnPf/ogrZRvE74eipdoyJnHVRGPjqCNCzhRKypapPDfm7xsq6Jm68VDSFHJDdEpdq 3x9Ou1SAph6dlwerQxz4SdA== X-Received: by 2002:a05:6000:2288:b0:452:75ca:3fab with SMTP id ffacd0b85a97d-45e5c5a5756mr4189142f8f.38.1778840890431; Fri, 15 May 2026 03:28:10 -0700 (PDT) X-Received: by 2002:a05:6000:2288:b0:452:75ca:3fab with SMTP id ffacd0b85a97d-45e5c5a5756mr4189103f8f.38.1778840889895; Fri, 15 May 2026 03:28:09 -0700 (PDT) To: devel@lists.libvirt.org Subject: [PATCH v4 2/2] NEWS: Add information about VMWare domains having different UUIDs Date: Fri, 15 May 2026 12:28:05 +0200 Message-ID: <482730a96d883d3019ec47b66eaa6b8c02adafe3.1778840347.git.mkletzan@redhat.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: References: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: d_be3XspmJia0SUmzgHi3QUSo-psMpSS3XAM3WL8jBI_1778840890 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: UUYEIJEWMTP6BIPFYN7ZEDHBCDVY3DDN X-Message-ID-Hash: UUYEIJEWMTP6BIPFYN7ZEDHBCDVY3DDN X-MailFrom: mkletzan@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Martin Kletzander via Devel Reply-To: Martin Kletzander X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1778841272358158500 Content-Type: text/plain; charset="utf-8"; x-default="true" From: Martin Kletzander Signed-off-by: Martin Kletzander Reviewed-by: Peter Krempa --- NEWS.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/NEWS.rst b/NEWS.rst index 105a398ca879..f79b4fdadbe5 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -21,6 +21,16 @@ v12.4.0 (unreleased) =20 * **Bug fixes** =20 + * esx/vmware: VMs are tracked under different UUIDs by default + + The VMWare-related drivers were using allegedly unique IDs for domains= , but + it turned out they were not completely unique, even for the same host.= That + caused an issue where a different domain could have been acted upon th= en + requested. Unfortunately, to make this work, the UUIDs of all + VMWare-related domains will change from this release. In order to use= the + pre-v12.4.0 behaviour there is a new URI query parameter ``legacy_uuid= `` + which, if set to ``1``, will revert to the older way of working. + =20 v12.3.0 (2026-05-02) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --=20 2.54.0