ui: add support for remote power control to VNC server

The "XVP" (Xen VNC Proxy) extension defines a mechanism for a VNC client
to issue power control requests to trigger graceful shutdown, reboot, or
hard reset.

This option is not enabled by default, since we cannot assume that users
with VNC access implicitly have administrator access to the guest OS.

Thus is it enabled with a boolean "power-control" option e.g.

   -vnc :1,power-control=on

While, QEMU can easily support shutdown and reset, there's no easy way
to wire up reboot support at this time. In theory it could be done by
issuing a shutdown, followed by a reset, but there's no convenient
wiring for such a pairing in QEMU. It also isn't possible to have the
VNC server directly talk to QEMU guest agent, since the agent chardev is
typically owned by an external mgmt app.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>

[ kraxel: rebase to master  ]
[ kraxel: add missing break ]

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2020-12-11 16:08:25 +00:00 committed by Gerd Hoffmann
parent 521534df57
commit 7b5fa0b583
3 changed files with 76 additions and 0 deletions

View file

@ -2222,6 +2222,10 @@ SRST
transmission. When not using an -audiodev argument, this option
must be omitted, otherwise is must be present and specify a
valid audiodev.
``power-control``
Permit the remote client to issue shutdown, reboot or reset power
control requests.
ERST
ARCHHEADING(, QEMU_ARCH_I386)