From nobody Wed Feb 11 10:04:38 2026 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