From nobody Mon May 6 06:58:29 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.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 1527700032454561.2537463252537; Wed, 30 May 2018 10:07:12 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C837F300207A; Wed, 30 May 2018 17:07:10 +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 813279FA4D; Wed, 30 May 2018 17:07:10 +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 9BFF74CA85; Wed, 30 May 2018 17:07:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6pTb007282 for ; Wed, 30 May 2018 13:06:51 -0400 Received: by smtp.corp.redhat.com (Postfix) id 09CF42026DEF; Wed, 30 May 2018 17:06:51 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id A39762026DFD for ; Wed, 30 May 2018 17:06:50 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:25 +0200 Message-Id: <63ee96c0ff03c1376846254db75fc1243c144dd9.1527699462.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 01/13] qemu: command: Fix name of qemuBuildMemoryBackendStr 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.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Wed, 30 May 2018 17:07:11 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" The function generates JSON properties rather than a string so rename it. Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/qemu/qemu_command.c | 26 +++++++++++++------------- src/qemu/qemu_command.h | 16 ++++++++-------- src/qemu/qemu_hotplug.c | 4 ++-- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 07fa35c6b3..39dcd1cfba 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -2941,7 +2941,7 @@ qemuBuildControllerDevCommandLine(virCommandPtr cmd, /** - * qemuBuildMemoryBackendStr: + * qemuBuildMemoryBackendProps: * @backendProps: [out] constructed object * @backendType: [out] type of the backennd used * @cfg: qemu driver config object @@ -2967,14 +2967,14 @@ qemuBuildControllerDevCommandLine(virCommandPtr cmd, * -1 on error. */ int -qemuBuildMemoryBackendStr(virJSONValuePtr *backendProps, - const char **backendType, - virQEMUDriverConfigPtr cfg, - virQEMUCapsPtr qemuCaps, - virDomainDefPtr def, - virDomainMemoryDefPtr mem, - virBitmapPtr autoNodeset, - bool force) +qemuBuildMemoryBackendProps(virJSONValuePtr *backendProps, + const char **backendType, + virQEMUDriverConfigPtr cfg, + virQEMUCapsPtr qemuCaps, + virDomainDefPtr def, + virDomainMemoryDefPtr mem, + virBitmapPtr autoNodeset, + bool force) { virDomainNumatuneMemMode mode; const long system_page_size =3D virGetSystemPageSizeKB(); @@ -3225,8 +3225,8 @@ qemuBuildMemoryCellBackendStr(virDomainDefPtr def, mem.targetNode =3D cell; mem.info.alias =3D alias; - if ((rc =3D qemuBuildMemoryBackendStr(&props, &backendType, cfg, priv-= >qemuCaps, - def, &mem, priv->autoNodeset, fals= e)) < 0) + if ((rc =3D qemuBuildMemoryBackendProps(&props, &backendType, cfg, pri= v->qemuCaps, + def, &mem, priv->autoNodeset, fa= lse)) < 0) goto cleanup; if (!(*backendStr =3D virQEMUBuildObjectCommandlineFromJSON(backendTyp= e, @@ -3264,8 +3264,8 @@ qemuBuildMemoryDimmBackendStr(virDomainMemoryDefPtr m= em, if (virAsprintf(&alias, "mem%s", mem->info.alias) < 0) goto cleanup; - if (qemuBuildMemoryBackendStr(&props, &backendType, cfg, priv->qemuCap= s, - def, mem, priv->autoNodeset, true) < 0) + if (qemuBuildMemoryBackendProps(&props, &backendType, cfg, priv->qemuC= aps, + def, mem, priv->autoNodeset, true) < 0) goto cleanup; ret =3D virQEMUBuildObjectCommandlineFromJSON(backendType, alias, prop= s); diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h index bbbf152660..2b2168d1ee 100644 --- a/src/qemu/qemu_command.h +++ b/src/qemu/qemu_command.h @@ -119,14 +119,14 @@ int qemuBuildControllerDevStr(const virDomainDef *dom= ainDef, char **devstr, int *nusbcontroller); -int qemuBuildMemoryBackendStr(virJSONValuePtr *backendProps, - const char **backendType, - virQEMUDriverConfigPtr cfg, - virQEMUCapsPtr qemuCaps, - virDomainDefPtr def, - virDomainMemoryDefPtr mem, - virBitmapPtr autoNodeset, - bool force); +int qemuBuildMemoryBackendProps(virJSONValuePtr *backendProps, + const char **backendType, + virQEMUDriverConfigPtr cfg, + virQEMUCapsPtr qemuCaps, + virDomainDefPtr def, + virDomainMemoryDefPtr mem, + virBitmapPtr autoNodeset, + bool force); char *qemuBuildMemoryDeviceStr(virDomainMemoryDefPtr mem); diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 4f58cfbd9a..7ce427be0d 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -2142,8 +2142,8 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, if (!(devstr =3D qemuBuildMemoryDeviceStr(mem))) goto cleanup; - if (qemuBuildMemoryBackendStr(&props, &backendType, cfg, - priv->qemuCaps, vm->def, mem, NULL, true= ) < 0) + if (qemuBuildMemoryBackendProps(&props, &backendType, cfg, + priv->qemuCaps, vm->def, mem, NULL, tr= ue) < 0) goto cleanup; if (qemuProcessBuildDestroyMemoryPaths(driver, vm, mem, true) < 0) --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon May 6 06:58:29 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.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 1527700040230631.822298590101; Wed, 30 May 2018 10:07:20 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 67968C0E07E9; Wed, 30 May 2018 17:07: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 233F217004; Wed, 30 May 2018 17:07: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 7F1924CA89; Wed, 30 May 2018 17:07:17 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6pDx007288 for ; Wed, 30 May 2018 13:06:51 -0400 Received: by smtp.corp.redhat.com (Postfix) id A042C2026DEF; Wed, 30 May 2018 17:06:51 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4542A2026DFD for ; Wed, 30 May 2018 17:06:51 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:26 +0200 Message-Id: <936708b455b5e3595fe2da74f8dd41d98456a733.1527699462.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 02/13] qemu: monitor: Rename qemuMonitorAddObject to qemuMonitorAddObjectType 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.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Wed, 30 May 2018 17:07:19 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" The function adds the object of a certain type. Change the name so that we make room for the generic function. Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/qemu/qemu_driver.c | 2 +- src/qemu/qemu_hotplug.c | 50 ++++++++++++++++++++++++---------------------= ---- src/qemu/qemu_monitor.c | 10 +++++----- src/qemu/qemu_monitor.h | 8 ++++---- 4 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 3aa694de12..922603a7a3 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -5819,7 +5819,7 @@ qemuDomainHotplugAddIOThread(virQEMUDriverPtr driver, qemuDomainObjEnterMonitor(driver, vm); - rc =3D qemuMonitorAddObject(priv->mon, "iothread", alias, NULL); + rc =3D qemuMonitorAddObjectType(priv->mon, "iothread", alias, NULL); exp_niothreads++; if (rc < 0) goto exit_monitor; diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 7ce427be0d..10735622d1 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -487,28 +487,28 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, qemuDomainObjEnterMonitor(driver, vm); if (secobjProps) { - rv =3D qemuMonitorAddObject(priv->mon, "secret", secinfo->s.aes.al= ias, - secobjProps); - secobjProps =3D NULL; /* qemuMonitorAddObject consumes */ + rv =3D qemuMonitorAddObjectType(priv->mon, "secret", secinfo->s.ae= s.alias, + secobjProps); + secobjProps =3D NULL; /* qemuMonitorAddObjectType consumes */ if (rv < 0) goto exit_monitor; secobjAdded =3D true; } if (encobjProps) { - rv =3D qemuMonitorAddObject(priv->mon, "secret", encinfo->s.aes.al= ias, - encobjProps); - encobjProps =3D NULL; /* qemuMonitorAddObject consumes */ + rv =3D qemuMonitorAddObjectType(priv->mon, "secret", encinfo->s.ae= s.alias, + encobjProps); + encobjProps =3D NULL; /* qemuMonitorAddObjectType consumes */ if (rv < 0) goto exit_monitor; encobjAdded =3D true; } if (prmgrProps) { - rv =3D qemuMonitorAddObject(priv->mon, "pr-manager-helper", - disk->src->pr->mgralias, - prmgrProps); - prmgrProps =3D NULL; /* qemuMonitorAddObject consumes */ + rv =3D qemuMonitorAddObjectType(priv->mon, "pr-manager-helper", + disk->src->pr->mgralias, + prmgrProps); + prmgrProps =3D NULL; /* qemuMonitorAddObjectType consumes */ if (rv < 0) goto exit_monitor; prmgrAdded =3D true; @@ -1465,17 +1465,17 @@ qemuDomainAddTLSObjects(virQEMUDriverPtr driver, return -1; if (secAlias) { - rc =3D qemuMonitorAddObject(priv->mon, "secret", - secAlias, *secProps); - *secProps =3D NULL; /* qemuMonitorAddObject consumes */ + rc =3D qemuMonitorAddObjectType(priv->mon, "secret", + secAlias, *secProps); + *secProps =3D NULL; /* qemuMonitorAddObjectType consumes */ if (rc < 0) goto error; } if (tlsAlias) { - rc =3D qemuMonitorAddObject(priv->mon, "tls-creds-x509", - tlsAlias, *tlsProps); - *tlsProps =3D NULL; /* qemuMonitorAddObject consumes */ + rc =3D qemuMonitorAddObjectType(priv->mon, "tls-creds-x509", + tlsAlias, *tlsProps); + *tlsProps =3D NULL; /* qemuMonitorAddObjectType consumes */ if (rc < 0) goto error; } @@ -2037,8 +2037,8 @@ qemuDomainAttachRNGDevice(virQEMUDriverPtr driver, goto exit_monitor; chardevAdded =3D true; - rv =3D qemuMonitorAddObject(priv->mon, type, objAlias, props); - props =3D NULL; /* qemuMonitorAddObject consumes */ + rv =3D qemuMonitorAddObjectType(priv->mon, type, objAlias, props); + props =3D NULL; /* qemuMonitorAddObjectType consumes */ if (rv < 0) goto exit_monitor; objAdded =3D true; @@ -2168,8 +2168,8 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, goto removedef; qemuDomainObjEnterMonitor(driver, vm); - rv =3D qemuMonitorAddObject(priv->mon, backendType, objalias, props); - props =3D NULL; /* qemuMonitorAddObject consumes */ + rv =3D qemuMonitorAddObjectType(priv->mon, backendType, objalias, prop= s); + props =3D NULL; /* qemuMonitorAddObjectType consumes */ if (rv < 0) goto exit_monitor; objAdded =3D true; @@ -2407,9 +2407,9 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr drive= r, qemuDomainObjEnterMonitor(driver, vm); if (secobjProps) { - rv =3D qemuMonitorAddObject(priv->mon, "secret", secinfo->s.aes.al= ias, - secobjProps); - secobjProps =3D NULL; /* qemuMonitorAddObject consumes */ + rv =3D qemuMonitorAddObjectType(priv->mon, "secret", secinfo->s.ae= s.alias, + secobjProps); + secobjProps =3D NULL; /* qemuMonitorAddObjectType consumes */ if (rv < 0) goto exit_monitor; secobjAdded =3D true; @@ -2780,8 +2780,8 @@ qemuDomainAttachShmemDevice(virQEMUDriverPtr driver, &shmem->server.chr) < 0) goto exit_monitor; } else { - if (qemuMonitorAddObject(priv->mon, "memory-backend-file", - memAlias, props) < 0) { + if (qemuMonitorAddObjectType(priv->mon, "memory-backend-file", + memAlias, props) < 0) { props =3D NULL; goto exit_monitor; } diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 43f1d2f816..77ad47cb74 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -2992,7 +2992,7 @@ qemuMonitorAddDeviceArgs(qemuMonitorPtr mon, /** - * qemuMonitorAddObject: + * qemuMonitorAddObjectType: * @mon: Pointer to monitor object * @type: Type name of object to add * @objalias: Alias of the new object @@ -3002,10 +3002,10 @@ qemuMonitorAddDeviceArgs(qemuMonitorPtr mon, * Returns 0 on success -1 on error. */ int -qemuMonitorAddObject(qemuMonitorPtr mon, - const char *type, - const char *objalias, - virJSONValuePtr props) +qemuMonitorAddObjectType(qemuMonitorPtr mon, + const char *type, + const char *objalias, + virJSONValuePtr props) { VIR_DEBUG("type=3D%s objalias=3D%s props=3D%p", type, objalias, props); diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index c28db1a52b..77a26d4a8a 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -797,10 +797,10 @@ int qemuMonitorAddDeviceWithFd(qemuMonitorPtr mon, int qemuMonitorDelDevice(qemuMonitorPtr mon, const char *devalias); -int qemuMonitorAddObject(qemuMonitorPtr mon, - const char *type, - const char *objalias, - virJSONValuePtr props); +int qemuMonitorAddObjectType(qemuMonitorPtr mon, + const char *type, + const char *objalias, + virJSONValuePtr props); int qemuMonitorDelObject(qemuMonitorPtr mon, const char *objalias); --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon May 6 06:58:29 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.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 1527700020276286.64305323025565; Wed, 30 May 2018 10:07:00 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5F581A4E59; Wed, 30 May 2018 17:06:58 +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 118D39FA48; Wed, 30 May 2018 17:06:58 +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 6F97F1800C9D; Wed, 30 May 2018 17:06:57 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6q3f007294 for ; Wed, 30 May 2018 13:06:52 -0400 Received: by smtp.corp.redhat.com (Postfix) id 41CE82026DEF; Wed, 30 May 2018 17:06:52 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id DB3CA2026DFD for ; Wed, 30 May 2018 17:06:51 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:27 +0200 Message-Id: <8225a68887ef824b26546b4e3b7029d4e67a11d4.1527699462.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 03/13] qemu: Rename virQEMUBuildObjectCommandlineFromJSON 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.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Wed, 30 May 2018 17:06:59 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" s/virQEMUBuildObjectCommandlineFromJSON/virQEMUBuildObjectCommandlineFromJS= ONType/ The function adds the object of a certain type. Change the name so that we make room for the generic function. Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/libvirt_private.syms | 2 +- src/qemu/qemu_command.c | 32 ++++++++++++++++---------------- src/util/virqemu.c | 6 +++--- src/util/virqemu.h | 6 +++--- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 6001635916..e2a9916326 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2599,7 +2599,7 @@ virQEMUBuildCommandLineJSON; virQEMUBuildCommandLineJSONArrayBitmap; virQEMUBuildCommandLineJSONArrayNumbered; virQEMUBuildDriveCommandlineFromJSON; -virQEMUBuildObjectCommandlineFromJSON; +virQEMUBuildObjectCommandlineFromJSONType; virQEMUBuildQemuImgKeySecretOpts; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 39dcd1cfba..5b0e21a425 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -550,9 +550,9 @@ qemuBuildObjectSecretCommandLine(virCommandPtr cmd, if (qemuBuildSecretInfoProps(secinfo, &props) < 0) return -1; - if (!(tmp =3D virQEMUBuildObjectCommandlineFromJSON("secret", - secinfo->s.aes.alias, - props))) + if (!(tmp =3D virQEMUBuildObjectCommandlineFromJSONType("secret", + secinfo->s.aes.a= lias, + props))) goto cleanup; virCommandAddArgList(cmd, "-object", tmp, NULL); @@ -750,8 +750,8 @@ qemuBuildTLSx509CommandLine(virCommandPtr cmd, qemuCaps, &props) < 0) goto cleanup; - if (!(tmp =3D virQEMUBuildObjectCommandlineFromJSON("tls-creds-x509", - alias, props))) + if (!(tmp =3D virQEMUBuildObjectCommandlineFromJSONType("tls-creds-x50= 9", + alias, props))) goto cleanup; virCommandAddArgList(cmd, "-object", tmp, NULL); @@ -3229,9 +3229,9 @@ qemuBuildMemoryCellBackendStr(virDomainDefPtr def, def, &mem, priv->autoNodeset, fa= lse)) < 0) goto cleanup; - if (!(*backendStr =3D virQEMUBuildObjectCommandlineFromJSON(backendTyp= e, - alias, - props))) + if (!(*backendStr =3D virQEMUBuildObjectCommandlineFromJSONType(backen= dType, + alias, + props))) goto cleanup; ret =3D rc; @@ -3268,7 +3268,7 @@ qemuBuildMemoryDimmBackendStr(virDomainMemoryDefPtr m= em, def, mem, priv->autoNodeset, true) < 0) goto cleanup; - ret =3D virQEMUBuildObjectCommandlineFromJSON(backendType, alias, prop= s); + ret =3D virQEMUBuildObjectCommandlineFromJSONType(backendType, alias, = props); cleanup: VIR_FREE(alias); @@ -5565,7 +5565,7 @@ qemuBuildRNGBackendStr(virDomainRNGDefPtr rng, if (qemuBuildRNGBackendProps(rng, qemuCaps, &type, &props) < 0) goto cleanup; - ret =3D virQEMUBuildObjectCommandlineFromJSON(type, alias, props); + ret =3D virQEMUBuildObjectCommandlineFromJSONType(type, alias, props); cleanup: VIR_FREE(alias); @@ -8831,9 +8831,9 @@ qemuBuildShmemBackendMemStr(virDomainShmemDefPtr shme= m) if (virAsprintf(&alias, "shmmem-%s", shmem->info.alias) < 0) goto cleanup; - ret =3D virQEMUBuildObjectCommandlineFromJSON("memory-backend-file", - alias, - props); + ret =3D virQEMUBuildObjectCommandlineFromJSONType("memory-backend-file= ", + alias, + props); cleanup: VIR_FREE(alias); virJSONValueFree(props); @@ -9771,9 +9771,9 @@ qemuBuildMasterPRCommandLine(virCommandPtr cmd, if (qemuBuildPRManagerInfoProps(disk, &props) < 0) goto cleanup; - if (!(tmp =3D virQEMUBuildObjectCommandlineFromJSON("pr-manager-he= lper", - disk->src->pr->m= gralias, - props))) + if (!(tmp =3D virQEMUBuildObjectCommandlineFromJSONType("pr-manage= r-helper", + disk->src->p= r->mgralias, + props))) goto cleanup; virJSONValueFree(props); props =3D NULL; diff --git a/src/util/virqemu.c b/src/util/virqemu.c index 04cd71605e..fc4727e126 100644 --- a/src/util/virqemu.c +++ b/src/util/virqemu.c @@ -242,9 +242,9 @@ virQEMUBuildCommandLineJSON(virJSONValuePtr value, char * -virQEMUBuildObjectCommandlineFromJSON(const char *type, - const char *alias, - virJSONValuePtr props) +virQEMUBuildObjectCommandlineFromJSONType(const char *type, + const char *alias, + virJSONValuePtr props) { virBuffer buf =3D VIR_BUFFER_INITIALIZER; char *ret =3D NULL; diff --git a/src/util/virqemu.h b/src/util/virqemu.h index 2599481753..0ef8e8d31d 100644 --- a/src/util/virqemu.h +++ b/src/util/virqemu.h @@ -43,9 +43,9 @@ int virQEMUBuildCommandLineJSON(virJSONValuePtr value, virBufferPtr buf, virQEMUBuildCommandLineJSONArrayFormatFunc= array); -char *virQEMUBuildObjectCommandlineFromJSON(const char *type, - const char *alias, - virJSONValuePtr props); +char *virQEMUBuildObjectCommandlineFromJSONType(const char *type, + const char *alias, + virJSONValuePtr props); char *virQEMUBuildDriveCommandlineFromJSON(virJSONValuePtr src); --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon May 6 06:58:29 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.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 1527700046512384.60603605601455; Wed, 30 May 2018 10:07:26 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0028230B9BDE; Wed, 30 May 2018 17:07:25 +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 C4AEA17011; Wed, 30 May 2018 17:07:24 +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 56E3A180BA82; Wed, 30 May 2018 17:07:24 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6qSF007297 for ; Wed, 30 May 2018 13:06:53 -0400 Received: by smtp.corp.redhat.com (Postfix) id D86152026988; Wed, 30 May 2018 17:06:52 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7CF5A2026DFD for ; Wed, 30 May 2018 17:06:52 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:28 +0200 Message-Id: In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 04/13] qemu: monitor: Add better APIs for adding of objects to qemu 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.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Wed, 30 May 2018 17:07:25 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Use the new monitor command internal API to allow wrapping of the object name and alias into the JSON props so that they don't have to be passed out of band. The new API also takes a double pointer so that it can be cleared when the value is consumed so that it does not need to happen in every single caller. Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/qemu/qemu_monitor.c | 116 +++++++++++++++++++++++++++++++++++++++= ++-- src/qemu/qemu_monitor.h | 13 +++++ src/qemu/qemu_monitor_json.c | 15 ++---- src/qemu/qemu_monitor_json.h | 2 - 4 files changed, 129 insertions(+), 17 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 77ad47cb74..fe8fdfaf9a 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -2991,6 +2991,109 @@ qemuMonitorAddDeviceArgs(qemuMonitorPtr mon, } +virJSONValuePtr +qemuMonitorCreateObjectPropsWrap(const char *type, + const char *alias, + virJSONValuePtr *props) +{ + virJSONValuePtr ret; + + ignore_value(virJSONValueObjectCreate(&ret, + "s:qom-type", type, + "s:id", alias, + "A:props", props, + NULL)); + return ret; +} + + + +/** + * qemuMonitorCreateObjectProps: + * @propsret: returns full object properties + * @type: Type name of object to add + * @objalias: Alias of the new object + * @...: Optional arguments for the given object. See virJSONValueObjectAd= dVArgs. + * + * Returns a JSONValue containing everything on success and NULL on error. + */ +int +qemuMonitorCreateObjectProps(virJSONValuePtr *propsret, + const char *type, + const char *alias, + ...) +{ + virJSONValuePtr props =3D NULL; + int ret =3D -1; + va_list args; + + *propsret =3D NULL; + + va_start(args, alias); + + if (!(virJSONValueObjectCreateVArgs(&props, args))) + goto cleanup; + + if (!(*propsret =3D qemuMonitorCreateObjectPropsWrap(type, alias, &pro= ps))) + goto cleanup; + + ret =3D 0; + + cleanup: + virJSONValueFree(props); + va_end(args); + return ret; +} + + +/** + * qemuMonitorAddObject: + * @mon: Pointer to monitor object + * @props: Optional arguments for the given type. The object is consumed a= nd + * the pointer is cleared. + * @alias: If not NULL, returns the alias of the added object if it was ad= ded + * successfully to qemu. Caller should free the returned pointer. + * + * Returns 0 on success -1 on error. + */ +int +qemuMonitorAddObject(qemuMonitorPtr mon, + virJSONValuePtr *props, + char **alias) +{ + const char *type =3D virJSONValueObjectGetString(*props, "qom-type"); + const char *id =3D virJSONValueObjectGetString(*props, "id"); + char *tmp =3D NULL; + int ret =3D -1; + + VIR_DEBUG("type=3D%s id=3D%s", NULLSTR(type), NULLSTR(id)); + + QEMU_CHECK_MONITOR_GOTO(mon, cleanup); + + if (!id) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("missing alias for qemu object '%s'"), NULLSTR(ty= pe)); + goto cleanup; + } + + if (alias && VIR_STRDUP(tmp, id) < 0) + goto cleanup; + + ret =3D qemuMonitorJSONAddObject(mon, *props); + *props =3D NULL; + + if (alias) + VIR_STEAL_PTR(*alias, tmp); + + cleanup: + VIR_FREE(tmp); + virJSONValueFree(*props); + *props =3D NULL; + return ret; +} + + + /** * qemuMonitorAddObjectType: * @mon: Pointer to monitor object @@ -3007,15 +3110,20 @@ qemuMonitorAddObjectType(qemuMonitorPtr mon, const char *objalias, virJSONValuePtr props) { + virJSONValuePtr tmpprops =3D NULL; + int ret =3D -1; + VIR_DEBUG("type=3D%s objalias=3D%s props=3D%p", type, objalias, props); - QEMU_CHECK_MONITOR_GOTO(mon, error); + if (!(tmpprops =3D qemuMonitorCreateObjectPropsWrap(type, objalias, &p= rops))) + goto cleanup; - return qemuMonitorJSONAddObject(mon, type, objalias, props); + ret =3D qemuMonitorAddObject(mon, &tmpprops, NULL); - error: + cleanup: virJSONValueFree(props); - return -1; + virJSONValueFree(tmpprops); + return ret; } diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 77a26d4a8a..0c13391520 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -797,6 +797,19 @@ int qemuMonitorAddDeviceWithFd(qemuMonitorPtr mon, int qemuMonitorDelDevice(qemuMonitorPtr mon, const char *devalias); +virJSONValuePtr qemuMonitorCreateObjectPropsWrap(const char *type, + const char *alias, + virJSONValuePtr *props); + +int qemuMonitorCreateObjectProps(virJSONValuePtr *propsret, + const char *type, + const char *alias, + ...); + +int qemuMonitorAddObject(qemuMonitorPtr mon, + virJSONValuePtr *props, + char **alias); + int qemuMonitorAddObjectType(qemuMonitorPtr mon, const char *type, const char *objalias, diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 9f5c358795..7522eaeef0 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -4003,21 +4003,15 @@ qemuMonitorJSONAddDevice(qemuMonitorPtr mon, } -int qemuMonitorJSONAddObject(qemuMonitorPtr mon, - const char *type, - const char *objalias, - virJSONValuePtr props) +int +qemuMonitorJSONAddObject(qemuMonitorPtr mon, + virJSONValuePtr props) { int ret =3D -1; virJSONValuePtr cmd; virJSONValuePtr reply =3D NULL; - cmd =3D qemuMonitorJSONMakeCommand("object-add", - "s:qom-type", type, - "s:id", objalias, - "A:props", &props, - NULL); - if (!cmd) + if (!(cmd =3D qemuMonitorJSONMakeCommandInternal("object-add", props, = false))) goto cleanup; if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0) @@ -4030,7 +4024,6 @@ int qemuMonitorJSONAddObject(qemuMonitorPtr mon, cleanup: virJSONValueFree(cmd); virJSONValueFree(reply); - virJSONValueFree(props); return ret; } diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index f4ac8319ac..5fc51b1d6b 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -230,8 +230,6 @@ int qemuMonitorJSONDelDevice(qemuMonitorPtr mon, const char *devalias); int qemuMonitorJSONAddObject(qemuMonitorPtr mon, - const char *type, - const char *objalias, virJSONValuePtr props); int qemuMonitorJSONDelObject(qemuMonitorPtr mon, --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon May 6 06:58:29 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.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 15277000208464.2584176127003275; Wed, 30 May 2018 10:07:00 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8CCF7A4D4B; Wed, 30 May 2018 17:06:58 +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 2F21A9FA43; Wed, 30 May 2018 17:06:58 +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 B026F4BB78; Wed, 30 May 2018 17:06:57 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6rFm007299 for ; Wed, 30 May 2018 13:06:53 -0400 Received: by smtp.corp.redhat.com (Postfix) id 7A439202660C; Wed, 30 May 2018 17:06:53 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1F7582026609 for ; Wed, 30 May 2018 17:06:52 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:29 +0200 Message-Id: <96d43762d5c02c419638a2086bea389622faeecf.1527699462.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 05/13] util: qemu: Introduce helper for formatting command line from new object props 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.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Wed, 30 May 2018 17:06:59 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/libvirt_private.syms | 1 + src/util/virqemu.c | 40 ++++++++++++++++++++++++++++++++++++---- src/util/virqemu.h | 3 +++ 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index e2a9916326..37922f8c84 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2599,6 +2599,7 @@ virQEMUBuildCommandLineJSON; virQEMUBuildCommandLineJSONArrayBitmap; virQEMUBuildCommandLineJSONArrayNumbered; virQEMUBuildDriveCommandlineFromJSON; +virQEMUBuildObjectCommandlineFromJSON; virQEMUBuildObjectCommandlineFromJSONType; virQEMUBuildQemuImgKeySecretOpts; diff --git a/src/util/virqemu.c b/src/util/virqemu.c index fc4727e126..1390b68b86 100644 --- a/src/util/virqemu.c +++ b/src/util/virqemu.c @@ -241,6 +241,29 @@ virQEMUBuildCommandLineJSON(virJSONValuePtr value, } +static int +virQEMUBuildObjectCommandlineFromJSONInternal(virBufferPtr buf, + const char *type, + const char *alias, + virJSONValuePtr props) +{ + if (!type || !alias) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("missing 'type' or 'alias' field of QOM 'object'"= )); + return -1; + } + + virBufferAsprintf(buf, "%s,id=3D%s,", type, alias); + + if (props && + virQEMUBuildCommandLineJSON(props, buf, + virQEMUBuildCommandLineJSONArrayBitmap= ) < 0) + return -1; + + return 0; +} + + char * virQEMUBuildObjectCommandlineFromJSONType(const char *type, const char *alias, @@ -249,10 +272,7 @@ virQEMUBuildObjectCommandlineFromJSONType(const char *= type, virBuffer buf =3D VIR_BUFFER_INITIALIZER; char *ret =3D NULL; - virBufferAsprintf(&buf, "%s,id=3D%s,", type, alias); - - if (virQEMUBuildCommandLineJSON(props, &buf, - virQEMUBuildCommandLineJSONArrayBitmap= ) < 0) + if (virQEMUBuildObjectCommandlineFromJSONInternal(&buf, type, alias, p= rops) < 0) goto cleanup; if (virBufferCheckError(&buf) < 0) @@ -266,6 +286,18 @@ virQEMUBuildObjectCommandlineFromJSONType(const char *= type, } +int +virQEMUBuildObjectCommandlineFromJSON(virBufferPtr buf, + virJSONValuePtr objprops) +{ + const char *type =3D virJSONValueObjectGetString(objprops, "qom-type"); + const char *alias =3D virJSONValueObjectGetString(objprops, "id"); + virJSONValuePtr props =3D virJSONValueObjectGetObject(objprops, "props= "); + + return virQEMUBuildObjectCommandlineFromJSONInternal(buf, type, alias,= props); +} + + char * virQEMUBuildDriveCommandlineFromJSON(virJSONValuePtr srcdef) { diff --git a/src/util/virqemu.h b/src/util/virqemu.h index 0ef8e8d31d..0a4f4468f2 100644 --- a/src/util/virqemu.h +++ b/src/util/virqemu.h @@ -47,6 +47,9 @@ char *virQEMUBuildObjectCommandlineFromJSONType(const cha= r *type, const char *alias, virJSONValuePtr props); +int virQEMUBuildObjectCommandlineFromJSON(virBufferPtr buf, + virJSONValuePtr objprops); + char *virQEMUBuildDriveCommandlineFromJSON(virJSONValuePtr src); void virQEMUBuildBufferEscapeComma(virBufferPtr buf, const char *str); --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon May 6 06:58:29 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.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 1527700032785563.8557731851537; Wed, 30 May 2018 10:07:12 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E9E0130C7459; Wed, 30 May 2018 17:07:10 +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 96FB8100164A; Wed, 30 May 2018 17:07:10 +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 834081800FD5; Wed, 30 May 2018 17:07:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6sXI007316 for ; Wed, 30 May 2018 13:06:54 -0400 Received: by smtp.corp.redhat.com (Postfix) id 1B8832026DEF; Wed, 30 May 2018 17:06:54 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id B54942026609 for ; Wed, 30 May 2018 17:06:53 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:30 +0200 Message-Id: In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 06/13] qemu: hotplug: Refactor PR props formatting to use qemuMonitorCreateObjectProps 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.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Wed, 30 May 2018 17:07:11 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/qemu/qemu_command.c | 30 ++++++++++-------------------- src/qemu/qemu_hotplug.c | 19 +++++++------------ 2 files changed, 17 insertions(+), 32 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 5b0e21a425..00fb1a3b32 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9730,18 +9730,11 @@ int qemuBuildPRManagerInfoProps(const virDomainDiskDef *disk, virJSONValuePtr *propsret) { - int ret =3D -1; - - *propsret =3D NULL; - - if (virJSONValueObjectCreate(propsret, - "s:path", disk->src->pr->path, - NULL) < 0) - goto cleanup; - - ret =3D 0; - cleanup: - return ret; + return qemuMonitorCreateObjectProps(propsret, + "pr-manager-helper", + disk->src->pr->mgralias, + "s:path", disk->src->pr->path, + NULL); } @@ -9749,10 +9742,10 @@ static int qemuBuildMasterPRCommandLine(virCommandPtr cmd, const virDomainDef *def) { + virBuffer buf =3D VIR_BUFFER_INITIALIZER; size_t i; bool managedAdded =3D false; virJSONValuePtr props =3D NULL; - char *tmp =3D NULL; int ret =3D -1; for (i =3D 0; i < def->ndisks; i++) { @@ -9771,19 +9764,16 @@ qemuBuildMasterPRCommandLine(virCommandPtr cmd, if (qemuBuildPRManagerInfoProps(disk, &props) < 0) goto cleanup; - if (!(tmp =3D virQEMUBuildObjectCommandlineFromJSONType("pr-manage= r-helper", - disk->src->p= r->mgralias, - props))) + if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0) goto cleanup; - virJSONValueFree(props); - props =3D NULL; - virCommandAddArgList(cmd, "-object", tmp, NULL); - VIR_FREE(tmp); + virCommandAddArg(cmd, "-object"); + virCommandAddArgBuffer(cmd, &buf); } ret =3D 0; cleanup: + virBufferFreeAndReset(&buf); virJSONValueFree(props); return ret; } diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 10735622d1..5892c18e5e 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -421,10 +421,10 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, char *devstr =3D NULL; char *drivestr =3D NULL; char *drivealias =3D NULL; + char *prmgrAlias =3D NULL; bool driveAdded =3D false; bool secobjAdded =3D false; bool encobjAdded =3D false; - bool prmgrAdded =3D false; bool prdStarted =3D false; virQEMUDriverConfigPtr cfg =3D virQEMUDriverGetConfig(driver); virJSONValuePtr secobjProps =3D NULL; @@ -504,15 +504,9 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, encobjAdded =3D true; } - if (prmgrProps) { - rv =3D qemuMonitorAddObjectType(priv->mon, "pr-manager-helper", - disk->src->pr->mgralias, - prmgrProps); - prmgrProps =3D NULL; /* qemuMonitorAddObjectType consumes */ - if (rv < 0) - goto exit_monitor; - prmgrAdded =3D true; - } + if (prmgrProps && + qemuMonitorAddObject(priv->mon, &prmgrProps, &prmgrAlias) < 0) + goto exit_monitor; if (qemuMonitorAddDrive(priv->mon, drivestr) < 0) goto exit_monitor; @@ -536,6 +530,7 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, virJSONValueFree(encobjProps); virJSONValueFree(secobjProps); qemuDomainSecretDiskDestroy(disk); + VIR_FREE(prmgrAlias); VIR_FREE(drivealias); VIR_FREE(drivestr); VIR_FREE(devstr); @@ -552,8 +547,8 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, ignore_value(qemuMonitorDelObject(priv->mon, secinfo->s.aes.alias)= ); if (encobjAdded) ignore_value(qemuMonitorDelObject(priv->mon, encinfo->s.aes.alias)= ); - if (prmgrAdded) - ignore_value(qemuMonitorDelObject(priv->mon, disk->src->pr->mgrali= as)); + if (prmgrAlias) + ignore_value(qemuMonitorDelObject(priv->mon, prmgrAlias)); if (qemuDomainObjExitMonitor(driver, vm) < 0) ret =3D -2; virErrorRestore(&orig_err); --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon May 6 06:58:29 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.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 1527700053805122.19294905234449; Wed, 30 May 2018 10:07:33 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 013AAA68C2; Wed, 30 May 2018 17:07: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 C609417015; Wed, 30 May 2018 17:07:31 +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 4BE63180BA80; Wed, 30 May 2018 17:07:31 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6srF007321 for ; Wed, 30 May 2018 13:06:54 -0400 Received: by smtp.corp.redhat.com (Postfix) id B20C22026DEF; Wed, 30 May 2018 17:06:54 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 56F6A2026DFD for ; Wed, 30 May 2018 17:06:54 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:31 +0200 Message-Id: In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 07/13] qemu: hotplug: Refactor RNG props formatting to use qemuMonitorCreateObjectProps 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.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 30 May 2018 17:07:32 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/qemu/qemu_command.c | 61 +++++++++++++++++++--------------------------= ---- src/qemu/qemu_command.h | 1 - src/qemu/qemu_hotplug.c | 15 +++--------- 3 files changed, 27 insertions(+), 50 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 00fb1a3b32..c3573982d6 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5495,12 +5495,15 @@ qemuBuildRNGBackendChrdevStr(virLogManagerPtr logMa= nager, int qemuBuildRNGBackendProps(virDomainRNGDefPtr rng, virQEMUCapsPtr qemuCaps, - const char **type, virJSONValuePtr *props) { + char *objAlias =3D NULL; char *charBackendAlias =3D NULL; int ret =3D -1; + if (virAsprintf(&objAlias, "obj%s", rng->info.alias) < 0) + goto cleanup; + switch ((virDomainRNGBackend) rng->backend) { case VIR_DOMAIN_RNG_BACKEND_RANDOM: if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_RNG_RANDOM)) { @@ -5510,11 +5513,11 @@ qemuBuildRNGBackendProps(virDomainRNGDefPtr rng, goto cleanup; } - *type =3D "rng-random"; - - if (virJSONValueObjectCreate(props, "s:filename", rng->source.file, - NULL) < 0) + if (qemuMonitorCreateObjectProps(props, "rng-random", objAlias, + "s:filename", rng->source.file, + NULL) < 0) goto cleanup; + break; case VIR_DOMAIN_RNG_BACKEND_EGD: @@ -5525,13 +5528,12 @@ qemuBuildRNGBackendProps(virDomainRNGDefPtr rng, goto cleanup; } - *type =3D "rng-egd"; - if (!(charBackendAlias =3D qemuAliasChardevFromDevAlias(rng->info.= alias))) goto cleanup; - if (virJSONValueObjectCreate(props, "s:chardev", charBackendAlias, - NULL) < 0) + if (qemuMonitorCreateObjectProps(props, "rng-egd", objAlias, + "s:chardev", charBackendAlias, + NULL) < 0) goto cleanup; break; @@ -5545,35 +5547,12 @@ qemuBuildRNGBackendProps(virDomainRNGDefPtr rng, ret =3D 0; cleanup: + VIR_FREE(objAlias); VIR_FREE(charBackendAlias); return ret; } -static char * -qemuBuildRNGBackendStr(virDomainRNGDefPtr rng, - virQEMUCapsPtr qemuCaps) -{ - const char *type =3D NULL; - char *alias =3D NULL; - virJSONValuePtr props =3D NULL; - char *ret =3D NULL; - - if (virAsprintf(&alias, "obj%s", rng->info.alias) < 0) - goto cleanup; - - if (qemuBuildRNGBackendProps(rng, qemuCaps, &type, &props) < 0) - goto cleanup; - - ret =3D virQEMUBuildObjectCommandlineFromJSONType(type, alias, props); - - cleanup: - VIR_FREE(alias); - virJSONValueFree(props); - return ret; -} - - char * qemuBuildRNGDevStr(const virDomainDef *def, virDomainRNGDefPtr dev, @@ -5641,8 +5620,11 @@ qemuBuildRNGCommandLine(virLogManagerPtr logManager, size_t i; for (i =3D 0; i < def->nrngs; i++) { + virJSONValuePtr props; + virBuffer buf =3D VIR_BUFFER_INITIALIZER; virDomainRNGDefPtr rng =3D def->rngs[i]; char *tmp; + int rc; if (!rng->info.alias) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -5661,12 +5643,17 @@ qemuBuildRNGCommandLine(virLogManagerPtr logManager, VIR_FREE(tmp); } - /* add the RNG source backend */ - if (!(tmp =3D qemuBuildRNGBackendStr(rng, qemuCaps))) + if (qemuBuildRNGBackendProps(rng, qemuCaps, &props) < 0) return -1; - virCommandAddArgList(cmd, "-object", tmp, NULL); - VIR_FREE(tmp); + rc =3D virQEMUBuildObjectCommandlineFromJSON(&buf, props); + virJSONValueFree(props); + + if (rc < 0) + return -1; + + virCommandAddArg(cmd, "-object"); + virCommandAddArgBuffer(cmd, &buf); /* add the device */ if (!(tmp =3D qemuBuildRNGDevStr(def, rng, qemuCaps))) diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h index 2b2168d1ee..d2ee01e810 100644 --- a/src/qemu/qemu_command.h +++ b/src/qemu/qemu_command.h @@ -142,7 +142,6 @@ char *qemuBuildRNGDevStr(const virDomainDef *def, virQEMUCapsPtr qemuCaps); int qemuBuildRNGBackendProps(virDomainRNGDefPtr rng, virQEMUCapsPtr qemuCaps, - const char **type, virJSONValuePtr *props); int qemuOpenPCIConfig(virDomainHostdevDefPtr dev); diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 5892c18e5e..238d4b9cc5 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1979,11 +1979,8 @@ qemuDomainAttachRNGDevice(virQEMUDriverPtr driver, bool teardowncgroup =3D false; bool teardowndevice =3D false; bool chardevAdded =3D false; - bool objAdded =3D false; virJSONValuePtr props =3D NULL; - const char *type; int ret =3D -1; - int rv; if (qemuAssignDeviceRNGAlias(vm->def, rng) < 0) goto cleanup; @@ -2007,10 +2004,7 @@ qemuDomainAttachRNGDevice(virQEMUDriverPtr driver, if (!(devstr =3D qemuBuildRNGDevStr(vm->def, rng, priv->qemuCaps))) goto cleanup; - if (qemuBuildRNGBackendProps(rng, priv->qemuCaps, &type, &props) < 0) - goto cleanup; - - if (virAsprintf(&objAlias, "obj%s", rng->info.alias) < 0) + if (qemuBuildRNGBackendProps(rng, priv->qemuCaps, &props) < 0) goto cleanup; if (!(charAlias =3D qemuAliasChardevFromDevAlias(rng->info.alias))) @@ -2032,11 +2026,8 @@ qemuDomainAttachRNGDevice(virQEMUDriverPtr driver, goto exit_monitor; chardevAdded =3D true; - rv =3D qemuMonitorAddObjectType(priv->mon, type, objAlias, props); - props =3D NULL; /* qemuMonitorAddObjectType consumes */ - if (rv < 0) + if (qemuMonitorAddObject(priv->mon, &props, &objAlias) < 0) goto exit_monitor; - objAdded =3D true; if (qemuMonitorAddDevice(priv->mon, devstr) < 0) goto exit_monitor; @@ -2071,7 +2062,7 @@ qemuDomainAttachRNGDevice(virQEMUDriverPtr driver, exit_monitor: virErrorPreserveLast(&orig_err); - if (objAdded) + if (objAlias) ignore_value(qemuMonitorDelObject(priv->mon, objAlias)); if (rng->backend =3D=3D VIR_DOMAIN_RNG_BACKEND_EGD && chardevAdded) ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias)); --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon May 6 06:58:29 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.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 1527700032555381.56854322058916; Wed, 30 May 2018 10:07:12 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A5B21E329D; Wed, 30 May 2018 17:07:10 +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 EBD48608F2; Wed, 30 May 2018 17:07:09 +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 181D44CA82; Wed, 30 May 2018 17:07:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6tjm007328 for ; Wed, 30 May 2018 13:06:55 -0400 Received: by smtp.corp.redhat.com (Postfix) id 53D5E2026DEF; Wed, 30 May 2018 17:06:55 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id ED2E22026DFD for ; Wed, 30 May 2018 17:06:54 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:32 +0200 Message-Id: <8ad1fcb31170100488053ca69a800f2e1c7d8afd.1527699462.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 08/13] qemu: hotplug: Refactor memory props formatting to qemuMonitorCreateObjectProps 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.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Wed, 30 May 2018 17:07:11 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/qemu/qemu_command.c | 76 ++++++++++++++++++++++++++-------------------= ---- src/qemu/qemu_command.h | 2 +- src/qemu/qemu_hotplug.c | 8 ++---- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index c3573982d6..f728b59659 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -2943,7 +2943,7 @@ qemuBuildControllerDevCommandLine(virCommandPtr cmd, /** * qemuBuildMemoryBackendProps: * @backendProps: [out] constructed object - * @backendType: [out] type of the backennd used + * @alias: alias of the device * @cfg: qemu driver config object * @qemuCaps: qemu capabilities object * @def: domain definition object @@ -2968,7 +2968,7 @@ qemuBuildControllerDevCommandLine(virCommandPtr cmd, */ int qemuBuildMemoryBackendProps(virJSONValuePtr *backendProps, - const char **backendType, + const char *alias, virQEMUDriverConfigPtr cfg, virQEMUCapsPtr qemuCaps, virDomainDefPtr def, @@ -2976,6 +2976,7 @@ qemuBuildMemoryBackendProps(virJSONValuePtr *backendP= rops, virBitmapPtr autoNodeset, bool force) { + const char *backendType =3D "memory-backend-file"; virDomainNumatuneMemMode mode; const long system_page_size =3D virGetSystemPageSizeKB(); virDomainMemoryAccess memAccess =3D mem->access; @@ -2998,7 +2999,6 @@ qemuBuildMemoryBackendProps(virJSONValuePtr *backendP= rops, * @useHugepage. */ *backendProps =3D NULL; - *backendType =3D NULL; if (mem->targetNode >=3D 0) { /* memory devices could provide a invalid guest node */ @@ -3087,7 +3087,6 @@ qemuBuildMemoryBackendProps(virJSONValuePtr *backendP= rops, if (useHugepage || mem->nvdimmPath || memAccess || def->mem.source =3D=3D VIR_DOMAIN_MEMORY_SOURCE_FILE) { - *backendType =3D "memory-backend-file"; if (useHugepage) { if (qemuGetDomainHupageMemPath(def, cfg, pagesize, &memPath) <= 0) @@ -3140,7 +3139,7 @@ qemuBuildMemoryBackendProps(virJSONValuePtr *backendP= rops, break; } } else { - *backendType =3D "memory-backend-ram"; + backendType =3D "memory-backend-ram"; } if (virJSONValueObjectAdd(props, "U:size", mem->size * 1024, NULL) < 0) @@ -3174,13 +3173,13 @@ qemuBuildMemoryBackendProps(virJSONValuePtr *backen= dProps, ret =3D 1; } else { /* otherwise check the required capability */ - if (STREQ(*backendType, "memory-backend-file") && + if (STREQ(backendType, "memory-backend-file") && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("this qemu doesn't support the " "memory-backend-file object")); goto cleanup; - } else if (STREQ(*backendType, "memory-backend-ram") && + } else if (STREQ(backendType, "memory-backend-ram") && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_RAM))= { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("this qemu doesn't support the " @@ -3191,8 +3190,9 @@ qemuBuildMemoryBackendProps(virJSONValuePtr *backendP= rops, ret =3D 0; } - *backendProps =3D props; - props =3D NULL; + if (!(*backendProps =3D qemuMonitorCreateObjectPropsWrap(backendType, = alias, + &props))) + ret =3D -1; cleanup: virJSONValueFree(props); @@ -3206,11 +3206,10 @@ qemuBuildMemoryCellBackendStr(virDomainDefPtr def, virQEMUDriverConfigPtr cfg, size_t cell, qemuDomainObjPrivatePtr priv, - char **backendStr) + virBufferPtr buf) { virJSONValuePtr props =3D NULL; char *alias =3D NULL; - const char *backendType; int ret =3D -1; int rc; virDomainMemoryDef mem =3D { 0 }; @@ -3220,18 +3219,15 @@ qemuBuildMemoryCellBackendStr(virDomainDefPtr def, if (virAsprintf(&alias, "ram-node%zu", cell) < 0) goto cleanup; - *backendStr =3D NULL; mem.size =3D memsize; mem.targetNode =3D cell; mem.info.alias =3D alias; - if ((rc =3D qemuBuildMemoryBackendProps(&props, &backendType, cfg, pri= v->qemuCaps, + if ((rc =3D qemuBuildMemoryBackendProps(&props, alias, cfg, priv->qemu= Caps, def, &mem, priv->autoNodeset, fa= lse)) < 0) goto cleanup; - if (!(*backendStr =3D virQEMUBuildObjectCommandlineFromJSONType(backen= dType, - alias, - props))) + if (virQEMUBuildObjectCommandlineFromJSON(buf, props) < 0) goto cleanup; ret =3D rc; @@ -3244,31 +3240,34 @@ qemuBuildMemoryCellBackendStr(virDomainDefPtr def, } -static char * -qemuBuildMemoryDimmBackendStr(virDomainMemoryDefPtr mem, +static int +qemuBuildMemoryDimmBackendStr(virBufferPtr buf, + virDomainMemoryDefPtr mem, virDomainDefPtr def, virQEMUDriverConfigPtr cfg, qemuDomainObjPrivatePtr priv) { virJSONValuePtr props =3D NULL; char *alias =3D NULL; - const char *backendType; - char *ret =3D NULL; + int ret =3D -1; if (!mem->info.alias) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("memory device alias is not assigned")); - return NULL; + return -1; } if (virAsprintf(&alias, "mem%s", mem->info.alias) < 0) goto cleanup; - if (qemuBuildMemoryBackendProps(&props, &backendType, cfg, priv->qemuC= aps, + if (qemuBuildMemoryBackendProps(&props, alias, cfg, priv->qemuCaps, def, mem, priv->autoNodeset, true) < 0) goto cleanup; - ret =3D virQEMUBuildObjectCommandlineFromJSONType(backendType, alias, = props); + if (virQEMUBuildObjectCommandlineFromJSON(buf, props) < 0) + goto cleanup; + + ret =3D 0; cleanup: VIR_FREE(alias); @@ -7397,7 +7396,7 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg, virQEMUCapsPtr qemuCaps =3D priv->qemuCaps; virBuffer buf =3D VIR_BUFFER_INITIALIZER; char *cpumask =3D NULL, *tmpmask =3D NULL, *next =3D NULL; - char **nodeBackends =3D NULL; + virBufferPtr *nodeBackends =3D NULL; bool needBackend =3D false; int rc; int ret =3D -1; @@ -7458,8 +7457,12 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg, for (i =3D 0; i < ncells; i++) { if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_RAM) || virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE)) { + + if (VIR_ALLOC(nodeBackends[i]) < 0) + goto cleanup; + if ((rc =3D qemuBuildMemoryCellBackendStr(def, cfg, i, priv, - &nodeBackends[i])) < 0) + nodeBackends[i])) < 0) goto cleanup; if (rc =3D=3D 0) @@ -7491,8 +7494,10 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg, goto cleanup; } - if (needBackend) - virCommandAddArgList(cmd, "-object", nodeBackends[i], NULL); + if (needBackend) { + virCommandAddArg(cmd, "-object"); + virCommandAddArgBuffer(cmd, nodeBackends[i]); + } virCommandAddArg(cmd, "-numa"); virBufferAsprintf(&buf, "node,nodeid=3D%zu", i); @@ -7555,7 +7560,7 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg, if (nodeBackends) { for (i =3D 0; i < ncells; i++) - VIR_FREE(nodeBackends[i]); + virBufferFreeAndReset(nodeBackends[i]); VIR_FREE(nodeBackends); } @@ -7576,21 +7581,20 @@ qemuBuildMemoryDeviceCommandLine(virCommandPtr cmd, /* memory hotplug requires NUMA to be enabled - we already checked * that memory devices are present only when NUMA is */ for (i =3D 0; i < def->nmems; i++) { - char *backStr; + virBuffer buf =3D VIR_BUFFER_INITIALIZER; char *dimmStr; - if (!(backStr =3D qemuBuildMemoryDimmBackendStr(def->mems[i], def, - cfg, priv))) + if (qemuBuildMemoryDimmBackendStr(&buf, def->mems[i], def, cfg, pr= iv) < 0) return -1; - if (!(dimmStr =3D qemuBuildMemoryDeviceStr(def->mems[i]))) { - VIR_FREE(backStr); + virCommandAddArg(cmd, "-object"); + virCommandAddArgBuffer(cmd, &buf); + + if (!(dimmStr =3D qemuBuildMemoryDeviceStr(def->mems[i]))) return -1; - } - virCommandAddArgList(cmd, "-object", backStr, "-device", dimmStr, = NULL); + virCommandAddArgList(cmd, "-device", dimmStr, NULL); - VIR_FREE(backStr); VIR_FREE(dimmStr); } diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h index d2ee01e810..e4f56cf89d 100644 --- a/src/qemu/qemu_command.h +++ b/src/qemu/qemu_command.h @@ -120,7 +120,7 @@ int qemuBuildControllerDevStr(const virDomainDef *domai= nDef, int *nusbcontroller); int qemuBuildMemoryBackendProps(virJSONValuePtr *backendProps, - const char **backendType, + const char *alias, virQEMUDriverConfigPtr cfg, virQEMUCapsPtr qemuCaps, virDomainDefPtr def, diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 238d4b9cc5..f8358a8b0b 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -2098,7 +2098,6 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, unsigned long long newmem =3D oldmem + mem->size; char *devstr =3D NULL; char *objalias =3D NULL; - const char *backendType; bool objAdded =3D false; bool teardownlabel =3D false; bool teardowncgroup =3D false; @@ -2107,7 +2106,6 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, virObjectEventPtr event; int id; int ret =3D -1; - int rv; qemuDomainMemoryDeviceAlignSize(vm->def, mem); @@ -2128,7 +2126,7 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, if (!(devstr =3D qemuBuildMemoryDeviceStr(mem))) goto cleanup; - if (qemuBuildMemoryBackendProps(&props, &backendType, cfg, + if (qemuBuildMemoryBackendProps(&props, objalias, cfg, priv->qemuCaps, vm->def, mem, NULL, tr= ue) < 0) goto cleanup; @@ -2154,9 +2152,7 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, goto removedef; qemuDomainObjEnterMonitor(driver, vm); - rv =3D qemuMonitorAddObjectType(priv->mon, backendType, objalias, prop= s); - props =3D NULL; /* qemuMonitorAddObjectType consumes */ - if (rv < 0) + if (qemuMonitorAddObject(priv->mon, &props, NULL) < 0) goto exit_monitor; objAdded =3D true; --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon May 6 06:58:29 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.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 1527700044250429.8907287240247; Wed, 30 May 2018 10:07:24 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id CD9EF3082A35; Wed, 30 May 2018 17:07:22 +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 994BE60172; Wed, 30 May 2018 17:07:22 +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 35B28180BA81; Wed, 30 May 2018 17:07:22 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6uMh007333 for ; Wed, 30 May 2018 13:06:56 -0400 Received: by smtp.corp.redhat.com (Postfix) id E9C0F2026DEF; Wed, 30 May 2018 17:06:55 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8F2422026DFD for ; Wed, 30 May 2018 17:06:55 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:33 +0200 Message-Id: <1b60e5f6482c890725447d153c7a947d8616dea2.1527699462.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 09/13] qemu: hotplug: Refactor shmem props formatting to qemuMonitorCreateObjectProps 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.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.45]); Wed, 30 May 2018 17:07:23 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/qemu/qemu_command.c | 53 ++++++++++++++++++++-------------------------= ---- src/qemu/qemu_hotplug.c | 8 +------- 2 files changed, 23 insertions(+), 38 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index f728b59659..f604a9e8aa 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -8792,43 +8792,25 @@ qemuBuildShmemDevStr(virDomainDefPtr def, virJSONValuePtr qemuBuildShmemBackendMemProps(virDomainShmemDefPtr shmem) { + char *mem_alias =3D NULL; char *mem_path =3D NULL; virJSONValuePtr ret =3D NULL; if (virAsprintf(&mem_path, "/dev/shm/%s", shmem->name) < 0) return NULL; - virJSONValueObjectCreate(&ret, - "s:mem-path", mem_path, - "U:size", shmem->size, - "b:share", true, - NULL); - - VIR_FREE(mem_path); - return ret; -} - - -static char * -qemuBuildShmemBackendMemStr(virDomainShmemDefPtr shmem) -{ - char *ret =3D NULL; - char *alias =3D NULL; - virJSONValuePtr props =3D qemuBuildShmemBackendMemProps(shmem); - - if (!props) - return NULL; - - if (virAsprintf(&alias, "shmmem-%s", shmem->info.alias) < 0) + if (virAsprintf(&mem_alias, "shmmem-%s", shmem->info.alias) < 0) goto cleanup; - ret =3D virQEMUBuildObjectCommandlineFromJSONType("memory-backend-file= ", - alias, - props); - cleanup: - VIR_FREE(alias); - virJSONValueFree(props); + qemuMonitorCreateObjectProps(&ret, "memory-backend-file", mem_alias, + "s:mem-path", mem_path, + "U:size", shmem->size, + "b:share", true, + NULL); + cleanup: + VIR_FREE(mem_alias); + VIR_FREE(mem_path); return ret; } @@ -8842,7 +8824,10 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManage= r, virQEMUCapsPtr qemuCaps, bool chardevStdioLogd) { + virJSONValuePtr memProps =3D NULL; + virBuffer buf =3D VIR_BUFFER_INITIALIZER; char *devstr =3D NULL; + int rc; if (shmem->size) { /* @@ -8876,11 +8861,17 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManag= er, break; case VIR_DOMAIN_SHMEM_MODEL_IVSHMEM_PLAIN: - if (!(devstr =3D qemuBuildShmemBackendMemStr(shmem))) + if (!(memProps =3D qemuBuildShmemBackendMemProps(shmem))) return -1; - virCommandAddArgList(cmd, "-object", devstr, NULL); - VIR_FREE(devstr); + rc =3D virQEMUBuildObjectCommandlineFromJSON(&buf, memProps); + virJSONValueFree(memProps); + + if (rc < 0) + return -1; + + virCommandAddArg(cmd, "-object"); + virCommandAddArgBuffer(cmd, &buf); ATTRIBUTE_FALLTHROUGH; case VIR_DOMAIN_SHMEM_MODEL_IVSHMEM_DOORBELL: diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index f8358a8b0b..02bc88f863 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -2751,8 +2751,6 @@ qemuDomainAttachShmemDevice(virQEMUDriverPtr driver, if (!(props =3D qemuBuildShmemBackendMemProps(shmem))) goto cleanup; - if (virAsprintf(&memAlias, "shmmem-%s", shmem->info.alias) < 0) - goto cleanup; } qemuDomainObjEnterMonitor(driver, vm); @@ -2762,12 +2760,8 @@ qemuDomainAttachShmemDevice(virQEMUDriverPtr driver, &shmem->server.chr) < 0) goto exit_monitor; } else { - if (qemuMonitorAddObjectType(priv->mon, "memory-backend-file", - memAlias, props) < 0) { - props =3D NULL; + if (qemuMonitorAddObject(priv->mon, &props, &memAlias) < 0) goto exit_monitor; - } - props =3D NULL; } release_backing =3D true; --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon May 6 06:58:29 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.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 1527700061191260.46537553444637; Wed, 30 May 2018 10:07:41 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.24]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6C4B830A74F4; Wed, 30 May 2018 17:07:39 +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 0B080308BDA1; Wed, 30 May 2018 17:07:39 +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 80DFC180BA83; Wed, 30 May 2018 17:07:38 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6uhm007341 for ; Wed, 30 May 2018 13:06:56 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8C3222026DEF; Wed, 30 May 2018 17:06:56 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 30D252026DFD for ; Wed, 30 May 2018 17:06:56 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:34 +0200 Message-Id: <54aeb1dcebb87da498afb5211839c7c5d7d66fda.1527699462.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 10/13] qemu: hotplug: Refactor tls-credential props formatting to qemuMonitorCreateObjectProps 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.84 on 10.5.11.24 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Wed, 30 May 2018 17:07:40 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Note that it's okay to pass NULL to qemuDomainDelTLSObjects in qemuDomainAddTLSObjects as the tls-creds-x509 object was either not created or qemu crashed. Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/qemu/qemu_command.c | 29 +++++++++++++++-------------- src/qemu/qemu_command.h | 1 + src/qemu/qemu_hotplug.c | 25 +++++++++++-------------- src/qemu/qemu_hotplug.h | 2 +- src/qemu/qemu_migration_params.c | 4 ++-- 5 files changed, 30 insertions(+), 31 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index f604a9e8aa..00ca557025 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -684,6 +684,7 @@ qemuBuildRBDSecinfoURI(virBufferPtr buf, * @tlspath: path to the TLS credentials * @listen: boolen listen for client or server setting * @verifypeer: boolean to enable peer verification (form of authorization) + * @alias: alias for the TLS credentials object * @secalias: if one exists, the alias of the security object for password= id * @qemuCaps: capabilities * @propsret: json properties to return @@ -696,6 +697,7 @@ int qemuBuildTLSx509BackendProps(const char *tlspath, bool isListen, bool verifypeer, + const char *alias, const char *secalias, virQEMUCapsPtr qemuCaps, virJSONValuePtr *propsret) @@ -706,12 +708,12 @@ qemuBuildTLSx509BackendProps(const char *tlspath, return -1; } - if (virJSONValueObjectCreate(propsret, - "s:dir", tlspath, - "s:endpoint", (isListen ? "server": "clie= nt"), - "b:verify-peer", (isListen ? verifypeer := true), - "S:passwordid", secalias, - NULL) < 0) + if (qemuMonitorCreateObjectProps(propsret, "tls-creds-x509", alias, + "s:dir", tlspath, + "s:endpoint", (isListen ? "server": "= client"), + "b:verify-peer", (isListen ? verifype= er : true), + "S:passwordid", secalias, + NULL) < 0) return -1; return 0; @@ -741,26 +743,25 @@ qemuBuildTLSx509CommandLine(virCommandPtr cmd, const char *alias, virQEMUCapsPtr qemuCaps) { + virBuffer buf =3D VIR_BUFFER_INITIALIZER; int ret =3D -1; virJSONValuePtr props =3D NULL; - char *tmp =3D NULL; - if (qemuBuildTLSx509BackendProps(tlspath, isListen, verifypeer, - certEncSecretAlias, - qemuCaps, &props) < 0) + if (qemuBuildTLSx509BackendProps(tlspath, isListen, verifypeer, alias, + certEncSecretAlias, qemuCaps, &props)= < 0) goto cleanup; - if (!(tmp =3D virQEMUBuildObjectCommandlineFromJSONType("tls-creds-x50= 9", - alias, props))) + if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0) goto cleanup; - virCommandAddArgList(cmd, "-object", tmp, NULL); + virCommandAddArg(cmd, "-object"); + virCommandAddArgBuffer(cmd, &buf); ret =3D 0; cleanup: + virBufferFreeAndReset(&buf); virJSONValueFree(props); - VIR_FREE(tmp); return ret; } diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h index e4f56cf89d..e85efcc980 100644 --- a/src/qemu/qemu_command.h +++ b/src/qemu/qemu_command.h @@ -66,6 +66,7 @@ int qemuBuildSecretInfoProps(qemuDomainSecretInfoPtr seci= nfo, int qemuBuildTLSx509BackendProps(const char *tlspath, bool isListen, bool verifypeer, + const char *alias, const char *secalias, virQEMUCapsPtr qemuCaps, virJSONValuePtr *propsret); diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 02bc88f863..a6ab73b1af 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -166,11 +166,12 @@ qemuDomainAddDiskSrcTLSObject(virQEMUDriverPtr driver, src->tlsCertdir, false, src->tlsVerify, + src->tlsAlias, &tlsProps, NULL) < 0) goto cleanup; if (qemuDomainAddTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE, - NULL, NULL, src->tlsAlias, &tlsProps) < 0) + NULL, NULL, &tlsProps) < 0) goto cleanup; ret =3D 0; @@ -1446,14 +1447,13 @@ qemuDomainAddTLSObjects(virQEMUDriverPtr driver, qemuDomainAsyncJob asyncJob, const char *secAlias, virJSONValuePtr *secProps, - const char *tlsAlias, virJSONValuePtr *tlsProps) { qemuDomainObjPrivatePtr priv =3D vm->privateData; int rc; virErrorPtr orig_err; - if (!tlsAlias && !secAlias) + if (!tlsProps && !secAlias) return 0; if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) @@ -1467,13 +1467,9 @@ qemuDomainAddTLSObjects(virQEMUDriverPtr driver, goto error; } - if (tlsAlias) { - rc =3D qemuMonitorAddObjectType(priv->mon, "tls-creds-x509", - tlsAlias, *tlsProps); - *tlsProps =3D NULL; /* qemuMonitorAddObjectType consumes */ - if (rc < 0) - goto error; - } + if (tlsProps && + qemuMonitorAddObject(priv->mon, tlsProps, NULL) < 0) + goto error; return qemuDomainObjExitMonitor(driver, vm); @@ -1481,7 +1477,7 @@ qemuDomainAddTLSObjects(virQEMUDriverPtr driver, virErrorPreserveLast(&orig_err); ignore_value(qemuDomainObjExitMonitor(driver, vm)); virErrorRestore(&orig_err); - qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, tlsAlias); + qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, NULL); return -1; } @@ -1493,6 +1489,7 @@ qemuDomainGetTLSObjects(virQEMUCapsPtr qemuCaps, const char *tlsCertdir, bool tlsListen, bool tlsVerify, + const char *alias, virJSONValuePtr *tlsProps, virJSONValuePtr *secProps) { @@ -1506,7 +1503,7 @@ qemuDomainGetTLSObjects(virQEMUCapsPtr qemuCaps, } if (qemuBuildTLSx509BackendProps(tlsCertdir, tlsListen, tlsVerify, - secAlias, qemuCaps, tlsProps) < 0) + alias, secAlias, qemuCaps, tlsProps) = < 0) return -1; return 0; @@ -1555,12 +1552,12 @@ qemuDomainAddChardevTLSObjects(virQEMUDriverPtr dri= ver, cfg->chardevTLSx509certdir, dev->data.tcp.listen, cfg->chardevTLSx509verify, - &tlsProps, &secProps) < 0) + *tlsAlias, &tlsProps, &secProps) < 0) goto cleanup; dev->data.tcp.tlscreds =3D true; if (qemuDomainAddTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE, - *secAlias, &secProps, *tlsAlias, &tlsProps= ) < 0) + *secAlias, &secProps, &tlsProps) < 0) goto cleanup; ret =3D 0; diff --git a/src/qemu/qemu_hotplug.h b/src/qemu/qemu_hotplug.h index 2059baf47f..f978780c30 100644 --- a/src/qemu/qemu_hotplug.h +++ b/src/qemu/qemu_hotplug.h @@ -45,7 +45,6 @@ int qemuDomainAddTLSObjects(virQEMUDriverPtr driver, qemuDomainAsyncJob asyncJob, const char *secAlias, virJSONValuePtr *secProps, - const char *tlsAlias, virJSONValuePtr *tlsProps); int qemuDomainGetTLSObjects(virQEMUCapsPtr qemuCaps, @@ -53,6 +52,7 @@ int qemuDomainGetTLSObjects(virQEMUCapsPtr qemuCaps, const char *tlsCertdir, bool tlsListen, bool tlsVerify, + const char *alias, virJSONValuePtr *tlsProps, virJSONValuePtr *secProps); diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index 5976bfdaf2..78688c397f 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -862,7 +862,7 @@ qemuMigrationParamsEnableTLS(virQEMUDriverPtr driver, if (qemuDomainGetTLSObjects(priv->qemuCaps, priv->migSecinfo, cfg->migrateTLSx509certdir, tlsListen, cfg->migrateTLSx509verify, - &tlsProps, &secProps) < 0) + *tlsAlias, &tlsProps, &secProps) < 0) goto error; /* Ensure the domain doesn't already have the TLS objects defined... @@ -872,7 +872,7 @@ qemuMigrationParamsEnableTLS(virQEMUDriverPtr driver, qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, *tlsAlias); if (qemuDomainAddTLSObjects(driver, vm, asyncJob, secAlias, &secProps, - *tlsAlias, &tlsProps) < 0) + &tlsProps) < 0) goto error; if (qemuMigrationParamsSetString(migParams, --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon May 6 06:58:29 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.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 1527700069275730.2278732286667; Wed, 30 May 2018 10:07:49 -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 64104AC5ED; Wed, 30 May 2018 17:07:47 +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 165165FC20; Wed, 30 May 2018 17:07:47 +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 6A2954CA83; Wed, 30 May 2018 17:07:46 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6vqA007346 for ; Wed, 30 May 2018 13:06:57 -0400 Received: by smtp.corp.redhat.com (Postfix) id 2EF502026DEF; Wed, 30 May 2018 17:06:57 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id C84912026DFD for ; Wed, 30 May 2018 17:06:56 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:35 +0200 Message-Id: <3fbbe8a0553bbf60c83581e52eefc9e1ae42e10a.1527699462.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 11/13] qemu: hotplug: Refactor 'secret' props formatting to qemuMonitorCreateObjectProps 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.28]); Wed, 30 May 2018 17:07:48 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/qemu/qemu_command.c | 31 +++++++--------- src/qemu/qemu_hotplug.c | 77 ++++++++++++++++--------------------= ---- src/qemu/qemu_hotplug.h | 1 - src/qemu/qemu_migration_params.c | 3 +- 4 files changed, 45 insertions(+), 67 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 00ca557025..a4dfda3f14 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -511,18 +511,14 @@ qemuBuildSecretInfoProps(qemuDomainSecretInfoPtr seci= nfo, if (!(keyid =3D qemuDomainGetMasterKeyAlias())) return -1; - if (virJSONValueObjectCreate(propsret, - "s:data", secinfo->s.aes.ciphertext, - "s:keyid", keyid, - "s:iv", secinfo->s.aes.iv, - "s:format", "base64", NULL) < 0) - goto cleanup; - - ret =3D 0; + ret =3D qemuMonitorCreateObjectProps(propsret, + "secret", secinfo->s.aes.alias, + "s:data", secinfo->s.aes.ciphertext, + "s:keyid", keyid, + "s:iv", secinfo->s.aes.iv, + "s:format", "base64", NULL); - cleanup: VIR_FREE(keyid); - return ret; } @@ -543,25 +539,24 @@ static int qemuBuildObjectSecretCommandLine(virCommandPtr cmd, qemuDomainSecretInfoPtr secinfo) { + virBuffer buf =3D VIR_BUFFER_INITIALIZER; int ret =3D -1; virJSONValuePtr props =3D NULL; - char *tmp =3D NULL; if (qemuBuildSecretInfoProps(secinfo, &props) < 0) return -1; - if (!(tmp =3D virQEMUBuildObjectCommandlineFromJSONType("secret", - secinfo->s.aes.a= lias, - props))) + if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0) goto cleanup; - virCommandAddArgList(cmd, "-object", tmp, NULL); - ret =3D 0; + virCommandAddArg(cmd, "-object"); + virCommandAddArgBuffer(cmd, &buf); + + ret =3D 0; cleanup: + virBufferFreeAndReset(&buf); virJSONValueFree(props); - VIR_FREE(tmp); - return ret; } diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index a6ab73b1af..6e7245a481 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -171,7 +171,7 @@ qemuDomainAddDiskSrcTLSObject(virQEMUDriverPtr driver, goto cleanup; if (qemuDomainAddTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE, - NULL, NULL, &tlsProps) < 0) + NULL, &tlsProps) < 0) goto cleanup; ret =3D 0; @@ -423,9 +423,9 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, char *drivestr =3D NULL; char *drivealias =3D NULL; char *prmgrAlias =3D NULL; + char *encobjAlias =3D NULL; + char *secobjAlias =3D NULL; bool driveAdded =3D false; - bool secobjAdded =3D false; - bool encobjAdded =3D false; bool prdStarted =3D false; virQEMUDriverConfigPtr cfg =3D virQEMUDriverGetConfig(driver); virJSONValuePtr secobjProps =3D NULL; @@ -487,23 +487,13 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, qemuDomainObjEnterMonitor(driver, vm); - if (secobjProps) { - rv =3D qemuMonitorAddObjectType(priv->mon, "secret", secinfo->s.ae= s.alias, - secobjProps); - secobjProps =3D NULL; /* qemuMonitorAddObjectType consumes */ - if (rv < 0) - goto exit_monitor; - secobjAdded =3D true; - } + if (secobjProps && + qemuMonitorAddObject(priv->mon, &secobjProps, &secobjAlias) < 0) + goto exit_monitor; - if (encobjProps) { - rv =3D qemuMonitorAddObjectType(priv->mon, "secret", encinfo->s.ae= s.alias, - encobjProps); - encobjProps =3D NULL; /* qemuMonitorAddObjectType consumes */ - if (rv < 0) - goto exit_monitor; - encobjAdded =3D true; - } + if (encobjProps && + qemuMonitorAddObject(priv->mon, &encobjProps, &encobjAlias) < 0) + goto exit_monitor; if (prmgrProps && qemuMonitorAddObject(priv->mon, &prmgrProps, &prmgrAlias) < 0) @@ -532,6 +522,8 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, virJSONValueFree(secobjProps); qemuDomainSecretDiskDestroy(disk); VIR_FREE(prmgrAlias); + VIR_FREE(secobjAlias); + VIR_FREE(encobjAlias); VIR_FREE(drivealias); VIR_FREE(drivestr); VIR_FREE(devstr); @@ -544,10 +536,10 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, VIR_WARN("Unable to remove drive %s (%s) after failed " "qemuMonitorAddDevice", drivealias, drivestr); } - if (secobjAdded) - ignore_value(qemuMonitorDelObject(priv->mon, secinfo->s.aes.alias)= ); - if (encobjAdded) - ignore_value(qemuMonitorDelObject(priv->mon, encinfo->s.aes.alias)= ); + if (secobjAlias) + ignore_value(qemuMonitorDelObject(priv->mon, secobjAlias)); + if (encobjAlias) + ignore_value(qemuMonitorDelObject(priv->mon, encobjAlias)); if (prmgrAlias) ignore_value(qemuMonitorDelObject(priv->mon, prmgrAlias)); if (qemuDomainObjExitMonitor(driver, vm) < 0) @@ -1445,32 +1437,29 @@ int qemuDomainAddTLSObjects(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, - const char *secAlias, virJSONValuePtr *secProps, virJSONValuePtr *tlsProps) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - int rc; virErrorPtr orig_err; + char *secAlias =3D NULL; - if (!tlsProps && !secAlias) + if (!tlsProps && !secProps) return 0; if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) return -1; - if (secAlias) { - rc =3D qemuMonitorAddObjectType(priv->mon, "secret", - secAlias, *secProps); - *secProps =3D NULL; /* qemuMonitorAddObjectType consumes */ - if (rc < 0) - goto error; - } + if (secProps && + qemuMonitorAddObject(priv->mon, secProps, &secAlias) < 0) + goto error; if (tlsProps && qemuMonitorAddObject(priv->mon, tlsProps, NULL) < 0) goto error; + VIR_FREE(secAlias); + return qemuDomainObjExitMonitor(driver, vm); error: @@ -1478,6 +1467,7 @@ qemuDomainAddTLSObjects(virQEMUDriverPtr driver, ignore_value(qemuDomainObjExitMonitor(driver, vm)); virErrorRestore(&orig_err); qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, NULL); + VIR_FREE(secAlias); return -1; } @@ -1557,7 +1547,7 @@ qemuDomainAddChardevTLSObjects(virQEMUDriverPtr drive= r, dev->data.tcp.tlscreds =3D true; if (qemuDomainAddTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE, - *secAlias, &secProps, &tlsProps) < 0) + &secProps, &tlsProps) < 0) goto cleanup; ret =3D 0; @@ -2305,18 +2295,17 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr dri= ver, virDomainHostdevDefPtr hostdev) { size_t i; - int rv; int ret =3D -1; qemuDomainObjPrivatePtr priv =3D vm->privateData; virErrorPtr orig_err; char *devstr =3D NULL; char *drvstr =3D NULL; char *drivealias =3D NULL; + char *secobjAlias =3D NULL; bool teardowncgroup =3D false; bool teardownlabel =3D false; bool teardowndevice =3D false; bool driveAdded =3D false; - bool secobjAdded =3D false; virJSONValuePtr secobjProps =3D NULL; virDomainHostdevSubsysSCSIPtr scsisrc =3D &hostdev->source.subsys.u.sc= si; qemuDomainSecretInfoPtr secinfo =3D NULL; @@ -2385,14 +2374,9 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr driv= er, qemuDomainObjEnterMonitor(driver, vm); - if (secobjProps) { - rv =3D qemuMonitorAddObjectType(priv->mon, "secret", secinfo->s.ae= s.alias, - secobjProps); - secobjProps =3D NULL; /* qemuMonitorAddObjectType consumes */ - if (rv < 0) - goto exit_monitor; - secobjAdded =3D true; - } + if (secobjProps && + qemuMonitorAddObject(priv->mon, &secobjProps, &secobjAlias) < 0) + goto exit_monitor; if (qemuMonitorAddDrive(priv->mon, drvstr) < 0) goto exit_monitor; @@ -2424,6 +2408,7 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr drive= r, } qemuDomainSecretHostdevDestroy(hostdev); virJSONValueFree(secobjProps); + VIR_FREE(secobjAlias); VIR_FREE(drivealias); VIR_FREE(drvstr); VIR_FREE(devstr); @@ -2436,8 +2421,8 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr drive= r, "qemuMonitorAddDevice", drvstr, devstr); } - if (secobjAdded) - ignore_value(qemuMonitorDelObject(priv->mon, secinfo->s.aes.alias)= ); + if (secobjAlias) + ignore_value(qemuMonitorDelObject(priv->mon, secobjAlias)); ignore_value(qemuDomainObjExitMonitor(driver, vm)); virErrorRestore(&orig_err); diff --git a/src/qemu/qemu_hotplug.h b/src/qemu/qemu_hotplug.h index f978780c30..6c952df38c 100644 --- a/src/qemu/qemu_hotplug.h +++ b/src/qemu/qemu_hotplug.h @@ -43,7 +43,6 @@ void qemuDomainDelTLSObjects(virQEMUDriverPtr driver, int qemuDomainAddTLSObjects(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, - const char *secAlias, virJSONValuePtr *secProps, virJSONValuePtr *tlsProps); diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index 78688c397f..7b0862575f 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -871,8 +871,7 @@ qemuMigrationParamsEnableTLS(virQEMUDriverPtr driver, * some other error path between now and perform . */ qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, *tlsAlias); - if (qemuDomainAddTLSObjects(driver, vm, asyncJob, secAlias, &secProps, - &tlsProps) < 0) + if (qemuDomainAddTLSObjects(driver, vm, asyncJob, &secProps, &tlsProps= ) < 0) goto error; if (qemuMigrationParamsSetString(migParams, --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon May 6 06:58:29 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.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 1527700039390946.6293391172928; Wed, 30 May 2018 10:07:19 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.24]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2FB1D122E9D; Wed, 30 May 2018 17:07:17 +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 CCBEC308BDA9; Wed, 30 May 2018 17:07:16 +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 60B574CA81; Wed, 30 May 2018 17:07:16 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6vdi007353 for ; Wed, 30 May 2018 13:06:58 -0400 Received: by smtp.corp.redhat.com (Postfix) id C4FA22026DEF; Wed, 30 May 2018 17:06:57 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 69F802026DFD for ; Wed, 30 May 2018 17:06:57 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:36 +0200 Message-Id: In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 12/13] qemu: Convert iothread hotplug to qemuMonitorCreateObjectProps 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.84 on 10.5.11.24 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Wed, 30 May 2018 17:07:18 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/qemu/qemu_driver.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 922603a7a3..05a09eb706 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -5806,24 +5806,27 @@ qemuDomainHotplugAddIOThread(virQEMUDriverPtr drive= r, qemuDomainObjPrivatePtr priv =3D vm->privateData; char *alias =3D NULL; size_t idx; - int rc =3D -1; int ret =3D -1; unsigned int orig_niothreads =3D vm->def->niothreadids; unsigned int exp_niothreads =3D vm->def->niothreadids; int new_niothreads =3D 0; qemuMonitorIOThreadInfoPtr *new_iothreads =3D NULL; virDomainIOThreadIDDefPtr iothrid; + virJSONValuePtr props =3D NULL; if (virAsprintf(&alias, "iothread%u", iothread_id) < 0) return -1; + if (qemuMonitorCreateObjectProps(&props, "iothread", alias, NULL) < 0) + goto cleanup; + qemuDomainObjEnterMonitor(driver, vm); - rc =3D qemuMonitorAddObjectType(priv->mon, "iothread", alias, NULL); - exp_niothreads++; - if (rc < 0) + if (qemuMonitorAddObject(priv->mon, &props, NULL) < 0) goto exit_monitor; + exp_niothreads++; + /* After hotplugging the IOThreads we need to re-detect the * IOThreads thread_id's, adjust the cgroups, thread affinity, * and add the thread_id to the vm->def->iothreadids list. @@ -5876,8 +5879,9 @@ qemuDomainHotplugAddIOThread(virQEMUDriverPtr driver, VIR_FREE(new_iothreads); } virDomainAuditIOThread(vm, orig_niothreads, new_niothreads, - "update", rc =3D=3D 0); + "update", ret =3D=3D 0); VIR_FREE(alias); + virJSONValueFree(props); return ret; exit_monitor: --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Mon May 6 06:58:29 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.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 1527700075544471.6739562742156; Wed, 30 May 2018 10:07:55 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6C64533E5F2; Wed, 30 May 2018 17:07:53 +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 2BC1F6017B; Wed, 30 May 2018 17:07:53 +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 AE41718033EF; Wed, 30 May 2018 17:07:52 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6wM0007359 for ; Wed, 30 May 2018 13:06:58 -0400 Received: by smtp.corp.redhat.com (Postfix) id 6765B2026DEF; Wed, 30 May 2018 17:06:58 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0CA1E2026DFD for ; Wed, 30 May 2018 17:06:57 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:37 +0200 Message-Id: <8c6a89970328658fccd848abfd65644c2c160a4a.1527699462.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 13/13] qemu: Delete old unused code for adding objects to qemu 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.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Wed, 30 May 2018 17:07:54 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/libvirt_private.syms | 1 - src/qemu/qemu_monitor.c | 34 ---------------------------------- src/qemu/qemu_monitor.h | 5 ----- src/util/virqemu.c | 22 ---------------------- src/util/virqemu.h | 4 ---- 5 files changed, 66 deletions(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 37922f8c84..6001635916 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2600,7 +2600,6 @@ virQEMUBuildCommandLineJSONArrayBitmap; virQEMUBuildCommandLineJSONArrayNumbered; virQEMUBuildDriveCommandlineFromJSON; virQEMUBuildObjectCommandlineFromJSON; -virQEMUBuildObjectCommandlineFromJSONType; virQEMUBuildQemuImgKeySecretOpts; diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index fe8fdfaf9a..876157437a 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -3093,40 +3093,6 @@ qemuMonitorAddObject(qemuMonitorPtr mon, } - -/** - * qemuMonitorAddObjectType: - * @mon: Pointer to monitor object - * @type: Type name of object to add - * @objalias: Alias of the new object - * @props: Optional arguments for the given type. The object is consumed a= nd - * should not be referenced by the caller after this function retu= rns. - * - * Returns 0 on success -1 on error. - */ -int -qemuMonitorAddObjectType(qemuMonitorPtr mon, - const char *type, - const char *objalias, - virJSONValuePtr props) -{ - virJSONValuePtr tmpprops =3D NULL; - int ret =3D -1; - - VIR_DEBUG("type=3D%s objalias=3D%s props=3D%p", type, objalias, props); - - if (!(tmpprops =3D qemuMonitorCreateObjectPropsWrap(type, objalias, &p= rops))) - goto cleanup; - - ret =3D qemuMonitorAddObject(mon, &tmpprops, NULL); - - cleanup: - virJSONValueFree(props); - virJSONValueFree(tmpprops); - return ret; -} - - int qemuMonitorDelObject(qemuMonitorPtr mon, const char *objalias) diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 0c13391520..d6e5a2239e 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -810,11 +810,6 @@ int qemuMonitorAddObject(qemuMonitorPtr mon, virJSONValuePtr *props, char **alias); -int qemuMonitorAddObjectType(qemuMonitorPtr mon, - const char *type, - const char *objalias, - virJSONValuePtr props); - int qemuMonitorDelObject(qemuMonitorPtr mon, const char *objalias); diff --git a/src/util/virqemu.c b/src/util/virqemu.c index 1390b68b86..e16429d80d 100644 --- a/src/util/virqemu.c +++ b/src/util/virqemu.c @@ -264,28 +264,6 @@ virQEMUBuildObjectCommandlineFromJSONInternal(virBuffe= rPtr buf, } -char * -virQEMUBuildObjectCommandlineFromJSONType(const char *type, - const char *alias, - virJSONValuePtr props) -{ - virBuffer buf =3D VIR_BUFFER_INITIALIZER; - char *ret =3D NULL; - - if (virQEMUBuildObjectCommandlineFromJSONInternal(&buf, type, alias, p= rops) < 0) - goto cleanup; - - if (virBufferCheckError(&buf) < 0) - goto cleanup; - - ret =3D virBufferContentAndReset(&buf); - - cleanup: - virBufferFreeAndReset(&buf); - return ret; -} - - int virQEMUBuildObjectCommandlineFromJSON(virBufferPtr buf, virJSONValuePtr objprops) diff --git a/src/util/virqemu.h b/src/util/virqemu.h index 0a4f4468f2..309be45761 100644 --- a/src/util/virqemu.h +++ b/src/util/virqemu.h @@ -43,10 +43,6 @@ int virQEMUBuildCommandLineJSON(virJSONValuePtr value, virBufferPtr buf, virQEMUBuildCommandLineJSONArrayFormatFunc= array); -char *virQEMUBuildObjectCommandlineFromJSONType(const char *type, - const char *alias, - virJSONValuePtr props); - int virQEMUBuildObjectCommandlineFromJSON(virBufferPtr buf, virJSONValuePtr objprops); --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list