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 <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2024-09-17 14:53:54 +02:00
parent b8129d2530
commit d897ad2b89
2 changed files with 29 additions and 6 deletions

View File

@ -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);
}

View File

@ -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':{}}}");