mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-02 01:45:17 +00:00
qemu: command: move qemuBuildBootCommandLine validation to qemu_domain.c
Move the boot validation being done by qemuBuildBootCommandLine() to to a new qemuDomainDefValidateBoot() function. This new function is called by qemuDomainDefValidate(), allowing boot validation in domain define time. Tests were adapted to consider the new caps being needed in this earlier stage. Reviewed-by: Cole Robinson <crobinso@redhat.com> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
This commit is contained in:
parent
3b32de2297
commit
7be4bfd25f
@ -6336,28 +6336,13 @@ qemuBuildBootCommandLine(virCommandPtr cmd,
|
||||
}
|
||||
|
||||
if (def->os.bios.rt_set) {
|
||||
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_REBOOT_TIMEOUT)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("reboot timeout is not supported "
|
||||
"by this QEMU binary"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
virBufferAsprintf(&boot_buf,
|
||||
"reboot-timeout=%d,",
|
||||
def->os.bios.rt_delay);
|
||||
}
|
||||
|
||||
if (def->os.bm_timeout_set) {
|
||||
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPLASH_TIMEOUT)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("splash timeout is not supported "
|
||||
"by this QEMU binary"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (def->os.bm_timeout_set)
|
||||
virBufferAsprintf(&boot_buf, "splash-time=%u,", def->os.bm_timeout);
|
||||
}
|
||||
|
||||
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BOOT_STRICT))
|
||||
virBufferAddLit(&boot_buf, "strict=on,");
|
||||
|
@ -5495,6 +5495,32 @@ qemuDomainDefValidatePM(const virDomainDef *def,
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
qemuDomainDefValidateBoot(const virDomainDef *def,
|
||||
virQEMUCapsPtr qemuCaps)
|
||||
{
|
||||
if (def->os.bios.rt_set) {
|
||||
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_REBOOT_TIMEOUT)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("reboot timeout is not supported "
|
||||
"by this QEMU binary"));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (def->os.bm_timeout_set) {
|
||||
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPLASH_TIMEOUT)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("splash timeout is not supported "
|
||||
"by this QEMU binary"));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
qemuDomainDefValidate(const virDomainDef *def,
|
||||
void *opaque)
|
||||
@ -5614,6 +5640,9 @@ qemuDomainDefValidate(const virDomainDef *def,
|
||||
if (qemuDomainDefValidatePM(def, qemuCaps) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (qemuDomainDefValidateBoot(def, qemuCaps) < 0)
|
||||
goto cleanup;
|
||||
|
||||
/* QEMU 2.7 (detected via the availability of query-hotpluggable-cpus)
|
||||
* enforces stricter rules than previous versions when it comes to guest
|
||||
* CPU topology. Verify known constraints are respected */
|
||||
|
@ -844,7 +844,7 @@ mymain(void)
|
||||
DO_TEST("boot-menu-enable", NONE);
|
||||
DO_TEST("boot-menu-enable-with-timeout",
|
||||
QEMU_CAPS_SPLASH_TIMEOUT);
|
||||
DO_TEST_FAILURE("boot-menu-enable-with-timeout", NONE);
|
||||
DO_TEST_PARSE_ERROR("boot-menu-enable-with-timeout", NONE);
|
||||
DO_TEST_PARSE_ERROR("boot-menu-enable-with-timeout-invalid", NONE);
|
||||
DO_TEST("boot-menu-disable", NONE);
|
||||
DO_TEST("boot-menu-disable-drive", NONE);
|
||||
@ -860,7 +860,7 @@ mymain(void)
|
||||
|
||||
DO_TEST("reboot-timeout-disabled", QEMU_CAPS_REBOOT_TIMEOUT);
|
||||
DO_TEST("reboot-timeout-enabled", QEMU_CAPS_REBOOT_TIMEOUT);
|
||||
DO_TEST_FAILURE("reboot-timeout-enabled", NONE);
|
||||
DO_TEST_PARSE_ERROR("reboot-timeout-enabled", NONE);
|
||||
|
||||
DO_TEST("bios",
|
||||
QEMU_CAPS_DEVICE_ISA_SERIAL,
|
||||
|
@ -251,13 +251,13 @@ mymain(void)
|
||||
QEMU_CAPS_DEVICE_IOH3420,
|
||||
QEMU_CAPS_ICH9_AHCI);
|
||||
DO_TEST("boot-multi", NONE);
|
||||
DO_TEST("boot-menu-enable-with-timeout", NONE);
|
||||
DO_TEST("boot-menu-enable-with-timeout", QEMU_CAPS_SPLASH_TIMEOUT);
|
||||
DO_TEST("boot-menu-disable", NONE);
|
||||
DO_TEST("boot-menu-disable-with-timeout", NONE);
|
||||
DO_TEST("boot-order", NONE);
|
||||
|
||||
DO_TEST("reboot-timeout-enabled", NONE);
|
||||
DO_TEST("reboot-timeout-disabled", NONE);
|
||||
DO_TEST("reboot-timeout-enabled", QEMU_CAPS_REBOOT_TIMEOUT);
|
||||
DO_TEST("reboot-timeout-disabled", QEMU_CAPS_REBOOT_TIMEOUT);
|
||||
|
||||
DO_TEST("clock-utc", NONE);
|
||||
DO_TEST("clock-localtime", NONE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user