On Wed, Jan 29, 2025 at 05:40:40PM +0400, marcandre.lureau(a)redhat.com wrote:
From: Marc-André Lureau <marcandre.lureau(a)redhat.com>
Wire the external server RDP support with QEMU.
Check the configuration, allocate a port, start the process
and set the credentials.
Signed-off-by: Marc-André Lureau <marcandre.lureau(a)redhat.com>
---
docs/formatdomain.rst | 25 ++++--
src/conf/domain_conf.h | 1 +
src/qemu/qemu_extdevice.c | 46 +++++++++--
src/qemu/qemu_hotplug.c | 49 ++++++++++-
src/qemu/qemu_hotplug.h | 1 +
src/qemu/qemu_process.c | 167 ++++++++++++++++++++++++++++++++++----
6 files changed, 257 insertions(+), 32 deletions(-)
+ if (!virDomainDefHasDBus(vm->def, false)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("qemu-rdp support requires a D-Bus bus graphics
device."));
+ return -1;
+ }
IMHO this is not the correct way to model it.
Use of DBus is an internal impl detail of the RDP backend that is
being configured. Users shouldn't have to know that - they should
just be able to request 'RDP' alone for the <graphics> type.
Consider if we wanted to provide a non-integrated VNC server for
QEMU. We wouldn't do that by requiring use of a <graphics type=dbus>
alongside the <graphics type=vnc>, as that config has the distinct
meaning of requiring VNC and DBus in parallel.
Where we have a choice of underlying implementations, we would
typically have something like a <backend type="qemu|dbus"/>
as a child element to select between them.
With regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|