Update devstack's Tempest integration

Split build_ci_config.sh into:
* tools/build_tempest.sh - checks out Tempest and installs prereqs
* tools/configure_tempest.sh - creates tempest.conf from devstack

Change-Id: I22f40226afb617a5a6e32f2631b07d5509f10b13
diff --git a/tools/build_tempest.sh b/tools/build_tempest.sh
new file mode 100755
index 0000000..aa44766
--- /dev/null
+++ b/tools/build_tempest.sh
@@ -0,0 +1,85 @@
+#!/usr/bin/env bash
+#
+# build_tempest.sh - Checkout and prepare a Tempest repo
+#                    (https://github.com/openstack/tempest.git)
+
+function usage {
+    echo "$0 - Check out and prepare a Tempest repo"
+    echo ""
+    echo "Usage: $0"
+    exit 1
+}
+
+if [ "$1" = "-h" ]; then
+    usage
+fi
+
+# Clean up any resources that may be in use
+cleanup() {
+    set +o errexit
+
+    # Kill ourselves to signal any calling process
+    trap 2; kill -2 $$
+}
+
+trap cleanup SIGHUP SIGINT SIGTERM SIGQUIT EXIT
+
+# Keep track of the current directory
+TOOLS_DIR=$(cd $(dirname "$0") && pwd)
+TOP_DIR=`cd $TOOLS_DIR/..; pwd`
+
+# Abort if localrc is not set
+if [ ! -e $TOP_DIR/localrc ]; then
+    echo "You must have a localrc with ALL necessary passwords and configuration defined before proceeding."
+    echo "See stack.sh for required passwords."
+    exit 1
+fi
+
+# Source params
+source ./stackrc
+
+# Where Openstack code lives
+DEST=${DEST:-/opt/stack}
+
+TEMPEST_DIR=$DEST/tempest
+
+DIST_NAME=${DIST_NAME:-oneiric}
+
+# git clone only if directory doesn't exist already.  Since ``DEST`` might not
+# be owned by the installation user, we create the directory and change the
+# ownership to the proper user.
+function git_clone {
+
+    GIT_REMOTE=$1
+    GIT_DEST=$2
+    GIT_BRANCH=$3
+
+    # do a full clone only if the directory doesn't exist
+    if [ ! -d $GIT_DEST ]; then
+        git clone $GIT_REMOTE $GIT_DEST
+        cd $2
+        # This checkout syntax works for both branches and tags
+        git checkout $GIT_BRANCH
+    elif [[ "$RECLONE" == "yes" ]]; then
+        # if it does exist then simulate what clone does if asked to RECLONE
+        cd $GIT_DEST
+        # set the url to pull from and fetch
+        git remote set-url origin $GIT_REMOTE
+        git fetch origin
+        # remove the existing ignored files (like pyc) as they cause breakage
+        # (due to the py files having older timestamps than our pyc, so python
+        # thinks the pyc files are correct using them)
+        find $GIT_DEST -name '*.pyc' -delete
+        git checkout -f origin/$GIT_BRANCH
+        # a local branch might not exist
+        git branch -D $GIT_BRANCH || true
+        git checkout -b $GIT_BRANCH
+    fi
+}
+
+# Install tests and prerequisites
+sudo PIP_DOWNLOAD_CACHE=/var/cache/pip pip install --use-mirrors `cat $TOP_DIR/files/pips/tempest`
+
+git_clone $TEMPEST_REPO $TEMPEST_DIR $TEMPEST_BRANCH
+
+trap - SIGHUP SIGINT SIGTERM SIGQUIT EXIT