mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-21 05:29:18 +00:00
qemu: command: move qemuBuildConsoleCommandLine validation to qemu_domain.c
Console validation is currently being done by qemuBuildConsoleCommandLine(). This patch moves it to a new qemuDomainDefValidateConsole() function. This new function is then called by qemuDomainDefValidate(), validating the console in domain define time. Reviewed-by: Cole Robinson <crobinso@redhat.com> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
This commit is contained in:
parent
c19bb8c0cf
commit
f8b8bacd39
@ -8864,12 +8864,6 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManager,
|
||||
|
||||
switch (console->targetType) {
|
||||
case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLP:
|
||||
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_SCLPCONSOLE)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("sclpconsole is not supported in this QEMU binary"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!(devstr = qemuBuildChrChardevStr(logManager, secManager,
|
||||
cmd, cfg, def,
|
||||
console->source,
|
||||
@ -8885,12 +8879,6 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManager,
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLPLM:
|
||||
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_SCLPLMCONSOLE)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("sclplmconsole is not supported in this QEMU binary"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!(devstr = qemuBuildChrChardevStr(logManager, secManager,
|
||||
cmd, cfg, def,
|
||||
console->source,
|
||||
@ -8924,9 +8912,6 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManager,
|
||||
break;
|
||||
|
||||
default:
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unsupported console target type %s"),
|
||||
NULLSTR(virDomainChrConsoleTargetTypeToString(console->targetType)));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
@ -5520,6 +5520,48 @@ qemuDomainDefValidateBoot(const virDomainDef *def,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
qemuDomainDefValidateConsole(const virDomainDef *def,
|
||||
virQEMUCapsPtr qemuCaps)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
/* Explicit console devices */
|
||||
for (i = 0; i < def->nconsoles; i++) {
|
||||
virDomainChrDefPtr console = def->consoles[i];
|
||||
|
||||
switch (console->targetType) {
|
||||
case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLP:
|
||||
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_SCLPCONSOLE)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("sclpconsole is not supported in this QEMU binary"));
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLPLM:
|
||||
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_SCLPLMCONSOLE)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("sclplmconsole is not supported in this QEMU binary"));
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_VIRTIO:
|
||||
case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL:
|
||||
break;
|
||||
|
||||
default:
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unsupported console target type %s"),
|
||||
NULLSTR(virDomainChrConsoleTargetTypeToString(console->targetType)));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
qemuDomainDefValidate(const virDomainDef *def,
|
||||
@ -5717,6 +5759,9 @@ qemuDomainDefValidate(const virDomainDef *def,
|
||||
if (qemuDomainDefValidateNuma(def, qemuCaps) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (qemuDomainDefValidateConsole(def, qemuCaps) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (cfg->vncTLS && cfg->vncTLSx509secretUUID &&
|
||||
!virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_TLS_CREDS_X509)) {
|
||||
for (i = 0; i < def->ngraphics; i++) {
|
||||
|
Loading…
Reference in New Issue
Block a user