Merge "IBP: add GRUB_RECORDFAIL_TIMEOUT for ubuntu"
This commit is contained in:
commit
b937cf3ccf
@ -351,7 +351,7 @@ title Default (kernel-version)
|
||||
def test_grub1_cfg_kernel_initrd_are_set(self):
|
||||
config = """
|
||||
default=0
|
||||
timeout=5
|
||||
timeout=10
|
||||
title Default (kernel-version-set)
|
||||
kernel /kernel-version-set kernel-params
|
||||
initrd /initrd-version-set
|
||||
@ -361,7 +361,8 @@ title Default (kernel-version-set)
|
||||
with mock.patch(OPEN_FUNCTION_NAME, new=mock_open, create=True):
|
||||
gu.grub1_cfg(kernel='kernel-version-set',
|
||||
initrd='initrd-version-set',
|
||||
chroot='/target', kernel_params='kernel-params')
|
||||
chroot='/target', kernel_params='kernel-params',
|
||||
grub_timeout=10)
|
||||
mock_open.assert_called_once_with('/target/boot/grub/grub.conf', 'wb')
|
||||
mock_open_file = mock_open()
|
||||
mock_open_file.write.assert_called_once_with(config)
|
||||
@ -392,7 +393,9 @@ GRUB_CMDLINE_LINUX="kernel-params-orig"
|
||||
bar"""
|
||||
new_content = """foo
|
||||
GRUB_CMDLINE_LINUX="kernel-params-new"
|
||||
bar"""
|
||||
bar
|
||||
GRUB_RECORDFAIL_TIMEOUT=10
|
||||
"""
|
||||
|
||||
# mock_open = mock.mock_open(read_data=orig_content)
|
||||
with mock.patch(OPEN_FUNCTION_NAME,
|
||||
@ -401,7 +404,8 @@ bar"""
|
||||
mock_open.return_value = mock.MagicMock(spec=file)
|
||||
handle = mock_open.return_value.__enter__.return_value
|
||||
handle.__iter__.return_value = StringIO.StringIO(orig_content)
|
||||
gu.grub2_cfg(kernel_params='kernel-params-new', chroot='/target')
|
||||
gu.grub2_cfg(kernel_params='kernel-params-new', chroot='/target',
|
||||
grub_timeout=10)
|
||||
|
||||
self.assertEqual(
|
||||
mock_open.call_args_list,
|
||||
|
@ -16,12 +16,25 @@ import os
|
||||
import re
|
||||
import shutil
|
||||
|
||||
from oslo.config import cfg
|
||||
|
||||
from fuel_agent import errors
|
||||
from fuel_agent.openstack.common import log as logging
|
||||
from fuel_agent.utils import utils
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
gu_opts = [
|
||||
cfg.IntOpt(
|
||||
'grub_timeout',
|
||||
default=5,
|
||||
help='Timeout in secs for GRUB'
|
||||
),
|
||||
]
|
||||
|
||||
CONF = cfg.CONF
|
||||
CONF.register_opts(gu_opts)
|
||||
|
||||
|
||||
def guess_grub2_conf(chroot=''):
|
||||
for filename in ('/boot/grub/grub.cfg', '/boot/grub2/grub.cfg'):
|
||||
@ -188,7 +201,7 @@ def grub1_stage1(chroot=''):
|
||||
|
||||
|
||||
def grub1_cfg(kernel=None, initrd=None,
|
||||
kernel_params='', chroot=''):
|
||||
kernel_params='', chroot='', grub_timeout=CONF.grub_timeout):
|
||||
|
||||
if not kernel:
|
||||
kernel = guess_kernel(chroot=chroot)
|
||||
@ -197,12 +210,13 @@ def grub1_cfg(kernel=None, initrd=None,
|
||||
|
||||
config = """
|
||||
default=0
|
||||
timeout=5
|
||||
timeout={grub_timeout}
|
||||
title Default ({kernel})
|
||||
kernel /{kernel} {kernel_params}
|
||||
initrd /{initrd}
|
||||
""".format(kernel=kernel, initrd=initrd,
|
||||
kernel_params=kernel_params)
|
||||
kernel_params=kernel_params,
|
||||
grub_timeout=grub_timeout)
|
||||
with open(chroot + '/boot/grub/grub.conf', 'wb') as f:
|
||||
f.write(config)
|
||||
|
||||
@ -216,7 +230,7 @@ def grub2_install(install_devices, chroot=''):
|
||||
utils.execute(*cmd, run_as_root=True, check_exit_code=[0])
|
||||
|
||||
|
||||
def grub2_cfg(kernel_params='', chroot=''):
|
||||
def grub2_cfg(kernel_params='', chroot='', grub_timeout=CONF.grub_timeout):
|
||||
grub_defaults = chroot + guess_grub2_default(chroot=chroot)
|
||||
rekerparams = re.compile(r'^.*GRUB_CMDLINE_LINUX=.*')
|
||||
retimeout = re.compile(r'^.*GRUB_HIDDEN_TIMEOUT=.*')
|
||||
@ -226,8 +240,13 @@ def grub2_cfg(kernel_params='', chroot=''):
|
||||
line = rekerparams.sub(
|
||||
'GRUB_CMDLINE_LINUX="{kernel_params}"'.
|
||||
format(kernel_params=kernel_params), line)
|
||||
line = retimeout.sub('GRUB_HIDDEN_TIMEOUT=5', line)
|
||||
line = retimeout.sub('GRUB_HIDDEN_TIMEOUT={grub_timeout}'.
|
||||
format(grub_timeout=grub_timeout), line)
|
||||
new_content += line
|
||||
# NOTE(agordeev): explicitly add record fail timeout, in order to
|
||||
# prevent user confirmation appearing if unexpected reboot occured.
|
||||
new_content += '\nGRUB_RECORDFAIL_TIMEOUT={grub_timeout}\n'.\
|
||||
format(grub_timeout=grub_timeout)
|
||||
with open(grub_defaults, 'wb') as f:
|
||||
f.write(new_content)
|
||||
cmd = [guess_grub2_mkconfig(chroot), '-o', guess_grub2_conf(chroot)]
|
||||
|
Loading…
x
Reference in New Issue
Block a user