Ensure cinder-ceph installs its prerequisites

The charm has been assuming that the principle charm will install
the packages this charm needs to run. This is not always the case
so the change forces the charm to install what it needs.

Change-Id: I1a394bd9f0a008a403d36ba5d7332b7fb5659006
Closes-Bug: #1754007
This commit is contained in:
Liam Young 2018-03-20 09:01:35 +00:00
parent 1a956ebf73
commit d6ef6b317d
3 changed files with 22 additions and 2 deletions

View File

@ -67,7 +67,7 @@ hooks = Hooks()
CONFIGS = register_configs()
@hooks.hook('install')
@hooks.hook('install.real')
def install():
status_set('maintenance', 'Executing pre-install')
execd_preinstall()

View File

@ -1 +0,0 @@
cinder_hooks.py

20
hooks/install Executable file
View File

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

1
hooks/install.real Symbolic link
View File

@ -0,0 +1 @@
cinder_hooks.py