[libvirt PATCH 3/3] qemu: wire up support for VNC power control options
Peter Krempa
pkrempa at redhat.com
Tue Feb 16 14:25:34 UTC 2021
On Tue, Feb 16, 2021 at 14:08:52 +0000, Daniel Berrange wrote:
> This allows the VNC client user to perform a shutdown, reboot and reset
> of the VM from the host side.
>
> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> ---
> src/qemu/qemu_command.c | 9 +++++++++
> tests/qemuxml2argvdata/graphics-vnc-policy.args | 2 +-
> tests/qemuxml2argvdata/graphics-vnc-policy.xml | 2 +-
> tests/qemuxml2argvtest.c | 2 +-
> 4 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index d801018aa2..266cf7332e 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -7700,6 +7700,15 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg,
> /* TODO: Support ACLs later */
> }
>
> + if (graphics->data.vnc.powerControl) {
> + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC_POWER_CONTROL)) {
> + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> + _("VNC power control is not available"));
> + return -1;
> + }
Invoking this check from qemuValidateDomainDeviceDefGraphics will give
you define-time check whether the VM supports this rather than
startup-time.
> + virBufferAddLit(&opt, ",power-control=on");
> + }
So we don't want to be able to explicitly turn this off?
> +
> virCommandAddArg(cmd, "-vnc");
> virCommandAddArgBuffer(cmd, &opt);
> if (graphics->data.vnc.keymap)
[...]
> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
> index db438c5466..b4df042fea 100644
> --- a/tests/qemuxml2argvtest.c
> +++ b/tests/qemuxml2argvtest.c
> @@ -1364,7 +1364,7 @@ mymain(void)
> QEMU_CAPS_VNC,
> QEMU_CAPS_DEVICE_CIRRUS_VGA);
> DO_TEST("graphics-vnc-policy", QEMU_CAPS_VNC,
> - QEMU_CAPS_DEVICE_CIRRUS_VGA);
> + QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_VNC_POWER_CONTROL);
Rather than adding the capability, either convert the test case to
DO_TEST_CAPS_LATEST or add a separate _LATEST() case for it.
> DO_TEST("graphics-vnc-no-listen-attr", QEMU_CAPS_VNC,
> QEMU_CAPS_DEVICE_CIRRUS_VGA);
> DO_TEST("graphics-vnc-remove-generated-socket", QEMU_CAPS_VNC,
> --
> 2.29.2
>
More information about the libvir-list
mailing list