Sandy Walsh 51bfd3f12a Fix services not starting on first run.
Services now run properly on first run (thanks Joel). Didn't
need to check the changed status of the command after all.

Also, spelling mistake in the playbook launch fixed.

Change-Id: I5b6cb276b066844c934da4ffbd2513a006033214
2014-12-16 07:53:17 -08:00

128 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
echo "StackTach dev env build script"
PACKAGE=false
TOX=false
DEPLOY=false
while getopts pdt opt; do
case $opt in
p)
PACKAGE=true
;;
t)
TOX=true
;;
d)
DEPLOY=true
;;
esac
done
shift $((OPTIND - 1))
DEV_DIR=git
PKG_DIR=dist
SOURCE_DIR=$DEV_DIR
VENV_DIR=.venv
PIPELINE_ENGINE=winchester
if [[ "$PACKAGE" = true ]]
then
SOURCE_DIR=$PKG_DIR
rm -rf $PKG_DIR
rm -rf $VENV_DIR
fi
if [[ -f local.sh ]]; then
source local.sh
fi
if [[ ! -d "$SOURCE_DIR" ]]; then
mkdir $SOURCE_DIR
fi
if [[ ! -d "$VENV_DIR" ]]; then
virtualenv $VENV_DIR
fi
cd $SOURCE_DIR
for file in shoebox simport notigen notification-utils \
stackdistiller quincy quince \
klugman winchester
do
git clone http://git.openstack.org/stackforge/stacktach-$file
done
# We still have some stragglers ...
for file in StackTach/notabene rackerlabs/yagi
do
git clone https://github.com/$file
done
if [[ "$TOX" = true ]]
then
for file in shoebox simport notification-utils \
stackdistiller winchester
do
cd stacktach-$file
set -e
tox
set +e
cd ..
done
fi
cd ..
source ./$VENV_DIR/bin/activate
# Some extra required libs ...
pip install mysql-connector-python --allow-external mysql-connector-python
pip install gunicorn
pip install httpie
pip install librabbitmq
# Needed by pyrax:
pip install pbr
for file in $SOURCE_DIR/*
do
echo "----------------------- $file ------------------------------"
cd $file
rm -rf build dist
python setup.py install
cd ../..
done
(cat yagi.conf.$PIPELINE_ENGINE ; cat yagi.conf.common ) > yagi.conf
if [ $PIPELINE_ENGINE == "winchester" ]
then
winchester_db -c winchester.yaml upgrade head
fi
if [[ "$PACKAGE" = true ]]
then
SHA=$(git log --pretty=format:'%h' -n 1)
mkdir dist
virtualenv --relocatable $VENV_DIR
mv $VENV_DIR dist/stv3
# Fix up the activate script to new location. --relocatable doesn't handle this.
cd dist/stv3/bin
sed -i "s/VIRTUAL_ENV=\".*\"/VIRTUAL_ENV=\"\/opt\/stv3\"/" activate
cd ../..
tar -zcvf ../stacktachv3_$SHA.tar.gz stv3
cd ..
echo "Release tarball in stacktachv3_$SHA.tar.gz"
if [[ "$DEPLOY" == true ]]
then
echo ansible-playbook database.yaml --extra-vars \"tarball_absolute_path=../stacktachv3_$SHA.tar.gz\" -vvv
echo ansible-playbook workers.yaml --extra-vars \"tarball_absolute_path=../stacktachv3_$SHA.tar.gz\" -vvv
echo ansible-playbook api.yaml --extra-vars \"tarball_absolute_path=../stacktachv3_$SHA.tar.gz\" -vvv
fi
else
screen -c screenrc.$PIPELINE_ENGINE
fi