Add removal of grub boot timeouts back in

When we removed the restrict memory grub stuff because hpcloud was no
longer in use we also removed the configuration updates that set the
grub timeout to 0. This can save many seconds per instance boot purely
waiting for grub to timeout and continue booting the host.

Change-Id: I2d79ec4ebd55f927d868e06c8f00cf50f34f3b92
This commit is contained in:
Clark Boylan 2016-03-30 14:54:46 -07:00
parent 290916fed8
commit 90bc24b54f
5 changed files with 76 additions and 0 deletions

View File

@ -0,0 +1,39 @@
#!/bin/bash
# Copyright (C) 2014 Hewlett-Packard Development Company, L.P.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
#
# See the License for the specific language governing permissions and
# limitations under the License.
# This is done in 50 because the vm element has, at 51, an bunch of code
# for properly handling grub. All we need to do here is get our values
# in to the files.
# dib-lint: disable=setu setpipefail
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
set -x
fi
set -e
# Set grub timeout to zero to save boot time.
if [ -f /etc/default/grub ] ; then
sed -i -e 's/^GRUB_TIMEOUT=[0-9]\+/GRUB_TIMEOUT=0/' /etc/default/grub
if which update-grub &> /dev/null ; then
update-grub
else
# If update-grub isn't available, use grub2-mkconfig directly
/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
fi
elif [ -f /boot/grub/grub.conf ] ; then
sed -i -e 's/^timeout=[0-9]\+/timeout=0/' /boot/grub/grub.conf
fi

View File

@ -0,0 +1,31 @@
#!/bin/bash -xe
# Copyright (C) 2014 Hewlett-Packard Development Company, L.P.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
#
# See the License for the specific language governing permissions and
# limitations under the License.
# Set the grub timeout to 0.
if [ -f /etc/default/grub ] ; then
sudo sed -i -e 's/^GRUB_TIMEOUT=[0-9]\+/GRUB_TIMEOUT=0/' \
/etc/default/grub
if which update-grub &> /dev/null ; then
sudo update-grub
else
# If update-grub isn't available, use grub2-mkconfig directly
sudo /usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
fi
elif [ -f /boot/grub/grub.conf ] ; then
sudo sed -i -e 's/^timeout=[0-9]\+/timeout=0/' \
/boot/grub/grub.conf
fi

View File

@ -23,3 +23,5 @@ export THIN='false'
export ALL_MYSQL_PRIVS='true'
./prepare_node.sh "$HOSTNAME"
./fix_grub_timeout.sh

View File

@ -40,3 +40,5 @@ sudo chown -R jenkins:jenkins $TEMPEST_DIR/preseed-streams
# Delete the venv after the script is called
sudo rm -rf /opt/git/subunit2sql-env
./fix_grub_timeout.sh

View File

@ -24,3 +24,5 @@ export THIN='true'
./prepare_node.sh "$HOSTNAME"
sudo -u jenkins -i /opt/nodepool-scripts/prepare_devstack_virt_preview.sh \
"$HOSTNAME"
./fix_grub_timeout.sh