Milan Zamazal has uploaded a new change for review. Change subject: virt: Set timeout on boot menu ......................................................................
virt: Set timeout on boot menu The default timeout for boot menu (3 s) is too short for some scenarios, e.g. with network delays. Although the best way to handle boot menu is to run a VM in paused mode, we can change the timeout to make boot menu better available even on regular runs. So this patch sets the boot menu timeout to 10 s and makes the value configurable. Change-Id: I0f3501e8500e366e785f5a8ddfdf78fd34c997a2 Bug-Url: https://bugzilla.redhat.com/1324375 Signed-off-by: Milan Zamazal <mzama...@redhat.com> --- M lib/vdsm/config.py.in M tests/vmTests.py M vdsm/virt/vmxml.py 3 files changed, 38 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/93/56393/1 diff --git a/lib/vdsm/config.py.in b/lib/vdsm/config.py.in index e058527..1cba4bf 100644 --- a/lib/vdsm/config.py.in +++ b/lib/vdsm/config.py.in @@ -237,6 +237,9 @@ ('migration_create_timeout', '600', 'Time in seconds defining how long we are going to wait for ' 'create migration response.'), + + ('boot_menu_timeout', '10', + 'Boot menu timeout in seconds.'), ]), # Section: [rpc] diff --git a/tests/vmTests.py b/tests/vmTests.py index 6a9f90f..c4dc571 100644 --- a/tests/vmTests.py +++ b/tests/vmTests.py @@ -62,6 +62,7 @@ from vdsm import host from vdsm import utils from vdsm import libvirtconnection +from vdsm.config import config from monkeypatch import MonkeyPatch, MonkeyPatchScope from testlib import namedTemporaryDir from testValidation import slowtest @@ -159,7 +160,7 @@ <os> <type arch="x86_64" machine="pc">hvm</type> <smbios mode="sysinfo"/> - <bootmenu enable="yes"/> + <bootmenu enable="yes" timeout="10000"/> </os>""", """ <os> <type arch="x86_64" machine="pc">hvm</type> @@ -168,7 +169,7 @@ <os> <type arch="x86_64" machine="pc">hvm</type> <smbios mode="sysinfo"/> - <bootmenu enable="yes"/> + <bootmenu enable="yes" timeout="10000"/> </os>""", """ <os> <type arch="x86_64" machine="pc">hvm</type> @@ -178,7 +179,7 @@ <type arch="x86_64" machine="pc">hvm</type> <cmdline>console=ttyS0 1</cmdline> <smbios mode="sysinfo"/> - <bootmenu enable="yes"/> + <bootmenu enable="yes" timeout="10000"/> </os>""", """ <os> <type arch="x86_64" machine="pc">hvm</type> @@ -192,6 +193,29 @@ xml = find_xml_element(domxml.dom.toxml(), './os') self.assertXMLEqual(xml, osXML) + def testOSXMLBootMenuTimeout(self): + orig_config_getint = config.getint + + def fake_config_getint(*args): + if args == ('vars', 'boot_menu_timeout',): + return 20 + else: + return orig_config_getint(*args) + + with MonkeyPatchScope([(config, 'getint', fake_config_getint)]): + conf = {'bootMenuEnable': 'true'} + conf.update(self.conf) + domxml = vmxml.Domain(conf, self.log, cpuarch.X86_64) + domxml.appendOs() + xml = find_xml_element(domxml.dom.toxml(), './os') + osxml = """ + <os> + <type arch="x86_64" machine="pc">hvm</type> + <smbios mode="sysinfo"/> + <bootmenu enable="yes" timeout="20000"/> + </os>""" + self.assertXMLEqual(xml, osxml) + def testOSXMLX86_64(self): expectedXMLs = [""" <os> diff --git a/vdsm/virt/vmxml.py b/vdsm/virt/vmxml.py index 9cb663a..c951d42 100644 --- a/vdsm/virt/vmxml.py +++ b/vdsm/virt/vmxml.py @@ -26,6 +26,7 @@ from vdsm import constants from vdsm import cpuarch from vdsm import utils +from vdsm.config import config METADATA_VM_TUNE_URI = 'http://ovirt.org/vm/tune/1.0' METADATA_VM_TUNE_ELEMENT = 'qos' @@ -298,7 +299,13 @@ oselem.appendChildWithArgs('smbios', mode='sysinfo') if utils.tobool(self.conf.get('bootMenuEnable', False)): - oselem.appendChildWithArgs('bootmenu', enable='yes') + timeout = config.getint('vars', 'boot_menu_timeout') * 1000 + if timeout < 0: + timeout = 0 + elif timeout > 65535: + timeout = 65535 + oselem.appendChildWithArgs('bootmenu', enable='yes', + timeout=unicode(timeout)) if use_serial_console and cpuarch.is_x86(self.arch): oselem.appendChildWithArgs('bios', useserial='yes') -- To view, visit https://gerrit.ovirt.org/56393 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0f3501e8500e366e785f5a8ddfdf78fd34c997a2 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Milan Zamazal <mzama...@redhat.com> _______________________________________________ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches