We support VNC for containers to have the same interface with VMs. At this moment it just renders linux text console. Of course we don't pass any physical devices and don't emulate virtual devices. Our VNC server renders text from terminal master and sends input events from VNC client to terminal. So add special video type VIR_DOMAIN_VIDEO_TYPE_PARALLELS for these pseudo-devices. Signed-off-by: Dmitry Guryanov <dguryanov@xxxxxxxxxxxxx> --- src/conf/domain_conf.c | 3 ++- src/conf/domain_conf.h | 1 + src/parallels/parallels_sdk.c | 19 +++++++++++++++++++ src/qemu/qemu_command.c | 6 ++++-- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 1763305..0ae45e1 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -500,7 +500,8 @@ VIR_ENUM_IMPL(virDomainVideo, VIR_DOMAIN_VIDEO_TYPE_LAST, "vmvga", "xen", "vbox", - "qxl") + "qxl", + "parallels") VIR_ENUM_IMPL(virDomainInput, VIR_DOMAIN_INPUT_TYPE_LAST, "mouse", diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 0b2f1c9..ab11c0b 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1326,6 +1326,7 @@ typedef enum { VIR_DOMAIN_VIDEO_TYPE_XEN, VIR_DOMAIN_VIDEO_TYPE_VBOX, VIR_DOMAIN_VIDEO_TYPE_QXL, + VIR_DOMAIN_VIDEO_TYPE_PARALLELS, /* pseudo device for VNC in containers */ VIR_DOMAIN_VIDEO_TYPE_LAST } virDomainVideoType; diff --git a/src/parallels/parallels_sdk.c b/src/parallels/parallels_sdk.c index 50b8a72..8116691 100644 --- a/src/parallels/parallels_sdk.c +++ b/src/parallels/parallels_sdk.c @@ -997,6 +997,25 @@ prlsdkAddVNCInfo(PRL_HANDLE sdkdom, virDomainDefPtr def) if (VIR_APPEND_ELEMENT(def->graphics, def->ngraphics, gr) < 0) goto error; + if (IS_CT(def)) { + virDomainVideoDefPtr video; + if (VIR_ALLOC(video) < 0) + goto error; + video->type = virDomainVideoDefaultType(def); + if (video->type < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("cannot determine default video type")); + VIR_FREE(video); + goto error; + } + video->vram = virDomainVideoDefaultRAM(def, video->type); + video->heads = 1; + if (VIR_ALLOC_N(def->videos, 1) < 0) { + virDomainVideoDefFree(video); + goto error; + } + def->videos[def->nvideos++] = video; + } return 0; error: diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 3f0df58..5103599 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -112,7 +112,8 @@ VIR_ENUM_IMPL(qemuVideo, VIR_DOMAIN_VIDEO_TYPE_LAST, "vmware", "", /* no arg needed for xen */ "", /* don't support vbox */ - "qxl"); + "qxl", + "" /* don't support parallels */); VIR_ENUM_DECL(qemuDeviceVideo) @@ -122,7 +123,8 @@ VIR_ENUM_IMPL(qemuDeviceVideo, VIR_DOMAIN_VIDEO_TYPE_LAST, "vmware-svga", "", /* no device for xen */ "", /* don't support vbox */ - "qxl-vga"); + "qxl-vga", + "" /* don't support parallels */); VIR_ENUM_DECL(qemuSoundCodec) -- 2.1.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list