mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-04-01 20:05:19 +00:00
qemu: add 'rdp' capability if qemu-rdp is available
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
parent
e008d229f4
commit
f5e5a9bec9
@ -6475,7 +6475,8 @@ virQEMUCapsFillDomainDeviceDiskCaps(virQEMUCaps *qemuCaps,
|
||||
|
||||
|
||||
void
|
||||
virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCaps *qemuCaps,
|
||||
virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUDriverConfig *cfg,
|
||||
virQEMUCaps *qemuCaps,
|
||||
virDomainCapsDeviceGraphics *dev)
|
||||
{
|
||||
dev->supported = VIR_TRISTATE_BOOL_YES;
|
||||
@ -6489,8 +6490,14 @@ virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCaps *qemuCaps,
|
||||
VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SPICE);
|
||||
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_EGL_HEADLESS))
|
||||
VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS);
|
||||
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DISPLAY_DBUS))
|
||||
VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_DBUS);
|
||||
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DISPLAY_DBUS)) {
|
||||
VIR_DOMAIN_CAPS_ENUM_SET(dev->type,
|
||||
VIR_DOMAIN_GRAPHICS_TYPE_DBUS);
|
||||
if (qemuRdpAvailable(cfg->qemuRdpName)) {
|
||||
VIR_DOMAIN_CAPS_ENUM_SET(dev->type,
|
||||
VIR_DOMAIN_GRAPHICS_TYPE_RDP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -6974,7 +6981,7 @@ virQEMUCapsFillDomainCaps(virQEMUDriverConfig *cfg,
|
||||
virQEMUCapsFillDomainCPUCaps(qemuCaps, hostarch, domCaps);
|
||||
virQEMUCapsFillDomainMemoryBackingCaps(qemuCaps, memoryBacking);
|
||||
virQEMUCapsFillDomainDeviceDiskCaps(qemuCaps, domCaps->machine, disk);
|
||||
virQEMUCapsFillDomainDeviceGraphicsCaps(qemuCaps, graphics);
|
||||
virQEMUCapsFillDomainDeviceGraphicsCaps(cfg, qemuCaps, graphics);
|
||||
virQEMUCapsFillDomainDeviceVideoCaps(qemuCaps, video);
|
||||
virQEMUCapsFillDomainDeviceHostdevCaps(qemuCaps, hostdev);
|
||||
virQEMUCapsFillDomainDeviceRNGCaps(qemuCaps, rng);
|
||||
|
@ -876,7 +876,8 @@ int virQEMUCapsFillDomainCaps(virQEMUDriverConfig *cfg,
|
||||
void virQEMUCapsFillDomainMemoryBackingCaps(virQEMUCaps *qemuCaps,
|
||||
virDomainCapsMemoryBacking *memoryBacking);
|
||||
|
||||
void virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCaps *qemuCaps,
|
||||
void virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUDriverConfig *cfg,
|
||||
virQEMUCaps *qemuCaps,
|
||||
virDomainCapsDeviceGraphics *dev);
|
||||
|
||||
void virQEMUCapsFillDomainDeviceVideoCaps(virQEMUCaps *qemuCaps,
|
||||
|
@ -411,3 +411,14 @@ qemuRdpSetCredentials(virDomainObj *vm,
|
||||
"SetCredentials",
|
||||
args);
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
qemuRdpAvailable(const char *helper)
|
||||
{
|
||||
g_autoptr(qemuRdp) rdp = NULL;
|
||||
|
||||
rdp = qemuRdpNewForHelper(helper);
|
||||
|
||||
return rdp && qemuRdpHasFeature(rdp, QEMU_RDP_FEATURE_DBUS_ADDRESS);
|
||||
}
|
||||
|
@ -42,6 +42,8 @@ struct _qemuRdp {
|
||||
guint leaving_id;
|
||||
};
|
||||
|
||||
bool qemuRdpAvailable(const char *helper);
|
||||
|
||||
qemuRdp *qemuRdpNew(void);
|
||||
|
||||
qemuRdp *qemuRdpNewForHelper(const char *helper);
|
||||
|
@ -4513,9 +4513,10 @@ qemuValidateDomainDeviceDefGraphics(const virDomainGraphicsDef *graphics,
|
||||
virQEMUDriver *driver,
|
||||
virQEMUCaps *qemuCaps)
|
||||
{
|
||||
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
|
||||
virDomainCapsDeviceGraphics graphicsCaps = { 0 };
|
||||
|
||||
virQEMUCapsFillDomainDeviceGraphicsCaps(qemuCaps, &graphicsCaps);
|
||||
virQEMUCapsFillDomainDeviceGraphicsCaps(cfg, qemuCaps, &graphicsCaps);
|
||||
|
||||
if (!VIR_DOMAIN_CAPS_ENUM_IS_SET(graphicsCaps.type, graphics->type)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
|
@ -697,6 +697,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1558,6 +1558,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1666,6 +1666,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1666,6 +1666,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -253,6 +253,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
</enum>
|
||||
|
@ -697,6 +697,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1558,6 +1558,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1050,6 +1050,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1849,6 +1849,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1050,6 +1050,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1017,6 +1017,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1797,6 +1797,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1017,6 +1017,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1022,6 +1022,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1022,6 +1022,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1502,6 +1502,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1502,6 +1502,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -65,6 +65,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1022,6 +1022,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1104,6 +1104,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1597,6 +1597,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1104,6 +1104,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1363,6 +1363,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1619,6 +1619,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -342,6 +342,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
</enum>
|
||||
|
@ -1363,6 +1363,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1364,6 +1364,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -72,6 +72,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>dbus</value>
|
||||
</enum>
|
||||
|
@ -1585,6 +1585,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -120,6 +120,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
</enum>
|
||||
|
@ -76,6 +76,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>dbus</value>
|
||||
</enum>
|
||||
|
@ -120,6 +120,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
</enum>
|
||||
|
@ -69,6 +69,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -342,6 +342,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
</enum>
|
||||
|
@ -1364,6 +1364,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1364,6 +1364,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1514,6 +1514,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -60,6 +60,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1364,6 +1364,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1500,6 +1500,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -82,6 +82,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1619,6 +1619,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -71,6 +71,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -205,6 +205,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
</enum>
|
||||
|
@ -1500,6 +1500,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -118,6 +118,7 @@
|
||||
<graphics supported='yes'>
|
||||
<enum name='type'>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>dbus</value>
|
||||
</enum>
|
||||
</graphics>
|
||||
|
@ -697,6 +697,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1558,6 +1558,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1666,6 +1666,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1666,6 +1666,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -205,6 +205,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
</enum>
|
||||
|
@ -697,6 +697,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -1558,6 +1558,7 @@
|
||||
<enum name='type'>
|
||||
<value>sdl</value>
|
||||
<value>vnc</value>
|
||||
<value>rdp</value>
|
||||
<value>spice</value>
|
||||
<value>egl-headless</value>
|
||||
<value>dbus</value>
|
||||
|
@ -52,6 +52,12 @@ bool virTPMHasSwtpm(void)
|
||||
}
|
||||
|
||||
|
||||
/* Enough to tell capabilities code that qemu-rdp is usable */
|
||||
bool qemuRdpAvailable(const char *helper G_GNUC_UNUSED)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
virTPMSwtpmSetupCapsGet(virTPMSwtpmSetupFeature cap)
|
||||
|
Loading…
x
Reference in New Issue
Block a user