Files
charm-ceilometer/hooks/install
Ryan Beisner 554bf0af8e Update pre-install hooks to fail on error
The pre-install operations may fail, yet that failure is not
elevated to the user. This masks the failure and makes early
package install issues difficult to troubleshoot.

If the basic pre-install script fails, the charm should not
proceed to later hooks as the requirements may not be met.

Hashbangs for bash should specify -e (errexit) on all of the
pre-install bash scripts.

Change-Id: Ibea69c2280c58f995152330f8a60f7d1babcf549
Closes-bug: #1815243
Partial-bug: #1815231
2019-02-08 15:46:28 -06:00

26 lines
528 B
Bash
Executable File

#!/bin/bash -e
# Wrapper to deal with newer Ubuntu versions that don't have py2 installed
# by default.
declare -a DEPS=('apt' 'netaddr' 'netifaces' 'pip' 'yaml')
wait_for_dpkg_unlock() {
while $(fuser -s /var/lib/dpkg/lock); do sleep .5;done
}
check_and_install() {
pkg="${1}-${2}"
if ! dpkg -s ${pkg} 2>&1 > /dev/null; then
wait_for_dpkg_unlock
apt-get -y install ${pkg}
fi
}
PYTHON="python"
for dep in ${DEPS[@]}; do
check_and_install ${PYTHON} ${dep}
done
exec ./hooks/install.real