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 <pkrempa(a)redhat.com>
---
src/qemu/qemu_hotplug.c | 29 +++++++++++++++++++++++++++++
tests/qemumonitorjsontest.c | 6 ------
2 files changed, 29 insertions(+), 6 deletions(-)
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':{}}}");
--
2.46.0