system-config/test.sh
James E. Blair efc85a4e62 Add extra [] to puppet apply test
Double [[]] are needed by bash for the regex operator.  Use them
universally for safety.

And make gate-config-puppet-apply-centos6 voting.

Change-Id: I8f245a86381d24d8938df444e0268343b46fe09f
2014-07-07 17:37:57 -07:00

44 lines
1.3 KiB
Bash
Executable File

#!/bin/bash -e
ROOT=$(readlink -fn $(dirname $0))
MODULE_PATH="${ROOT}/modules:/etc/puppet/modules"
if [[ ! -d applytest ]] ; then
mkdir applytest
fi
csplit -sf applytest/puppetapplytest manifests/site.pp '/^$/' {*}
sed -i -e 's/^[^][:space:]$]/#&/g' applytest/puppetapplytest*
sed -i -e 's@hiera(.\([^.]*\).,\([^)]*\))@\2@' applytest/puppetapplytest*
mv applytest/*00 applytest/head # These are the top-level variables defined in site.pp
if [[ `lsb_release -i -s` == 'CentOS' ]]; then
if [[ `lsb_release -r -s` =~ '6' ]]; then
CODENAME='centos6'
fi
elif [[ `lsb_release -i -s` == 'Ubuntu' ]]; then
CODENAME=`lsb_release -c -s`
fi
FOUND=0
for f in `find applytest -name 'puppetapplytest*' -print` ; do
if grep "Node-OS: $CODENAME" $f; then
cat applytest/head $f > $f.final
FOUND=1
fi
done
if [[ $FOUND == "0" ]]; then
echo "No hosts found for node type $CODENAME"
exit 1
fi
grep -v 127.0.1.1 /etc/hosts >/tmp/hosts
HOST=`echo $HOSTNAME |awk -F. '{ print $1 }'`
echo "127.0.1.1 $HOST.openstack.org $HOST" >> /tmp/hosts
sudo mv /tmp/hosts /etc/hosts
find applytest -name 'puppetapplytest*.final' -print0 | \
xargs -0 -P $(nproc) -n 1 -I filearg \
sudo puppet apply --modulepath=${MODULE_PATH} --noop --verbose --debug filearg > /dev/null