From nobody Fri Apr 26 21:05:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1490714134652922.8452609977576; Tue, 28 Mar 2017 08:15:34 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id ADF8B9E61E; Tue, 28 Mar 2017 15:15:32 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7FBA97DD41; Tue, 28 Mar 2017 15:15:32 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id D86C118523CA; Tue, 28 Mar 2017 15:15:30 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v2SFFUbr019717 for ; Tue, 28 Mar 2017 11:15:30 -0400 Received: by smtp.corp.redhat.com (Postfix) id 3B57193453; Tue, 28 Mar 2017 15:15:30 +0000 (UTC) Received: from moe.brq.redhat.com (dhcp129-131.brq.redhat.com [10.34.129.131]) by smtp.corp.redhat.com (Postfix) with ESMTP id 901B196DDF; Tue, 28 Mar 2017 15:15:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com ADF8B9E61E Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com ADF8B9E61E From: Michal Privoznik To: libvir-list@redhat.com Date: Tue, 28 Mar 2017 17:15:07 +0200 Message-Id: <39b4bf25ae29c14c1b85b5f3c94082dbcc788885.1490713844.git.mprivozn@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1/2] qemuDomainGetStats: Copy domain ID too X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Tue, 28 Mar 2017 15:15:33 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" One of the problems with our virGetDomain function is that it copies just domain name and domain UUID. Therefore it's very easy to forget aboud domain ID. This can cause some bugs, like virConnectGetAllDomainStats not reporting proper domain IDs. Signed-off-by: Michal Privoznik --- src/qemu/qemu_driver.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index d5fc00e..40c2eab 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -19556,6 +19556,9 @@ qemuDomainGetStats(virConnectPtr conn, if (!(tmp->dom =3D virGetDomain(conn, dom->def->name, dom->def->uuid))) goto cleanup; =20 + /* We have to copy the domain ID by hand */ + tmp->dom->id =3D dom->def->id; + *record =3D tmp; tmp =3D NULL; ret =3D 0; --=20 2.10.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 26 21:05:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1490714157567547.2477974276912; Tue, 28 Mar 2017 08:15:57 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1B3047E9C5; Tue, 28 Mar 2017 15:15:56 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E11B48FF6B; Tue, 28 Mar 2017 15:15:55 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 8DC4E18523CA; Tue, 28 Mar 2017 15:15:55 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v2SFFV6x019726 for ; Tue, 28 Mar 2017 11:15:31 -0400 Received: by smtp.corp.redhat.com (Postfix) id C3D0D93443; Tue, 28 Mar 2017 15:15:31 +0000 (UTC) Received: from moe.brq.redhat.com (dhcp129-131.brq.redhat.com [10.34.129.131]) by smtp.corp.redhat.com (Postfix) with ESMTP id 92BA796DC8; Tue, 28 Mar 2017 15:15:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 1B3047E9C5 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 1B3047E9C5 From: Michal Privoznik To: libvir-list@redhat.com Date: Tue, 28 Mar 2017 17:15:08 +0200 Message-Id: In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 2/2] virGetDomain: Set domain ID too X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Tue, 28 Mar 2017 15:15:56 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" So far our code is full of the following pattern: dom =3D virGetDomain(conn, name, uuid) if (dom) dom->id =3D 42; There is no reasong why it couldn't be just: dom =3D virGetDomain(conn, name, uuid, id); After all, client domain representation consists of tuple (name, uuid, id). Signed-off-by: Michal Privoznik --- daemon/remote.c | 5 +---- src/bhyve/bhyve_driver.c | 20 +++++------------- src/conf/domain_event.c | 11 +++++----- src/conf/virdomainobjlist.c | 10 +++------ src/datatypes.c | 8 ++++++-- src/datatypes.h | 3 ++- src/esx/esx_driver.c | 49 ++++++++++++++---------------------------= ---- src/hyperv/hyperv_wmi.c | 15 +++++--------- src/libxl/libxl_driver.c | 20 +++++------------- src/libxl/libxl_migration.c | 2 +- src/lxc/lxc_driver.c | 20 +++++------------- src/openvz/openvz_driver.c | 24 ++++++---------------- src/phyp/phyp_driver.c | 12 +++-------- src/qemu/qemu_driver.c | 26 ++++++++---------------- src/qemu/qemu_migration.c | 4 ++-- src/remote/remote_driver.c | 5 +---- src/test/test_driver.c | 20 +++++------------- src/uml/uml_driver.c | 15 +++++--------- src/vbox/vbox_common.c | 44 +++++++++++++++------------------------- src/vmware/vmware_driver.c | 20 +++++------------- src/vz/vz_driver.c | 22 ++++++-------------- src/xen/xen_driver.c | 28 ++++++-------------------- src/xenapi/xenapi_driver.c | 30 +++++++++++---------------- 23 files changed, 129 insertions(+), 284 deletions(-) diff --git a/daemon/remote.c b/daemon/remote.c index 5696b43..1610fea 100644 --- a/daemon/remote.c +++ b/daemon/remote.c @@ -6964,13 +6964,10 @@ remoteDispatchStorageVolGetInfoFlags(virNetServerPt= r server ATTRIBUTE_UNUSED, static virDomainPtr get_nonnull_domain(virConnectPtr conn, remote_nonnull_domain domain) { - virDomainPtr dom; - dom =3D virGetDomain(conn, domain.name, BAD_CAST domain.uuid); /* Should we believe the domain.id sent by the client? Maybe * this should be a check rather than an assignment? XXX */ - if (dom) dom->id =3D domain.id; - return dom; + return virGetDomain(conn, domain.name, BAD_CAST domain.uuid, domain.id= ); } =20 static virNetworkPtr diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index 74cc5ab..ed2221a 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -570,9 +570,7 @@ bhyveDomainDefineXMLFlags(virConnectPtr conn, const cha= r *xml, unsigned int flag VIR_DOMAIN_EVENT_DEFINED_ADD= ED : VIR_DOMAIN_EVENT_DEFINED_UPD= ATED); =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virObjectUnref(caps); @@ -817,9 +815,7 @@ bhyveDomainLookupByUUID(virConnectPtr conn, if (virDomainLookupByUUIDEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (vm) @@ -845,9 +841,7 @@ static virDomainPtr bhyveDomainLookupByName(virConnectP= tr conn, if (virDomainLookupByNameEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainObjEndAPI(&vm); @@ -873,9 +867,7 @@ bhyveDomainLookupByID(virConnectPtr conn, if (virDomainLookupByIDEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (vm) @@ -991,9 +983,7 @@ bhyveDomainCreateXML(virConnectPtr conn, VIR_DOMAIN_EVENT_STARTED, VIR_DOMAIN_EVENT_STARTED_BOO= TED); =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virObjectUnref(caps); diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c index 6243b42..c15f32a 100644 --- a/src/conf/domain_event.c +++ b/src/conf/domain_event.c @@ -1764,10 +1764,11 @@ virDomainEventDispatchDefaultFunc(virConnectPtr con= n, virConnectObjectEventGenericCallback cb, void *cbopaque) { - virDomainPtr dom =3D virGetDomain(conn, event->meta.name, event->meta.= uuid); + virDomainPtr dom =3D virGetDomain(conn, event->meta.name, + event->meta.uuid, event->meta.id); + if (!dom) return; - dom->id =3D event->meta.id; =20 switch ((virDomainEventID) event->eventID) { case VIR_DOMAIN_EVENT_ID_LIFECYCLE: @@ -2108,13 +2109,13 @@ virDomainQemuMonitorEventDispatchFunc(virConnectPtr= conn, virConnectObjectEventGenericCallback= cb, void *cbopaque) { - virDomainPtr dom =3D virGetDomain(conn, event->meta.name, event->meta.= uuid); + virDomainPtr dom; virDomainQemuMonitorEventPtr qemuMonitorEvent; virDomainQemuMonitorEventData *data =3D cbopaque; =20 - if (!dom) + if (!(dom =3D virGetDomain(conn, event->meta.name, + event->meta.uuid, event->meta.id))) return; - dom->id =3D event->meta.id; =20 qemuMonitorEvent =3D (virDomainQemuMonitorEventPtr)event; ((virConnectDomainQemuMonitorEventCallback)cb)(conn, dom, diff --git a/src/conf/virdomainobjlist.c b/src/conf/virdomainobjlist.c index 8d425d6..c121382 100644 --- a/src/conf/virdomainobjlist.c +++ b/src/conf/virdomainobjlist.c @@ -1027,15 +1027,11 @@ virDomainObjListExport(virDomainObjListPtr domlist, virDomainObjPtr vm =3D vms[i]; =20 virObjectLock(vm); + doms[i] =3D virGetDomain(conn, vm->def->name, vm->def->uuid, v= m->def->id); + virObjectUnlock(vm); =20 - if (!(doms[i] =3D virGetDomain(conn, vm->def->name, vm->def->u= uid))) { - virObjectUnlock(vm); + if (!doms[i]) goto cleanup; - } - - doms[i]->id =3D vm->def->id; - - virObjectUnlock(vm); } =20 *domains =3D doms; diff --git a/src/datatypes.c b/src/datatypes.c index fe8b9c2..3e3148d 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -261,6 +261,7 @@ virConnectCloseCallbackDataGetCallback(virConnectCloseC= allbackDataPtr closeData) * @conn: the hypervisor connection * @name: pointer to the domain name * @uuid: pointer to the uuid + * @id: domain ID * * Allocates a new domain object. When the object is no longer needed, * virObjectUnref() must be called in order to not leak data. @@ -268,7 +269,10 @@ virConnectCloseCallbackDataGetCallback(virConnectClose= CallbackDataPtr closeData) * Returns a pointer to the domain object, or NULL on error. */ virDomainPtr -virGetDomain(virConnectPtr conn, const char *name, const unsigned char *uu= id) +virGetDomain(virConnectPtr conn, + const char *name, + const unsigned char *uuid, + int id) { virDomainPtr ret =3D NULL; =20 @@ -286,7 +290,7 @@ virGetDomain(virConnectPtr conn, const char *name, cons= t unsigned char *uuid) goto error; =20 ret->conn =3D virObjectRef(conn); - ret->id =3D -1; + ret->id =3D id; memcpy(&(ret->uuid[0]), uuid, VIR_UUID_BUFLEN); =20 return ret; diff --git a/src/datatypes.h b/src/datatypes.h index d525835..288e057 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -683,7 +683,8 @@ struct _virNWFilter { virConnectPtr virGetConnect(void); virDomainPtr virGetDomain(virConnectPtr conn, const char *name, - const unsigned char *uuid); + const unsigned char *uuid, + int id); virNetworkPtr virGetNetwork(virConnectPtr conn, const char *name, const unsigned char *uuid); diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index 166d4bc..6333855 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -1509,13 +1509,11 @@ esxDomainLookupByID(virConnectPtr conn, int id) if (id !=3D id_candidate) continue; =20 - domain =3D virGetDomain(conn, name_candidate, uuid_candidate); + domain =3D virGetDomain(conn, name_candidate, uuid_candidate, id); =20 if (!domain) goto cleanup; =20 - domain->id =3D id; - break; } =20 @@ -1557,17 +1555,11 @@ esxDomainLookupByUUID(virConnectPtr conn, const uns= igned char *uuid) goto cleanup; } =20 - domain =3D virGetDomain(conn, name, uuid); - - if (!domain) - goto cleanup; - /* Only running/suspended virtual machines have an ID !=3D -1 */ - if (powerState !=3D esxVI_VirtualMachinePowerState_PoweredOff) { - domain->id =3D id; - } else { - domain->id =3D -1; - } + if (powerState =3D=3D esxVI_VirtualMachinePowerState_PoweredOff) + id =3D -1; + + domain =3D virGetDomain(conn, name, uuid, id); =20 cleanup: esxVI_String_Free(&propertyNameList); @@ -1613,17 +1605,11 @@ esxDomainLookupByName(virConnectPtr conn, const cha= r *name) goto cleanup; } =20 - domain =3D virGetDomain(conn, name, uuid); - - if (!domain) - goto cleanup; - /* Only running/suspended virtual machines have an ID !=3D -1 */ - if (powerState !=3D esxVI_VirtualMachinePowerState_PoweredOff) { - domain->id =3D id; - } else { - domain->id =3D -1; - } + if (powerState =3D=3D esxVI_VirtualMachinePowerState_PoweredOff) + id =3D -1; + + domain =3D virGetDomain(conn, name, uuid, id); =20 cleanup: esxVI_String_Free(&propertyNameList); @@ -3208,10 +3194,7 @@ esxDomainDefineXMLFlags(virConnectPtr conn, const ch= ar *xml, unsigned int flags) goto cleanup; } =20 - domain =3D virGetDomain(conn, def->name, def->uuid); - - if (domain) - domain->id =3D -1; + domain =3D virGetDomain(conn, def->name, def->uuid, -1); =20 /* FIXME: Add proper rollback in case of an error */ =20 @@ -5105,14 +5088,12 @@ esxConnectListAllDomains(virConnectPtr conn, if (VIR_RESIZE_N(doms, ndoms, count, 2) < 0) goto cleanup; =20 - if (!(dom =3D virGetDomain(conn, name, uuid))) - goto cleanup; - /* Only running/suspended virtual machines have an ID !=3D -1 */ - if (powerState !=3D esxVI_VirtualMachinePowerState_PoweredOff) - dom->id =3D id; - else - dom->id =3D -1; + if (powerState =3D=3D esxVI_VirtualMachinePowerState_PoweredOff) + id =3D -1; + + if (!(dom =3D virGetDomain(conn, name, uuid, id))) + goto cleanup; =20 doms[count++] =3D dom; } diff --git a/src/hyperv/hyperv_wmi.c b/src/hyperv/hyperv_wmi.c index 13acd09..ef1cf25 100644 --- a/src/hyperv/hyperv_wmi.c +++ b/src/hyperv/hyperv_wmi.c @@ -608,6 +608,7 @@ hypervMsvmComputerSystemToDomain(virConnectPtr conn, virDomainPtr *domain) { unsigned char uuid[VIR_UUID_BUFLEN]; + int id =3D -1; =20 if (domain =3D=3D NULL || *domain !=3D NULL) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid argument")= ); @@ -621,18 +622,12 @@ hypervMsvmComputerSystemToDomain(virConnectPtr conn, return -1; } =20 - *domain =3D virGetDomain(conn, computerSystem->data->ElementName, uuid= ); + if (hypervIsMsvmComputerSystemActive(computerSystem, NULL)) + id =3D computerSystem->data->ProcessID; =20 - if (*domain =3D=3D NULL) - return -1; + *domain =3D virGetDomain(conn, computerSystem->data->ElementName, uuid= , id); =20 - if (hypervIsMsvmComputerSystemActive(computerSystem, NULL)) { - (*domain)->id =3D computerSystem->data->ProcessID; - } else { - (*domain)->id =3D -1; - } - - return 0; + return *domain ? 0 : -1; } =20 int diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index e5b8f48..0d65342 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -1072,9 +1072,7 @@ libxlDomainCreateXML(virConnectPtr conn, const char *= xml, goto endjob; } =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 endjob: libxlDomainObjEndJob(driver, vm); @@ -1102,9 +1100,7 @@ libxlDomainLookupByID(virConnectPtr conn, int id) if (virDomainLookupByIDEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (vm) @@ -1128,9 +1124,7 @@ libxlDomainLookupByUUID(virConnectPtr conn, const uns= igned char *uuid) if (virDomainLookupByUUIDEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (vm) @@ -1154,9 +1148,7 @@ libxlDomainLookupByName(virConnectPtr conn, const cha= r *name) if (virDomainLookupByNameEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainObjEndAPI(&vm); @@ -2825,9 +2817,7 @@ libxlDomainDefineXMLFlags(virConnectPtr conn, const c= har *xml, unsigned int flag goto cleanup; } =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_DEFIN= ED, !oldDef ? diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index 073cfda..228c850 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -1322,7 +1322,7 @@ libxlDomainMigrationFinish(virConnectPtr dconn, if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) = < 0) goto cleanup; =20 - dom =3D virGetDomain(dconn, vm->def->name, vm->def->uuid); + dom =3D virGetDomain(dconn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (dom =3D=3D NULL) { diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 27b4b75..22c8b58 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -267,9 +267,7 @@ static virDomainPtr lxcDomainLookupByID(virConnectPtr c= onn, if (virDomainLookupByIDEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (vm) @@ -297,9 +295,7 @@ static virDomainPtr lxcDomainLookupByUUID(virConnectPtr= conn, if (virDomainLookupByUUIDEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainObjEndAPI(&vm); @@ -323,9 +319,7 @@ static virDomainPtr lxcDomainLookupByName(virConnectPtr= conn, if (virDomainLookupByNameEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainObjEndAPI(&vm); @@ -509,9 +503,7 @@ lxcDomainDefineXMLFlags(virConnectPtr conn, const char = *xml, unsigned int flags) VIR_DOMAIN_EVENT_DEFINED_ADDED : VIR_DOMAIN_EVENT_DEFINED_UPDATED); =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainDefFree(def); @@ -1277,9 +1269,7 @@ lxcDomainCreateXMLWithFiles(virConnectPtr conn, VIR_DOMAIN_EVENT_STARTED_BOOTED); virDomainAuditStart(vm, "booted", true); =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 virLXCDomainObjEndJob(driver, vm); =20 diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index 647c852..9c4a196 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -329,9 +329,7 @@ static virDomainPtr openvzDomainLookupByID(virConnectPt= r conn, goto cleanup; } =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (vm) @@ -395,9 +393,7 @@ static virDomainPtr openvzDomainLookupByUUID(virConnect= Ptr conn, goto cleanup; } =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (vm) @@ -421,9 +417,7 @@ static virDomainPtr openvzDomainLookupByName(virConnect= Ptr conn, goto cleanup; } =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainObjEndAPI(&vm); @@ -1053,9 +1047,7 @@ openvzDomainDefineXMLFlags(virConnectPtr conn, const = char *xml, unsigned int fla } } =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D -1; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, -1); =20 cleanup: virDomainDefFree(vmdef); @@ -1144,9 +1136,7 @@ openvzDomainCreateXML(virConnectPtr conn, const char = *xml, } } =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainDefFree(vmdef); @@ -2496,9 +2486,7 @@ openvzDomainMigrateFinish3Params(virConnectPtr dconn, vm->def->id =3D strtoI(vm->def->name); virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_MIGRAT= ED); =20 - dom =3D virGetDomain(dconn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(dconn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainObjEndAPI(&vm); diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c index 1803aa5..2123784 100644 --- a/src/phyp/phyp_driver.c +++ b/src/phyp/phyp_driver.c @@ -3214,10 +3214,7 @@ phypDomainLookupByName(virConnectPtr conn, const cha= r *lpar_name) if (phypGetLparUUID(lpar_uuid, lpar_id, conn) =3D=3D -1) return NULL; =20 - dom =3D virGetDomain(conn, lpar_name, lpar_uuid); - - if (dom) - dom->id =3D lpar_id; + dom =3D virGetDomain(conn, lpar_name, lpar_uuid, lpar_id); =20 return dom; } @@ -3237,10 +3234,7 @@ phypDomainLookupByID(virConnectPtr conn, int lpar_id) if (phypGetLparUUID(lpar_uuid, lpar_id, conn) =3D=3D -1) goto cleanup; =20 - dom =3D virGetDomain(conn, lpar_name, lpar_uuid); - - if (dom) - dom->id =3D lpar_id; + dom =3D virGetDomain(conn, lpar_name, lpar_uuid, lpar_id); =20 cleanup: VIR_FREE(lpar_name); @@ -3593,7 +3587,7 @@ phypDomainCreateXML(virConnectPtr conn, } } =20 - if ((dom =3D virGetDomain(conn, def->name, def->uuid)) =3D=3D NULL) + if ((dom =3D virGetDomain(conn, def->name, def->uuid, def->id)) =3D=3D= NULL) goto err; =20 if (phypBuildLpar(conn, def) =3D=3D -1) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 40c2eab..dcc46e1 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1534,8 +1534,7 @@ static virDomainPtr qemuDomainLookupByID(virConnectPt= r conn, if (virDomainLookupByIDEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (vm) @@ -1563,8 +1562,7 @@ static virDomainPtr qemuDomainLookupByUUID(virConnect= Ptr conn, if (virDomainLookupByUUIDEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainObjEndAPI(&vm); @@ -1589,8 +1587,7 @@ static virDomainPtr qemuDomainLookupByName(virConnect= Ptr conn, if (virDomainLookupByNameEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainObjEndAPI(&vm); @@ -1794,9 +1791,7 @@ static virDomainPtr qemuDomainCreateXML(virConnectPtr= conn, } virDomainAuditStart(vm, "booted", true); =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 qemuProcessEndJob(driver, vm); =20 @@ -7101,8 +7096,7 @@ qemuDomainDefineXMLFlags(virConnectPtr conn, VIR_DOMAIN_EVENT_DEFINED_UPDATED); =20 VIR_INFO("Creating domain '%s'", vm->def->name); - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainDefFree(oldDef); @@ -15735,9 +15729,7 @@ static virDomainPtr qemuDomainQemuAttach(virConnect= Ptr conn, =20 monConfig =3D NULL; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 qemuDomainObjEndJob(driver, vm); =20 @@ -19553,12 +19545,10 @@ qemuDomainGetStats(virConnectPtr conn, } } =20 - if (!(tmp->dom =3D virGetDomain(conn, dom->def->name, dom->def->uuid))) + if (!(tmp->dom =3D virGetDomain(conn, dom->def->name, + dom->def->uuid, dom->def->id))) goto cleanup; =20 - /* We have to copy the domain ID by hand */ - tmp->dom->id =3D dom->def->id; - *record =3D tmp; tmp =3D NULL; ret =3D 0; diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index dabfe10..87d7dcd 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -5160,7 +5160,7 @@ qemuMigrationFinish(virQEMUDriverPtr driver, if (flags & VIR_MIGRATE_OFFLINE) { if (retcode =3D=3D 0 && qemuMigrationPersist(driver, vm, mig, false) =3D=3D 0) - dom =3D virGetDomain(dconn, vm->def->name, vm->def->uuid); + dom =3D virGetDomain(dconn, vm->def->name, vm->def->uuid, -1); goto endjob; } =20 @@ -5294,7 +5294,7 @@ qemuMigrationFinish(virQEMUDriverPtr driver, } } =20 - dom =3D virGetDomain(dconn, vm->def->name, vm->def->uuid); + dom =3D virGetDomain(dconn, vm->def->name, vm->def->uuid, vm->def->id); =20 event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_RESUMED, diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 27bcc9b..1242bd6 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -8080,10 +8080,7 @@ remoteStorageVolGetInfoFlags(virStorageVolPtr vol, static virDomainPtr get_nonnull_domain(virConnectPtr conn, remote_nonnull_domain domain) { - virDomainPtr dom; - dom =3D virGetDomain(conn, domain.name, BAD_CAST domain.uuid); - if (dom) dom->id =3D domain.id; - return dom; + return virGetDomain(conn, domain.name, BAD_CAST domain.uuid, domain.id= ); } =20 static virNetworkPtr diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 8669495..cce4d2d 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -1673,9 +1673,7 @@ testDomainCreateXML(virConnectPtr conn, const char *x= ml, VIR_DOMAIN_EVENT_STARTED, VIR_DOMAIN_EVENT_STARTED_BOOTED); =20 - ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid); - if (ret) - ret->id =3D dom->def->id; + ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid, dom->def->i= d); =20 cleanup: if (dom) @@ -1699,9 +1697,7 @@ static virDomainPtr testDomainLookupByID(virConnectPt= r conn, goto cleanup; } =20 - ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid); - if (ret) - ret->id =3D dom->def->id; + ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid, dom->def->i= d); =20 cleanup: if (dom) @@ -1721,9 +1717,7 @@ static virDomainPtr testDomainLookupByUUID(virConnect= Ptr conn, goto cleanup; } =20 - ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid); - if (ret) - ret->id =3D dom->def->id; + ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid, dom->def->i= d); =20 cleanup: if (dom) @@ -1743,9 +1737,7 @@ static virDomainPtr testDomainLookupByName(virConnect= Ptr conn, goto cleanup; } =20 - ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid); - if (ret) - ret->id =3D dom->def->id; + ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid, dom->def->i= d); =20 cleanup: virDomainObjEndAPI(&dom); @@ -2699,9 +2691,7 @@ static virDomainPtr testDomainDefineXMLFlags(virConne= ctPtr conn, VIR_DOMAIN_EVENT_DEFINED_ADDED : VIR_DOMAIN_EVENT_DEFINED_UPDATED); =20 - ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid); - if (ret) - ret->id =3D dom->def->id; + ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid, dom->def->i= d); =20 cleanup: virDomainDefFree(def); diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index 532ce3b..03edc89 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -1359,8 +1359,7 @@ static virDomainPtr umlDomainLookupByID(virConnectPtr= conn, if (virDomainLookupByIDEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (vm) @@ -1387,8 +1386,7 @@ static virDomainPtr umlDomainLookupByUUID(virConnectP= tr conn, if (virDomainLookupByUUIDEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (vm) @@ -1415,8 +1413,7 @@ static virDomainPtr umlDomainLookupByName(virConnectP= tr conn, if (virDomainLookupByNameEnsureACL(conn, vm->def) < 0) goto cleanup; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainObjEndAPI(&vm); @@ -1616,8 +1613,7 @@ static virDomainPtr umlDomainCreateXML(virConnectPtr = conn, const char *xml, VIR_DOMAIN_EVENT_STARTED, VIR_DOMAIN_EVENT_STARTED_BOOTED); =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainDefFree(def); @@ -2093,8 +2089,7 @@ umlDomainDefineXMLFlags(virConnectPtr conn, const cha= r *xml, unsigned int flags) goto cleanup; } =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainDefFree(def); diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index b71506a..d2b36ac 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -806,9 +806,7 @@ static virDomainPtr vboxDomainLookupByID(virConnectPtr = conn, int id) * itself, so need not worry. */ =20 - ret =3D virGetDomain(conn, machineNameUtf8, uuid); - if (ret) - ret->id =3D id + 1; + ret =3D virGetDomain(conn, machineNameUtf8, uuid, id + 1); =20 /* Cleanup all the XPCOM allocated stuff here */ VBOX_UTF8_FREE(machineNameUtf8); @@ -862,8 +860,9 @@ virDomainPtr vboxDomainLookupByUUID(virConnectPtr conn, vboxIIDUnalloc(&iid); =20 if (memcmp(uuid, iid_as_uuid, VIR_UUID_BUFLEN) =3D=3D 0) { - PRUint32 state; + int id =3D -1; + =20 matched =3D true; =20 @@ -872,16 +871,10 @@ virDomainPtr vboxDomainLookupByUUID(virConnectPtr con= n, =20 gVBoxAPI.UIMachine.GetState(machine, &state); =20 - /* get a new domain pointer from virGetDomain, if it fails - * then no need to assign the id, else assign the id, cause - * it is -1 by default. rest is taken care by virGetDomain - * itself, so need not worry. - */ + if (gVBoxAPI.machineStateChecker.Online(state)) + id =3D i + 1; =20 - ret =3D virGetDomain(conn, machineNameUtf8, iid_as_uuid); - if (ret && - gVBoxAPI.machineStateChecker.Online(state)) - ret->id =3D i + 1; + ret =3D virGetDomain(conn, machineNameUtf8, iid_as_uuid, id); } =20 if (matched) @@ -936,8 +929,8 @@ vboxDomainLookupByName(virConnectPtr conn, const char *= name) VBOX_UTF16_TO_UTF8(machineNameUtf16, &machineNameUtf8); =20 if (STREQ(name, machineNameUtf8)) { - PRUint32 state; + int id =3D -1; =20 matched =3D true; =20 @@ -947,16 +940,10 @@ vboxDomainLookupByName(virConnectPtr conn, const char= *name) =20 gVBoxAPI.UIMachine.GetState(machine, &state); =20 - /* get a new domain pointer from virGetDomain, if it fails - * then no need to assign the id, else assign the id, cause - * it is -1 by default. rest is taken care by virGetDomain - * itself, so need not worry. - */ + if (gVBoxAPI.machineStateChecker.Online(state)) + id =3D i + 1; =20 - ret =3D virGetDomain(conn, machineNameUtf8, uuid); - if (ret && - gVBoxAPI.machineStateChecker.Online(state)) - ret->id =3D i + 1; + ret =3D virGetDomain(conn, machineNameUtf8, uuid, id); } =20 VBOX_UTF8_FREE(machineNameUtf8); @@ -1982,7 +1969,7 @@ vboxDomainDefineXMLFlags(virConnectPtr conn, const ch= ar *xml, unsigned int flags gVBoxAPI.UISession.Close(data->vboxSession); vboxIIDUnalloc(&mchiid); =20 - ret =3D virGetDomain(conn, def->name, def->uuid); + ret =3D virGetDomain(conn, def->name, def->uuid, -1); VBOX_RELEASE(machine); =20 virDomainDefFree(def); @@ -7333,6 +7320,7 @@ vboxConnectListAllDomains(virConnectPtr conn, =20 for (i =3D 0; i < machines.count; i++) { IMachine *machine =3D machines.items[i]; + int id =3D -1; =20 if (!machine) continue; @@ -7397,7 +7385,10 @@ vboxConnectListAllDomains(virConnectPtr conn, vboxIIDToUUID(&iid, uuid); vboxIIDUnalloc(&iid); =20 - dom =3D virGetDomain(conn, machineNameUtf8, uuid); + if (active) + id =3D i + 1; + + dom =3D virGetDomain(conn, machineNameUtf8, uuid, id); =20 VBOX_UTF8_FREE(machineNameUtf8); VBOX_UTF16_FREE(machineNameUtf16); @@ -7405,9 +7396,6 @@ vboxConnectListAllDomains(virConnectPtr conn, if (!dom) goto cleanup; =20 - if (active) - dom->id =3D i + 1; - doms[count++] =3D dom; } =20 diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c index d3497bd..6853658 100644 --- a/src/vmware/vmware_driver.c +++ b/src/vmware/vmware_driver.c @@ -427,9 +427,7 @@ vmwareDomainDefineXMLFlags(virConnectPtr conn, const ch= ar *xml, unsigned int fla vmdef =3D NULL; vm->persistent =3D 1; =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D -1; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, -1); =20 cleanup: virDomainDefFree(vmdef); @@ -728,9 +726,7 @@ vmwareDomainCreateXML(virConnectPtr conn, const char *x= ml, goto cleanup; } =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: virDomainDefFree(vmdef); @@ -855,9 +851,7 @@ vmwareDomainLookupByID(virConnectPtr conn, int id) goto cleanup; } =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (vm) @@ -906,9 +900,7 @@ vmwareDomainLookupByUUID(virConnectPtr conn, const unsi= gned char *uuid) goto cleanup; } =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (vm) @@ -932,9 +924,7 @@ vmwareDomainLookupByName(virConnectPtr conn, const char= *name) goto cleanup; } =20 - dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid); - if (dom) - dom->id =3D vm->def->id; + dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: if (vm) diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index 88f1960..bb1afd0 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -586,9 +586,7 @@ vzDomainLookupByID(virConnectPtr conn, int id) if (virDomainLookupByIDEnsureACL(conn, dom->def) < 0) goto cleanup; =20 - ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid); - if (ret) - ret->id =3D dom->def->id; + ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid, dom->def->i= d); =20 cleanup: virObjectUnlock(dom); @@ -615,9 +613,7 @@ vzDomainLookupByUUID(virConnectPtr conn, const unsigned= char *uuid) if (virDomainLookupByUUIDEnsureACL(conn, dom->def) < 0) goto cleanup; =20 - ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid); - if (ret) - ret->id =3D dom->def->id; + ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid, dom->def->i= d); =20 cleanup: virObjectUnlock(dom); @@ -642,9 +638,7 @@ vzDomainLookupByName(virConnectPtr conn, const char *na= me) if (virDomainLookupByNameEnsureACL(conn, dom->def) < 0) goto cleanup; =20 - ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid); - if (ret) - ret->id =3D dom->def->id; + ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid, dom->def->i= d); =20 cleanup: virDomainObjEndAPI(&dom); @@ -898,9 +892,7 @@ vzDomainDefineXMLFlags(virConnectPtr conn, const char *= xml, unsigned int flags) } } =20 - retdom =3D virGetDomain(conn, def->name, def->uuid); - if (retdom) - retdom->id =3D def->id; + retdom =3D virGetDomain(conn, def->name, def->uuid, def->id); =20 cleanup: if (job) @@ -3351,9 +3343,7 @@ vzDomainMigrateFinish3Params(virConnectPtr dconn, if (virDomainMigrateFinish3ParamsEnsureACL(dconn, dom->def) < 0) goto cleanup; =20 - domain =3D virGetDomain(dconn, dom->def->name, dom->def->uuid); - if (domain) - domain->id =3D dom->def->id; + domain =3D virGetDomain(dconn, dom->def->name, dom->def->uuid, dom->de= f->id); =20 cleanup: /* In this situation we have to restore domain on source. But the migr= ation @@ -3767,7 +3757,7 @@ vzDomainGetAllStats(virConnectPtr conn, if (vzDomainGetBalloonStats(dom, stat, &maxparams) < 0) goto error; =20 - if (!(stat->dom =3D virGetDomain(conn, dom->def->name, dom->def->uuid)= )) + if (!(stat->dom =3D virGetDomain(conn, dom->def->name, dom->def->uuid,= dom->def->id))) goto error; =20 return stat; diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 7a2f4a1..4d14089 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -774,9 +774,7 @@ xenUnifiedDomainCreateXML(virConnectPtr conn, if (xenDaemonCreateXML(conn, def) < 0) goto cleanup; =20 - ret =3D virGetDomain(conn, def->name, def->uuid); - if (ret) - ret->id =3D def->id; + ret =3D virGetDomain(conn, def->name, def->uuid, def->id); =20 cleanup: virDomainDefFree(def); @@ -795,10 +793,7 @@ xenUnifiedDomainLookupByID(virConnectPtr conn, int id) if (virDomainLookupByIDEnsureACL(conn, def) < 0) goto cleanup; =20 - if (!(ret =3D virGetDomain(conn, def->name, def->uuid))) - goto cleanup; - - ret->id =3D def->id; + ret =3D virGetDomain(conn, def->name, def->uuid, def->id); =20 cleanup: virDomainDefFree(def); @@ -818,10 +813,7 @@ xenUnifiedDomainLookupByUUID(virConnectPtr conn, if (virDomainLookupByUUIDEnsureACL(conn, def) < 0) goto cleanup; =20 - if (!(ret =3D virGetDomain(conn, def->name, def->uuid))) - goto cleanup; - - ret->id =3D def->id; + ret =3D virGetDomain(conn, def->name, def->uuid, def->id); =20 cleanup: virDomainDefFree(def); @@ -841,10 +833,7 @@ xenUnifiedDomainLookupByName(virConnectPtr conn, if (virDomainLookupByNameEnsureACL(conn, def) < 0) goto cleanup; =20 - if (!(ret =3D virGetDomain(conn, def->name, def->uuid))) - goto cleanup; - - ret->id =3D def->id; + ret =3D virGetDomain(conn, def->name, def->uuid, def->id); =20 cleanup: virDomainDefFree(def); @@ -1720,9 +1709,7 @@ xenUnifiedDomainMigrateFinish(virConnectPtr dconn, goto cleanup; } =20 - ret =3D virGetDomain(dconn, minidef->name, minidef->uuid); - if (ret) - ret->id =3D minidef->id; + ret =3D virGetDomain(dconn, minidef->name, minidef->uuid, minidef->id); =20 cleanup: virDomainDefFree(def); @@ -1817,10 +1804,7 @@ xenUnifiedDomainDefineXMLFlags(virConnectPtr conn, c= onst char *xml, unsigned int =20 if (xenDaemonDomainDefineXML(conn, def) < 0) goto cleanup; - ret =3D virGetDomain(conn, def->name, def->uuid); - - if (ret) - ret->id =3D -1; + ret =3D virGetDomain(conn, def->name, def->uuid, -1); =20 cleanup: virDomainDefFree(def); diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c index a9ed407..37d1a6f 100644 --- a/src/xenapi/xenapi_driver.c +++ b/src/xenapi/xenapi_driver.c @@ -580,14 +580,14 @@ xenapiDomainCreateXML(virConnectPtr conn, ignore_value(virUUIDParse(record->uuid, raw_uuid)); if (vm) { if (xen_vm_start(priv->session, vm, false, false)) { - domP =3D virGetDomain(conn, record->name_label, raw_uuid); + domP =3D virGetDomain(conn, record->name_label, + raw_uuid, record->domid); if (!domP) { xen_vm_record_free(record); xenapiSessionErrorHandler(conn, VIR_ERR_INTERNAL_ERROR, _("Domain Pointer is invalid= ")); return domP; } - domP->id =3D record->domid; xen_vm_free(vm); } else @@ -627,18 +627,16 @@ xenapiDomainLookupByID(virConnectPtr conn, int id) for (i =3D 0; i < result->size; i++) { xen_vm_get_domid(session, &domID, result->contents[i]); if (domID =3D=3D id) { + int64_t domid =3D -1; + xen_vm_get_record(session, &record, result->contents[i= ]); xen_vm_get_uuid(session, &uuid, result->contents[i]); ignore_value(virUUIDParse(uuid, raw_uuid)); - domP =3D virGetDomain(conn, record->name_label, raw_uu= id); - if (domP) { - int64_t domid =3D -1; - xen_vm_get_domid(session, &domid, result->contents= [i]); - domP->id =3D domid; - } else { + xen_vm_get_domid(session, &domid, result->contents[i]); + domP =3D virGetDomain(conn, record->name_label, raw_uu= id, domid); + if (!domP) { xenapiSessionErrorHandler(conn, VIR_ERR_INTERNAL_E= RROR, _("Domain Pointer not va= lid")); - domP =3D NULL; } xen_uuid_free(uuid); xen_vm_record_free(record); @@ -676,13 +674,10 @@ xenapiDomainLookupByUUID(virConnectPtr conn, if (xen_vm_get_by_uuid(session, &vm, uuidStr)) { xen_vm_get_record(session, &record, vm); if (record !=3D NULL) { - domP =3D virGetDomain(conn, record->name_label, uuid); + domP =3D virGetDomain(conn, record->name_label, uuid, record->= domid); if (!domP) { xenapiSessionErrorHandler(conn, VIR_ERR_INTERNAL_ERROR, _("Domain Pointer not valid")); - domP =3D NULL; - } else { - domP->id =3D record->domid; } xen_vm_record_free(record); } else { @@ -722,12 +717,11 @@ xenapiDomainLookupByName(virConnectPtr conn, vm =3D vms->contents[0]; xen_vm_get_uuid(session, &uuid, vm); if (uuid !=3D NULL) { + int64_t domid =3D -1; ignore_value(virUUIDParse(uuid, raw_uuid)); - domP =3D virGetDomain(conn, name, raw_uuid); + xen_vm_get_domid(session, &domid, vm); + domP =3D virGetDomain(conn, name, raw_uuid, domid); if (domP !=3D NULL) { - int64_t domid =3D -1; - xen_vm_get_domid(session, &domid, vm); - domP->id =3D domid; xen_uuid_free(uuid); xen_vm_set_free(vms); return domP; @@ -1776,7 +1770,7 @@ xenapiDomainDefineXMLFlags(virConnectPtr conn, const = char *xml, unsigned int fla if (record !=3D NULL) { unsigned char raw_uuid[VIR_UUID_BUFLEN]; ignore_value(virUUIDParse(record->uuid, raw_uuid)); - domP =3D virGetDomain(conn, record->name_label, raw_uuid); + domP =3D virGetDomain(conn, record->name_label, raw_uuid, -1); if (!domP && !priv->session->ok) xenapiSessionErrorHandler(conn, VIR_ERR_NO_DOMAIN, NULL); xen_vm_record_free(record); --=20 2.10.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list