From a5c360176e572795e44aeaaf3abcc863ee071040 Mon Sep 17 00:00:00 2001 From: James Page Date: Tue, 22 Sep 2015 14:33:04 +0100 Subject: [PATCH] Ensure python2 is installed before hook execution --- hooks/ceilometer_hooks.py | 2 +- hooks/install | 21 ++++++++++++++++++++- hooks/install.real | 1 + 3 files changed, 22 insertions(+), 2 deletions(-) mode change 120000 => 100755 hooks/install create mode 120000 hooks/install.real diff --git a/hooks/ceilometer_hooks.py b/hooks/ceilometer_hooks.py index 9428b10..3801977 100755 --- a/hooks/ceilometer_hooks.py +++ b/hooks/ceilometer_hooks.py @@ -62,7 +62,7 @@ hooks = Hooks() CONFIGS = register_configs() -@hooks.hook() +@hooks.hook('install.real') def install(): execd_preinstall() origin = config('openstack-origin') diff --git a/hooks/install b/hooks/install deleted file mode 120000 index c948469..0000000 --- a/hooks/install +++ /dev/null @@ -1 +0,0 @@ -ceilometer_hooks.py \ No newline at end of file diff --git a/hooks/install b/hooks/install new file mode 100755 index 0000000..83a9d3c --- /dev/null +++ b/hooks/install @@ -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') + +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 diff --git a/hooks/install.real b/hooks/install.real new file mode 120000 index 0000000..c948469 --- /dev/null +++ b/hooks/install.real @@ -0,0 +1 @@ +ceilometer_hooks.py \ No newline at end of file