From nobody Mon Dec 15 01:51:36 2025 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.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520871740840643.3585131860028; Mon, 12 Mar 2018 09:22:20 -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 35E093AA10; Mon, 12 Mar 2018 16:22:18 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 01B1017140; Mon, 12 Mar 2018 16:22:18 +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 BFCA04CAB1; Mon, 12 Mar 2018 16:22:17 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w2CGLwEf025063 for ; Mon, 12 Mar 2018 12:21:58 -0400 Received: by smtp.corp.redhat.com (Postfix) id B5BAF215CDAE; Mon, 12 Mar 2018 16:21:58 +0000 (UTC) Received: from antique-work.brq.redhat.com (unknown [10.43.2.152]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3FC2F215CDAC for ; Mon, 12 Mar 2018 16:21:58 +0000 (UTC) From: Pavel Hrdina To: libvir-list@redhat.com Date: Mon, 12 Mar 2018 17:21:45 +0100 Message-Id: In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: libvir-list@redhat.com Subject: [libvirt] [dbus PATCH 15/18] domain: create a helper function to get a domain object 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.38]); Mon, 12 Mar 2018 16:22:18 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This is called for every API, create a function for it. Signed-off-by: Pavel Hrdina Reviewed-by: Daniel P. Berrang=C3=A9 --- src/domain.c | 220 ++++++++++++++++++++-----------------------------------= ---- 1 file changed, 75 insertions(+), 145 deletions(-) diff --git a/src/domain.c b/src/domain.c index 3df9113..f68a3a0 100644 --- a/src/domain.c +++ b/src/domain.c @@ -6,6 +6,28 @@ #include #include =20 +static virDomainPtr +virtDBusDomainGetVirDomain(virtDBusConnect *connect, + const char *path, + sd_bus_error *error) +{ + virDomainPtr domain; + + if (virtDBusConnectOpen(connect, error) < 0) + return NULL; + + domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, path, + connect->domainPath); + if (domain =3D=3D NULL) { + sd_bus_error_setf(error, + SD_BUS_ERROR_UNKNOWN_OBJECT, + "Unknown object '%s'.", path); + return NULL; + } + + return domain; +} + static int virtDBusDomainGetName(sd_bus *bus VIRT_ATTR_UNUSED, const char *path, @@ -19,13 +41,9 @@ virtDBusDomainGetName(sd_bus *bus VIRT_ATTR_UNUSED, _cleanup_(virtDBusUtilVirDomainFreep) virDomainPtr domain =3D NULL; const char *name =3D ""; =20 - if (virtDBusConnectOpen(connect, error) < 0) - return -1; - - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, path, - connect->domainPath); + domain =3D virtDBusDomainGetVirDomain(connect, path, error); if (domain =3D=3D NULL) - return sd_bus_message_append(reply, "s", ""); + return -1; =20 name =3D virDomainGetName(domain); if (name =3D=3D NULL) @@ -47,13 +65,9 @@ virtDBusDomainGetUUID(sd_bus *bus VIRT_ATTR_UNUSED, _cleanup_(virtDBusUtilVirDomainFreep) virDomainPtr domain =3D NULL; char uuid[VIR_UUID_STRING_BUFLEN] =3D ""; =20 - if (virtDBusConnectOpen(connect, error) < 0) - return -1; - - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, path, - connect->domainPath); + domain =3D virtDBusDomainGetVirDomain(connect, path, error); if (domain =3D=3D NULL) - return sd_bus_message_append(reply, "s", ""); + return -1; =20 virDomainGetUUIDString(domain, uuid); =20 @@ -72,13 +86,9 @@ virtDBusDomainGetId(sd_bus *bus VIRT_ATTR_UNUSED, virtDBusConnect *connect =3D userdata; _cleanup_(virtDBusUtilVirDomainFreep) virDomainPtr domain =3D NULL; =20 - if (virtDBusConnectOpen(connect, error) < 0) - return -1; - - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, path, - connect->domainPath); + domain =3D virtDBusDomainGetVirDomain(connect, path, error); if (domain =3D=3D NULL) - return sd_bus_message_append(reply, "u", 0); + return -1; =20 return sd_bus_message_append(reply, "u", virDomainGetID(domain)); } @@ -95,13 +105,9 @@ virtDBusDomainGetVcpus(sd_bus *bus VIRT_ATTR_UNUSED, virtDBusConnect *connect =3D userdata; _cleanup_(virtDBusUtilVirDomainFreep) virDomainPtr domain =3D NULL; =20 - if (virtDBusConnectOpen(connect, error) < 0) - return -1; - - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, path, - connect->domainPath); + domain =3D virtDBusDomainGetVirDomain(connect, path, error); if (domain =3D=3D NULL) - return sd_bus_message_append(reply, "u", 0); + return -1; =20 return sd_bus_message_append(reply, "u", virDomainGetVcpusFlags(domain= , VIR_DOMAIN_VCPU_CURRENT)); } @@ -119,13 +125,9 @@ virtDBusDomainGetOsType(sd_bus *bus VIRT_ATTR_UNUSED, _cleanup_(virtDBusUtilVirDomainFreep) virDomainPtr domain =3D NULL; _cleanup_(virtDBusUtilFreep) char *os_type =3D NULL; =20 - if (virtDBusConnectOpen(connect, error) < 0) - return -1; - - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, path, - connect->domainPath); + domain =3D virtDBusDomainGetVirDomain(connect, path, error); if (domain =3D=3D NULL) - return sd_bus_message_append(reply, "s", ""); + return -1; =20 os_type =3D virDomainGetOSType(domain); if (os_type =3D=3D NULL) @@ -147,13 +149,9 @@ virtDBusDomainGetActive(sd_bus *bus VIRT_ATTR_UNUSED, _cleanup_(virtDBusUtilVirDomainFreep) virDomainPtr domain =3D NULL; int active; =20 - if (virtDBusConnectOpen(connect, error) < 0) - return -1; - - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, path, - connect->domainPath); + domain =3D virtDBusDomainGetVirDomain(connect, path, error); if (domain =3D=3D NULL) - return sd_bus_message_append(reply, "b", 0); + return -1; =20 active =3D virDomainIsActive(domain); if (active < 0) @@ -175,13 +173,9 @@ virtDBusDomainGetPersistent(sd_bus *bus VIRT_ATTR_UNUS= ED, _cleanup_(virtDBusUtilVirDomainFreep) virDomainPtr domain =3D NULL; int persistent; =20 - if (virtDBusConnectOpen(connect, error) < 0) - return -1; - - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, path, - connect->domainPath); + domain =3D virtDBusDomainGetVirDomain(connect, path, error); if (domain =3D=3D NULL) - return sd_bus_message_append(reply, "b", 0); + return -1; =20 persistent =3D virDomainIsPersistent(domain); if (persistent < 0) @@ -204,13 +198,9 @@ virtDBusDomainGetState(sd_bus *bus VIRT_ATTR_UNUSED, int state =3D 0; const char *string; =20 - if (virtDBusConnectOpen(connect, error) < 0) - return -1; - - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, path, - connect->domainPath); + domain =3D virtDBusDomainGetVirDomain(connect, path, error); if (domain =3D=3D NULL) - return sd_bus_message_append(reply, "s", ""); + return -1; =20 virDomainGetState(domain, &state, NULL, 0); =20 @@ -258,13 +248,9 @@ virtDBusDomainGetAutostart(sd_bus *bus VIRT_ATTR_UNUSE= D, _cleanup_(virtDBusUtilVirDomainFreep) virDomainPtr domain =3D NULL; int autostart =3D 0; =20 - if (virtDBusConnectOpen(connect, error) < 0) - return -1; - - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, path, - connect->domainPath); + domain =3D virtDBusDomainGetVirDomain(connect, path, error); if (domain =3D=3D NULL) - return sd_bus_message_append(reply, "b", 0); + return -1; =20 virDomainGetAutostart(domain, &autostart); =20 @@ -282,23 +268,16 @@ virtDBusDomainGetXMLDesc(sd_bus_message *message, uint32_t flags; int r; =20 - if (virtDBusConnectOpen(connect, error) < 0) - return -1; - - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, - sd_bus_message_get_path(mess= age), - connect->domainPath); - if (domain =3D=3D NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)= ); - } - r =3D sd_bus_message_read(message, "u", &flags); if (r < 0) return r; =20 + domain =3D virtDBusDomainGetVirDomain(connect, + sd_bus_message_get_path(message), + error); + if (domain =3D=3D NULL) + return -1; + description =3D virDomainGetXMLDesc(domain, flags); if (!description) return virtDBusUtilSetLastVirtError(error); @@ -330,19 +309,12 @@ virtDBusDomainGetStats(sd_bus_message *message, if (r < 0) return r; =20 - if (virtDBusConnectOpen(connect, error) < 0) + domain =3D virtDBusDomainGetVirDomain(connect, + sd_bus_message_get_path(message), + error); + if (domain =3D=3D NULL) return -1; =20 - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, - sd_bus_message_get_path(mess= age), - connect->domainPath); - if (domain =3D=3D NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)= ); - } - domains[0] =3D domain; domains[1] =3D NULL; =20 @@ -369,19 +341,12 @@ virtDBusDomainShutdown(sd_bus_message *message, _cleanup_(virtDBusUtilVirDomainFreep) virDomainPtr domain =3D NULL; int r; =20 - if (virtDBusConnectOpen(connect, error) < 0) + domain =3D virtDBusDomainGetVirDomain(connect, + sd_bus_message_get_path(message), + error); + if (domain =3D=3D NULL) return -1; =20 - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, - sd_bus_message_get_path(mess= age), - connect->domainPath); - if (domain =3D=3D NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)= ); - } - r =3D virDomainShutdown(domain); if (r < 0) return virtDBusUtilSetLastVirtError(error); @@ -398,19 +363,12 @@ virtDBusDomainDestroy(sd_bus_message *message, _cleanup_(virtDBusUtilVirDomainFreep) virDomainPtr domain =3D NULL; int r; =20 - if (virtDBusConnectOpen(connect, error) < 0) + domain =3D virtDBusDomainGetVirDomain(connect, + sd_bus_message_get_path(message), + error); + if (domain =3D=3D NULL) return -1; =20 - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, - sd_bus_message_get_path(mess= age), - connect->domainPath); - if (domain =3D=3D NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)= ); - } - r =3D virDomainDestroy(domain); if (r < 0) return virtDBusUtilSetLastVirtError(error); @@ -432,19 +390,12 @@ virtDBusDomainReboot(sd_bus_message *message, if (r < 0) return r; =20 - if (virtDBusConnectOpen(connect, error) < 0) + domain =3D virtDBusDomainGetVirDomain(connect, + sd_bus_message_get_path(message), + error); + if (domain =3D=3D NULL) return -1; =20 - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, - sd_bus_message_get_path(mess= age), - connect->domainPath); - if (domain =3D=3D NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)= ); - } - r =3D virDomainReboot(domain, flags); if (r < 0) return virtDBusUtilSetLastVirtError(error); @@ -466,19 +417,12 @@ virtDBusDomainReset(sd_bus_message *message, if (r < 0) return r; =20 - if (virtDBusConnectOpen(connect, error) < 0) + domain =3D virtDBusDomainGetVirDomain(connect, + sd_bus_message_get_path(message), + error); + if (domain =3D=3D NULL) return -1; =20 - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, - sd_bus_message_get_path(mess= age), - connect->domainPath); - if (domain =3D=3D NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)= ); - } - r =3D virDomainReset(domain, flags); if (r < 0) return virtDBusUtilSetLastVirtError(error); @@ -495,19 +439,12 @@ virtDBusDomainCreate(sd_bus_message *message, _cleanup_(virtDBusUtilVirDomainFreep) virDomainPtr domain =3D NULL; int r; =20 - if (virtDBusConnectOpen(connect, error) < 0) + domain =3D virtDBusDomainGetVirDomain(connect, + sd_bus_message_get_path(message), + error); + if (domain =3D=3D NULL) return -1; =20 - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, - sd_bus_message_get_path(mess= age), - connect->domainPath); - if (domain =3D=3D NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)= ); - } - r =3D virDomainCreate(domain); if (r < 0) return virtDBusUtilSetLastVirtError(error); @@ -524,19 +461,12 @@ virtDBusDomainUndefine(sd_bus_message *message, _cleanup_(virtDBusUtilVirDomainFreep) virDomainPtr domain =3D NULL; int r; =20 - if (virtDBusConnectOpen(connect, error) < 0) + domain =3D virtDBusDomainGetVirDomain(connect, + sd_bus_message_get_path(message), + error); + if (domain =3D=3D NULL) return -1; =20 - domain =3D virtDBusUtilVirDomainFromBusPath(connect->connection, - sd_bus_message_get_path(mess= age), - connect->domainPath); - if (domain =3D=3D NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)= ); - } - r =3D virDomainUndefine(domain); if (r < 0) return virtDBusUtilSetLastVirtError(error); @@ -594,7 +524,7 @@ virtDBusDomainLookup(sd_bus *bus VIRT_ATTR_UNUSED, if (*name =3D=3D '\0') return 0; =20 - domain =3D virDomainLookupByUUIDString(connect->connection, name); + domain =3D virtDBusDomainGetVirDomain(connect, path, error); if (!domain) return 0; =20 --=20 2.14.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list