From: Peter Krempa Date: Tue, 17 Sep 2024 12:53:54 +0000 (+0200) Subject: qemu: Move check for chardev backends which can't be hotplugged out of the monitor X-Git-Tag: v10.8.0-rc1~47 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d897ad2b8944b8ea251572e778fbd889a1ea8a19;p=thirdparty%2Flibvirt.git qemu: Move check for chardev backends which can't be hotplugged out of the monitor The upcoming refactor of the monitor code will make the hotplug code paths use the same generator we have for commandline -chardev backends which doesn't refuse to format certain backends which can't be hotplugged. To prepare for this we add a check to qemuHotplugChardevAttach() refusing such hotplug and remove 'qemumonitorjsontest' test cases which will not make sense any more. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 75b97cf736..a58c1446e9 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -243,6 +243,35 @@ qemuHotplugChardevAttach(qemuMonitor *mon, const char *alias, virDomainChrSourceDef *def) { + switch ((virDomainChrType) def->type) { + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_PTY: + case VIR_DOMAIN_CHR_TYPE_FILE: + case VIR_DOMAIN_CHR_TYPE_DEV: + case VIR_DOMAIN_CHR_TYPE_UNIX: + case VIR_DOMAIN_CHR_TYPE_TCP: + case VIR_DOMAIN_CHR_TYPE_UDP: + case VIR_DOMAIN_CHR_TYPE_SPICEVMC: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_DBUS: + break; + + case VIR_DOMAIN_CHR_TYPE_SPICEPORT: + case VIR_DOMAIN_CHR_TYPE_PIPE: + case VIR_DOMAIN_CHR_TYPE_STDIO: + case VIR_DOMAIN_CHR_TYPE_NMDM: + virReportError(VIR_ERR_OPERATION_FAILED, + _("Hotplug unsupported for char device type '%1$s'"), + virDomainChrTypeToString(def->type)); + return -1; + + case VIR_DOMAIN_CHR_TYPE_LAST: + default: + virReportEnumRangeError(virDomainChrType, def->type); + return -1; + } + return qemuMonitorAttachCharDev(mon, alias, def); } diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index 66d0c127ca..2249787ba7 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -652,12 +652,6 @@ qemuMonitorJSONTestAttachChardev(virDomainXMLOption *xmlopt, "{'id':'alias','backend':{'type':'spicevmc'," "'data':{'type':'vdagent'}}}"); - chr->type = VIR_DOMAIN_CHR_TYPE_PIPE; - CHECK("pipe", true, NULL); - - chr->type = VIR_DOMAIN_CHR_TYPE_STDIO; - CHECK("stdio", true, NULL); - chr->type = VIR_DOMAIN_CHR_TYPE_PTY; CHECK("pty missing path", true, "{'id':'alias','backend':{'type':'pty','data':{}}}");