From nobody Fri May 10 01:59:41 2024 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 170922081752434.90618058037148; Thu, 29 Feb 2024 07:33:37 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 35D9C1734; Thu, 29 Feb 2024 10:33:36 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 0A81D1C0C; Thu, 29 Feb 2024 10:28:04 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 9B5B418FC; Thu, 29 Feb 2024 10:27:52 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 645B3187D for ; Thu, 29 Feb 2024 10:27:51 -0500 (EST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-152-OgXRPd2OODesqoTbQAs3Gw-1; Thu, 29 Feb 2024 10:27:49 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 151A7868A00 for ; Thu, 29 Feb 2024 15:27:49 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.45.226.67]) by smtp.corp.redhat.com (Postfix) with ESMTP id 62B7F2166B5D for ; Thu, 29 Feb 2024 15:27:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: OgXRPd2OODesqoTbQAs3Gw-1 From: =?UTF-8?q?J=C3=A1n=20Tomko?= To: devel@lists.libvirt.org Subject: [libvirt PATCH 1/5] qemu_capabilities: Add QEMU_CAPS_DISPLAY_RELOAD Date: Thu, 29 Feb 2024 16:23:56 +0100 Message-ID: <9731cd10f3495fce56f44ee0c0f578ceccac46f3.1709220239.git.jtomko@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: 5JIMLDYZ27MSSG7OUJYU7PIULZCNBMMA X-Message-ID-Hash: 5JIMLDYZ27MSSG7OUJYU7PIULZCNBMMA X-MailFrom: jtomko@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1709220818711100001 From: Zheng Yan The 'display-reload' QMP command was introduced in QEMU 6.0.0, so we add a compatible capability to check if target QEMU binary supports it. {"execute":"display-reload", "arguments":{"type": "vnc", "tls-certs": true}} The new QMP refer to: https://gitlab.com/qemu-project/qemu/-/commit/9cc07651655ee86eca41059f5ead8= c4e5607c734 Signed-off-by: Zheng Yan Signed-off-by: J=C3=A1n Tomko Reviewed-by: Michal Privoznik --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + tests/qemucapabilitiesdata/caps_6.0.0_aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_6.0.0_s390x.xml | 1 + tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_6.2.0_aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.xml | 1 + tests/qemucapabilitiesdata/caps_7.0.0_aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml | 1 + tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml | 1 + tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.1.0_s390x.xml | 1 + tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_8.2.0_s390x.xml | 1 + tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 + 26 files changed, 27 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index e383d85920..5bedacb25b 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -704,6 +704,7 @@ VIR_ENUM_IMPL(virQEMUCaps, =20 /* 455 */ "blockjob.backing-mask-protocol", /* QEMU_CAPS_BLOCKJOB_BACK= ING_MASK_PROTOCOL */ + "display-reload", /* QEMU_CAPS_DISPLAY_RELOAD */ ); =20 =20 @@ -1228,6 +1229,7 @@ struct virQEMUCapsStringFlags virQEMUCapsCommands[] = =3D { { "calc-dirty-rate", QEMU_CAPS_CALC_DIRTY_RATE }, { "query-stats", QEMU_CAPS_QUERY_STATS }, { "query-stats-schemas", QEMU_CAPS_QUERY_STATS_SCHEMAS }, + { "display-reload", QEMU_CAPS_DISPLAY_RELOAD }, }; =20 struct virQEMUCapsStringFlags virQEMUCapsMigration[] =3D { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 486a4a6f63..e475773e44 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -683,6 +683,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ =20 /* 455 */ QEMU_CAPS_BLOCKJOB_BACKING_MASK_PROTOCOL, /* backing-mask-protocol of = block-commit/block-stream */ + QEMU_CAPS_DISPLAY_RELOAD, /* 'display-reload' qmp command is supported= */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_6.0.0_aarch64.xml b/tests/qemu= capabilitiesdata/caps_6.0.0_aarch64.xml index a1712233c5..12f634f7b0 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0_aarch64.xml @@ -134,6 +134,7 @@ + 6000000 61700242 v6.0.0 diff --git a/tests/qemucapabilitiesdata/caps_6.0.0_s390x.xml b/tests/qemuca= pabilitiesdata/caps_6.0.0_s390x.xml index 483962c83b..94a8406f0a 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0_s390x.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0_s390x.xml @@ -92,6 +92,7 @@ + 6000000 39100242 qemu-6.0.0-20210517.1.4ff77070.fc33 diff --git a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.0.0_x86_64.xml index 294d6f3124..68ec4ba25a 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml @@ -170,6 +170,7 @@ + 6000000 43100242 v6.0.0 diff --git a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.1.0_x86_64.xml index d32ebf0c3b..d79600bc7b 100644 --- a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml @@ -176,6 +176,7 @@ + 6001000 43100243 v6.1.0 diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_aarch64.xml b/tests/qemu= capabilitiesdata/caps_6.2.0_aarch64.xml index 7a12ed41c4..0071226a08 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0_aarch64.xml @@ -147,6 +147,7 @@ + 6001050 61700244 diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml b/tests/qemuca= pabilitiesdata/caps_6.2.0_ppc64.xml index fe1bffd491..dda56d9296 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml @@ -136,6 +136,7 @@ + 6002000 42900244 v6.2.0 diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.2.0_x86_64.xml index ca9a784c72..3e7835b72e 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml @@ -178,6 +178,7 @@ + 6002000 43100244 v6.2.0 diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.xml b/tests/= qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.xml index bca905987a..b4d242ecbb 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.xml @@ -155,6 +155,7 @@ + 6002092 61700243 v7.0.0-rc2 diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_aarch64.xml b/tests/qemu= capabilitiesdata/caps_7.0.0_aarch64.xml index 9c61b92c1e..493fd052de 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0_aarch64.xml @@ -155,6 +155,7 @@ + 6002092 61700243 v7.0.0-rc2 diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml b/tests/qemuca= pabilitiesdata/caps_7.0.0_ppc64.xml index 047a867766..cc9de20f1d 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml @@ -154,6 +154,7 @@ + 7000000 42900243 v7.0.0 diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.0.0_x86_64.xml index 8caeba3773..c0be80d9bd 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml @@ -184,6 +184,7 @@ + 7000000 43100243 v7.0.0 diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml b/tests/qemuca= pabilitiesdata/caps_7.1.0_ppc64.xml index 536524cf18..b19a1cae39 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml @@ -155,6 +155,7 @@ + 7001000 42900244 v7.1.0 diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.1.0_x86_64.xml index 745776b14b..e03de1a785 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml @@ -188,6 +188,7 @@ + 7001000 43100244 v7.1.0 diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml b/tests/qemucapa= bilitiesdata/caps_7.2.0_ppc.xml index 127b8ee4c2..a51f56b3d8 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml @@ -150,6 +150,7 @@ + 7002000 0 qemu-7.2.0-6.fc37 diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml b/tests/q= emucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml index 4018213189..9e7fa09825 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml @@ -192,6 +192,7 @@ + 7002000 43100245 v7.2.0 diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.2.0_x86_64.xml index e43890fb68..23595e2605 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml @@ -192,6 +192,7 @@ + 7002000 43100245 v7.2.0 diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml b/tests/qemu= capabilitiesdata/caps_8.0.0_riscv64.xml index 8976045015..c8f91178f8 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml @@ -138,6 +138,7 @@ + 7002050 0 v7.2.0-333-g222059a0fc diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.0.0_x86_64.xml index 3095b2fdab..3ee4094a3e 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml @@ -196,6 +196,7 @@ + 8000000 43100244 v8.0.0 diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_s390x.xml b/tests/qemuca= pabilitiesdata/caps_8.1.0_s390x.xml index ea5eec0435..014c5f6226 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_s390x.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_s390x.xml @@ -119,6 +119,7 @@ + 8001000 39100245 v8.1.0 diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.1.0_x86_64.xml index 6375f428a0..574e761c81 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml @@ -198,6 +198,7 @@ + 8001000 43100245 v8.1.0 diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml b/tests/qemu= capabilitiesdata/caps_8.2.0_aarch64.xml index bf5c80c848..f5c132348c 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml @@ -163,6 +163,7 @@ + 8002000 61700246 v8.2.0 diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_s390x.xml b/tests/qemuca= pabilitiesdata/caps_8.2.0_s390x.xml index bd413b61e7..8ca3f0c4e8 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_s390x.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_s390x.xml @@ -119,6 +119,7 @@ + 8002000 39100246 v8.2.0 diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.2.0_x86_64.xml index c7969d9de5..4fba1e9b43 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml @@ -200,6 +200,7 @@ + 8002000 43100246 v8.2.0 diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.0.0_x86_64.xml index 7bf13da1db..9ec81b10ca 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml @@ -202,6 +202,7 @@ + 8002050 43100245 v8.2.0-952-g14639717bf --=20 2.43.2 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org From nobody Fri May 10 01:59:41 2024 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1709221005606341.23879270828945; Thu, 29 Feb 2024 07:36:45 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 8D0C91824; Thu, 29 Feb 2024 10:36:44 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 9E39C1B6A; Thu, 29 Feb 2024 10:28:27 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 3F5A7187D; Thu, 29 Feb 2024 10:27:53 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id C99111877 for ; Thu, 29 Feb 2024 10:27:51 -0500 (EST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-652-qNx0PRa5MzqhH5Eh1AZFtA-1; Thu, 29 Feb 2024 10:27:50 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id F3EDB1066143 for ; Thu, 29 Feb 2024 15:27:49 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.45.226.67]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5B3342166B5E for ; Thu, 29 Feb 2024 15:27:49 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: qNx0PRa5MzqhH5Eh1AZFtA-1 From: =?UTF-8?q?J=C3=A1n=20Tomko?= To: devel@lists.libvirt.org Subject: [libvirt PATCH 2/5] libvirt: Introduce virDomainGraphicsReload API Date: Thu, 29 Feb 2024 16:23:57 +0100 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: 7XFAO7OFG5EYEWYTLR2DCUHH732YA4EZ X-Message-ID-Hash: 7XFAO7OFG5EYEWYTLR2DCUHH732YA4EZ X-MailFrom: jtomko@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1709221007610100001 From: Zheng Yan The new virDomainGraphicsReload API is used to make the domain reload its certificates without restart, and avoid service interruption. Currently, only QEMU VNC TLS certificates are supported, but parameters and flags are also reserved for subsequent scenarios. To reload QEMU VNC TLS certificates as an example, we can call: virDomainGraphicsReload(domain, 0, 0); Then the specified QMP message would be send to QEMU: {"execute": "display-reload", "arguments":{"type": "vnc", "tls-certs": true= }} Signed-off-by: Zheng Yan Signed-off-by: J=C3=A1n Tomko Reviewed-by: Michal Privoznik --- include/libvirt/libvirt-domain.h | 18 ++++++++++++ src/driver-hypervisor.h | 6 ++++ src/libvirt-domain.c | 50 ++++++++++++++++++++++++++++++++ src/libvirt_public.syms | 5 ++++ 4 files changed, 79 insertions(+) diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-dom= ain.h index 30cce85b29..2f5b01bbfe 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -6507,4 +6507,22 @@ int virDomainFDAssociate(virDomainPtr domain, int *fds, unsigned int flags); =20 +/** + * virDomainGraphicsReloadType: + * + * Since: 10.2.0 + */ +typedef enum { + VIR_DOMAIN_GRAPHICS_RELOAD_TYPE_ANY =3D 0, /* reload any graphics know= n to libvirt (Since: 10.2.0) */ + VIR_DOMAIN_GRAPHICS_RELOAD_TYPE_VNC =3D 1, /* reload vnc graphics (Sin= ce: 10.2.0) */ +# ifdef VIR_ENUM_SENTINELS + VIR_DOMAIN_GRAPHICS_RELOAD_TYPE_LAST /* (Since: 10.2.0) */ +# endif +} virDomainGraphicsReloadType; + +int +virDomainGraphicsReload(virDomainPtr domain, + unsigned int type, + unsigned int flags); + #endif /* LIBVIRT_DOMAIN_H */ diff --git a/src/driver-hypervisor.h b/src/driver-hypervisor.h index 5219344b72..4ce8da078d 100644 --- a/src/driver-hypervisor.h +++ b/src/driver-hypervisor.h @@ -1448,6 +1448,11 @@ typedef int int *fds, unsigned int flags); =20 +typedef int +(*virDrvDomainGraphicsReload)(virDomainPtr domain, + unsigned int type, + unsigned int flags); + typedef struct _virHypervisorDriver virHypervisorDriver; =20 /** @@ -1720,4 +1725,5 @@ struct _virHypervisorDriver { virDrvDomainGetMessages domainGetMessages; virDrvDomainStartDirtyRateCalc domainStartDirtyRateCalc; virDrvDomainFDAssociate domainFDAssociate; + virDrvDomainGraphicsReload domainGraphicsReload; }; diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c index 83abad251e..5a45b16275 100644 --- a/src/libvirt-domain.c +++ b/src/libvirt-domain.c @@ -14118,3 +14118,53 @@ virDomainFDAssociate(virDomainPtr domain, virDispatchError(conn); return -1; } + + +/** + * virDomainGraphicsReload: + * @domain: a domain object + * @type: graphics type; from the virDomainGraphicsReloadType enum + * @flags: extra flags; not used yet, so callers should always pass 0 + * + * Reload domain's graphics. + * + * Returns 0 in case of success, -1 otherwise. + * + * Since: 10.2.0 + */ +int +virDomainGraphicsReload(virDomainPtr domain, + unsigned int type, + unsigned int flags) +{ + virConnectPtr conn; + + VIR_DOMAIN_DEBUG(domain, "type=3D%u, flags=3D0x%x", type, flags); + + virResetLastError(); + + virCheckDomainReturn(domain, -1); + conn =3D domain->conn; + virCheckReadOnlyGoto(conn->flags, error); + + if (type >=3D VIR_DOMAIN_GRAPHICS_RELOAD_TYPE_LAST) { + virReportInvalidArg(type, + _("type must be less than %1$d"), + VIR_DOMAIN_GRAPHICS_RELOAD_TYPE_LAST); + goto error; + } + + if (conn->driver->domainGraphicsReload) { + int ret; + ret =3D conn->driver->domainGraphicsReload(domain, type, flags); + if (ret < 0) + goto error; + return ret; + } + + virReportUnsupportedError(); + + error: + virDispatchError(domain->conn); + return -1; +} diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms index 0304b8f824..7a3492d9d7 100644 --- a/src/libvirt_public.syms +++ b/src/libvirt_public.syms @@ -943,4 +943,9 @@ LIBVIRT_10.1.0 { virNodeDeviceUpdate; } LIBVIRT_9.7.0; =20 +LIBVIRT_10.2.0 { + global: + virDomainGraphicsReload; +} LIBVIRT_10.1.0; + # .... define new API here using predicted next version number .... --=20 2.43.2 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org From nobody Fri May 10 01:59:41 2024 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1709221347326111.53234603160922; Thu, 29 Feb 2024 07:42:27 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 3F78F176A; Thu, 29 Feb 2024 10:42:26 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 098CB1C5B; Thu, 29 Feb 2024 10:28:57 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id E6FEF1B2B; Thu, 29 Feb 2024 10:27:58 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 96DC8187D for ; Thu, 29 Feb 2024 10:27:56 -0500 (EST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-330-llk45hjfMIyAGGwmSjxNTg-1; Thu, 29 Feb 2024 10:27:51 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 05BE3886462 for ; Thu, 29 Feb 2024 15:27:51 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.45.226.67]) by smtp.corp.redhat.com (Postfix) with ESMTP id 607442166B5D for ; Thu, 29 Feb 2024 15:27:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: llk45hjfMIyAGGwmSjxNTg-1 From: =?UTF-8?q?J=C3=A1n=20Tomko?= To: devel@lists.libvirt.org Subject: [libvirt PATCH 3/5] remote: implement virDomainGraphicsReload Date: Thu, 29 Feb 2024 16:23:58 +0100 Message-ID: <4ab0fcad9ebb264a20c8a0b7033f2a9ce11e05da.1709220239.git.jtomko@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: CHOZBMCCZRXSVCMY3Y25VUK65PSZHHAM X-Message-ID-Hash: CHOZBMCCZRXSVCMY3Y25VUK65PSZHHAM X-MailFrom: jtomko@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1709221348801100001 Signed-off-by: J=C3=A1n Tomko Reviewed-by: Michal Privoznik --- src/remote/remote_driver.c | 1 + src/remote/remote_protocol.x | 13 ++++++++++++- src/remote_protocol-structs | 6 ++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index f156475bd2..7b73d97b7a 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -7841,6 +7841,7 @@ static virHypervisorDriver hypervisor_driver =3D { .domainStartDirtyRateCalc =3D remoteDomainStartDirtyRateCalc, /* 7.2.0= */ .domainSetLaunchSecurityState =3D remoteDomainSetLaunchSecurityState, = /* 8.0.0 */ .domainFDAssociate =3D remoteDomainFDAssociate, /* 9.0.0 */ + .domainGraphicsReload =3D remoteDomainGraphicsReload, /* 10.2.0 */ }; =20 static virNetworkDriver network_driver =3D { diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x index ffe865965d..8a9b55b7d7 100644 --- a/src/remote/remote_protocol.x +++ b/src/remote/remote_protocol.x @@ -3954,6 +3954,11 @@ struct remote_domain_start_dirty_rate_calc_args { unsigned int flags; }; =20 +struct remote_domain_graphics_reload_args { + remote_nonnull_domain dom; + unsigned int type; + unsigned int flags; +}; =20 struct remote_domain_event_memory_device_size_change_msg { int callbackID; @@ -7036,5 +7041,11 @@ enum remote_procedure { * @acl: node_device:save:!VIR_NODE_DEVICE_UPDATE_AFFECT_CONFIG|VIR_NO= DE_DEVICE_UPDATE_AFFECT_LIVE * @acl: node_device:save:VIR_NODE_DEVICE_UPDATE_AFFECT_CONFIG */ - REMOTE_PROC_NODE_DEVICE_UPDATE =3D 447 + REMOTE_PROC_NODE_DEVICE_UPDATE =3D 447, + + /** + * @generate: both + * @acl: domain:write + */ + REMOTE_PROC_DOMAIN_GRAPHICS_RELOAD =3D 448 }; diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs index ee2ec3e6fa..1175d9ad85 100644 --- a/src/remote_protocol-structs +++ b/src/remote_protocol-structs @@ -3301,6 +3301,11 @@ struct remote_domain_fd_associate_args { remote_nonnull_string name; u_int flags; }; +struct remote_domain_reload_graphics_args { + remote_nonnull_domain dom; + u_int type; + u_int flags; +}; enum remote_procedure { REMOTE_PROC_CONNECT_OPEN =3D 1, REMOTE_PROC_CONNECT_CLOSE =3D 2, @@ -3749,4 +3754,5 @@ enum remote_procedure { REMOTE_PROC_NETWORK_GET_METADATA =3D 445, REMOTE_PROC_NETWORK_EVENT_CALLBACK_METADATA_CHANGE =3D 446, REMOTE_PROC_NODE_DEVICE_UPDATE =3D 447, + REMOTE_PROC_DOMAIN_RELOAD_TLS_CERTIFICATES =3D 448, }; --=20 2.43.2 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org From nobody Fri May 10 01:59:41 2024 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1709221140914209.14039128082584; Thu, 29 Feb 2024 07:39:00 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id D94121C3E; Thu, 29 Feb 2024 10:38:59 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 303E71A6C; Thu, 29 Feb 2024 10:28:50 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id DD16E18FC; Thu, 29 Feb 2024 10:27:54 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id A786E187D for ; Thu, 29 Feb 2024 10:27:53 -0500 (EST) Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-388-ZYer1wKjMx-vIzkk__Nebg-1; Thu, 29 Feb 2024 10:27:52 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B60F42932483 for ; Thu, 29 Feb 2024 15:27:51 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.45.226.67]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3D4D12166B33 for ; Thu, 29 Feb 2024 15:27:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: ZYer1wKjMx-vIzkk__Nebg-1 From: =?UTF-8?q?J=C3=A1n=20Tomko?= To: devel@lists.libvirt.org Subject: [libvirt PATCH 4/5] qemu: implement qemuDomainGraphicsReload Date: Thu, 29 Feb 2024 16:23:59 +0100 Message-ID: <063648af1ffb7d576eb498563f8f07752443e583.1709220239.git.jtomko@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: D57O4BA2E4TMXXMFWJEKW42NJHA7NQNZ X-Message-ID-Hash: D57O4BA2E4TMXXMFWJEKW42NJHA7NQNZ X-MailFrom: jtomko@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1709221142018100001 From: Zheng Yan The 'display-reload' QMP command had been introduced from QEMU 6.0.0: https://gitlab.com/qemu-project/qemu/-/commit/9cc07651655ee86eca41059f5ead8= c4e5607c734 Currently it only supports reloading TLS certificates for VNC. https://issues.redhat.com/browse/RHEL-16333 Signed-off-by: Zheng Yan Signed-off-by: J=C3=A1n Tomko Reviewed-by: Michal Privoznik --- src/qemu/qemu_driver.c | 54 ++++++++++++++++++++++++++++++++++++ src/qemu/qemu_monitor.c | 10 +++++++ src/qemu/qemu_monitor.h | 5 ++++ src/qemu/qemu_monitor_json.c | 23 +++++++++++++++ src/qemu/qemu_monitor_json.h | 4 +++ 5 files changed, 96 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 448e6b1591..22e9f743cb 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -19932,6 +19932,59 @@ qemuDomainFDAssociate(virDomainPtr domain, return ret; } =20 +static int +qemuDomainGraphicsReload(virDomainPtr domain, + unsigned int type, + unsigned int flags) +{ + int ret =3D -1; + virDomainObj *vm =3D NULL; + qemuDomainObjPrivate *priv; + + if (!(vm =3D qemuDomainObjFromDomain(domain))) + return -1; + + if (virDomainGraphicsReloadEnsureACL(domain->conn, vm->def)) + goto cleanup; + + virCheckFlagsGoto(0, cleanup); + + if (type =3D=3D VIR_DOMAIN_GRAPHICS_RELOAD_TYPE_ANY) { + size_t i; + for (i =3D 0; i < vm->def->ngraphics; i++) { + if (vm->def->graphics[i]->type =3D=3D VIR_DOMAIN_GRAPHICS_TYPE= _VNC) + break; + } + if (i =3D=3D vm->def->ngraphics) { + ret =3D 0; + goto cleanup; + } + } + + if (virDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0) + goto cleanup; + + if (!virDomainObjIsActive(vm)) { + virReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("domain is not running")); + goto endjob; + } + + priv =3D vm->privateData; + + qemuDomainObjEnterMonitor(vm); + + ret =3D qemuMonitorDisplayReload(priv->mon, "vnc", true); + + qemuDomainObjExitMonitor(vm); + + endjob: + virDomainObjEndJob(vm); + + cleanup: + virDomainObjEndAPI(&vm); + return ret; +} =20 static virHypervisorDriver qemuHypervisorDriver =3D { .name =3D QEMU_DRIVER_NAME, @@ -20182,6 +20235,7 @@ static virHypervisorDriver qemuHypervisorDriver =3D= { .domainStartDirtyRateCalc =3D qemuDomainStartDirtyRateCalc, /* 7.2.0 */ .domainSetLaunchSecurityState =3D qemuDomainSetLaunchSecurityState, /*= 8.0.0 */ .domainFDAssociate =3D qemuDomainFDAssociate, /* 9.0.0 */ + .domainGraphicsReload =3D qemuDomainGraphicsReload, /* 10.2.0 */ }; =20 =20 diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 0f29fb02b4..34e2ccab97 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -4501,3 +4501,13 @@ qemuMonitorGetStatsByQOMPath(virJSONValue *arr, =20 return NULL; } + +int +qemuMonitorDisplayReload(qemuMonitor *mon, + const char *type, + bool tlsCerts) +{ + QEMU_CHECK_MONITOR(mon); + + return qemuMonitorJSONDisplayReload(mon, type, tlsCerts); +} diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 981c609e9f..6e81945201 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -1581,3 +1581,8 @@ qemuMonitorExtractQueryStats(virJSONValue *info); virJSONValue * qemuMonitorGetStatsByQOMPath(virJSONValue *arr, char *qom_path); + +int +qemuMonitorDisplayReload(qemuMonitor *mon, + const char *type, + bool tlsCerts); diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 7aab34c7c4..eb84a3d938 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -8873,3 +8873,26 @@ qemuMonitorJSONQueryStats(qemuMonitor *mon, =20 return virJSONValueObjectStealArray(reply, "return"); } + +int qemuMonitorJSONDisplayReload(qemuMonitor *mon, + const char *type, + bool tlsCerts) +{ + g_autoptr(virJSONValue) reply =3D NULL; + g_autoptr(virJSONValue) cmd =3D NULL; + + cmd =3D qemuMonitorJSONMakeCommand("display-reload", + "s:type", type, + "b:tls-certs", tlsCerts, + NULL); + if (!cmd) + return -1; + + if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0) + return -1; + + if (qemuMonitorJSONCheckError(cmd, reply) < 0) + return -1; + + return 0; +} diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index ed0027c118..9684660d86 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -825,3 +825,7 @@ qemuMonitorJSONQueryStats(qemuMonitor *mon, qemuMonitorQueryStatsTargetType target, char **vcpus, GPtrArray *providers); + +int qemuMonitorJSONDisplayReload(qemuMonitor *mon, + const char *type, + bool tlsCerts); --=20 2.43.2 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org From nobody Fri May 10 01:59:41 2024 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1709221253093689.3626025862573; Thu, 29 Feb 2024 07:40:53 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 91C571DE4; Thu, 29 Feb 2024 10:40:51 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id E1D171E5D; Thu, 29 Feb 2024 10:28:51 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 08493188C; Thu, 29 Feb 2024 10:27:56 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 257C51877 for ; Thu, 29 Feb 2024 10:27:55 -0500 (EST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-679-6c2M-MG8NnyCZdtiMwbhUw-1; Thu, 29 Feb 2024 10:27:52 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A25BA868A02 for ; Thu, 29 Feb 2024 15:27:52 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.45.226.67]) by smtp.corp.redhat.com (Postfix) with ESMTP id 212FB2166B5E for ; Thu, 29 Feb 2024 15:27:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: 6c2M-MG8NnyCZdtiMwbhUw-1 From: =?UTF-8?q?J=C3=A1n=20Tomko?= To: devel@lists.libvirt.org Subject: [libvirt PATCH 5/5] virsh: Introduce domdisplay-reload command Date: Thu, 29 Feb 2024 16:24:00 +0100 Message-ID: <1b166a8d8513a5d932f4380f5c9d57279a855aee.1709220240.git.jtomko@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: DO3AXDFT4HVSOEW2K2PHMJ4WYLJDHX5A X-Message-ID-Hash: DO3AXDFT4HVSOEW2K2PHMJ4WYLJDHX5A X-MailFrom: jtomko@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1709221254420100001 From: Zheng Yan Introduce the domdisplay-reload command to make the domain reload its graphics certificates #virsh domdisplay-reload --type Signed-off-by: Zheng Yan Signed-off-by: J=C3=A1n Tomko Reviewed-by: Michal Privoznik --- docs/manpages/virsh.rst | 15 ++++++++++++++ tools/virsh-domain.c | 45 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst index 8224aec8c3..115b802c45 100644 --- a/docs/manpages/virsh.rst +++ b/docs/manpages/virsh.rst @@ -1783,6 +1783,21 @@ included in the URI. If *--all* is specified, then a= ll show all possible graphical displays, for a VM could have more than one graphical displays. =20 =20 +domdisplay-reload +----------------- + +**Syntax:** + +:: + + domdisplay-reload [[--type] ] + +Reload the domain's graphical display. This reloads its TLS certificates +without restarting the domain. ``type`` can be any constant from the +`virDomainGraphicsReloadType` enum. By default any supported type is reloa= ded +(so far only VNC). + + domfsfreeze ----------- =20 diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index e69d14a6aa..d3e28f38f4 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -13801,6 +13801,45 @@ cmdDomDirtyRateCalc(vshControl *ctl, const vshCmd = *cmd) return true; } =20 +/** + * "domdisplay-reload" command + */ +static const vshCmdInfo info_domdisplay_reload[] =3D { + {.name =3D "help", + .data =3D N_("Reload domain's graphics display certificates") + }, + {.name =3D "desc", + .data =3D N_("Reload domain's graphics display certificates") + }, + {.name =3D NULL} +}; + +static const vshCmdOptDef opts_domdisplay_reload[] =3D { + VIRSH_COMMON_OPT_DOMAIN_FULL(0), + {.name =3D "type", + .type =3D VSH_OT_INT, + .help =3D N_("graphics display type") + }, + {.name =3D NULL} +}; + +static bool +cmdDomdisplayReload(vshControl *ctl, const vshCmd *cmd) +{ + g_autoptr(virshDomain) dom =3D NULL; + unsigned int type =3D 0; + + if (!(dom =3D virshCommandOptDomain(ctl, cmd, NULL))) + return false; + + if (vshCommandOptUInt(ctl, cmd, "type", &type) < 0) + return false; + + if (virDomainGraphicsReload(dom, type, 0) < 0) + return false; + + return true; +} =20 const vshCmdDef domManagementCmds[] =3D { {.name =3D "attach-device", @@ -14465,5 +14504,11 @@ const vshCmdDef domManagementCmds[] =3D { .info =3D info_dom_fd_associate, .flags =3D 0 }, + {.name =3D "domdisplay-reload", + .handler =3D cmdDomdisplayReload, + .opts =3D opts_domdisplay_reload, + .info =3D info_domdisplay_reload, + .flags =3D 0 + }, {.name =3D NULL} }; --=20 2.43.2 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org