| #!/bin/bash | 
 |  | 
 | # exit on error to stop unexpected errors | 
 | set -o errexit | 
 | set -o xtrace | 
 |  | 
 | EXECUTOR_NUMBER=$1 | 
 | CONFIGURATION=$2 | 
 | ADAPTER=$3 | 
 | RC=$4 | 
 |  | 
 | function usage() { | 
 |     echo "Usage: $0 - Build a test configuration" | 
 |     echo "" | 
 |     echo "$0 [EXECUTOR_NUMBER] [CONFIGURATION] [ADAPTER] [RC (optional)]" | 
 |     exit 1 | 
 | } | 
 |  | 
 | # Validate inputs | 
 | if [[ "$EXECUTOR_NUMBER" = "" || "$CONFIGURATION" = ""  || "$ADAPTER" = "" ]]; then | 
 |     usage | 
 | fi | 
 |  | 
 | # This directory | 
 | CUR_DIR=$(cd $(dirname "$0") && pwd) | 
 |  | 
 | # devstack directory | 
 | cd ../../.. | 
 | TOP_DIR=$(pwd) | 
 |  | 
 | # Deps | 
 | apt-get install -y --force-yes libvirt-bin || true | 
 |  | 
 | # Name test instance based on executor | 
 | BASE_NAME=executor-`printf "%02d" $EXECUTOR_NUMBER` | 
 | GUEST_NAME=$BASE_NAME.$ADAPTER | 
 | virsh list | grep $BASE_NAME | cut -d " " -f1 | xargs -n 1 virsh destroy || true | 
 | virsh net-list | grep $BASE_NAME | cut -d " " -f1 | xargs -n 1 virsh net-destroy || true | 
 |  | 
 | # Configure localrc | 
 | cat <<EOF >localrc | 
 | RECLONE=yes | 
 | GUEST_NETWORK=$EXECUTOR_NUMBER | 
 | GUEST_NAME=$GUEST_NAME | 
 | FLOATING_RANGE=192.168.$EXECUTOR_NUMBER.128/27 | 
 | GUEST_CORES=1 | 
 | GUEST_RAM=12574720 | 
 | MYSQL_PASSWORD=chicken | 
 | RABBIT_PASSWORD=chicken | 
 | SERVICE_TOKEN=chicken | 
 | SERVICE_PASSWORD=chicken | 
 | ADMIN_PASSWORD=chicken | 
 | USERNAME=admin | 
 | TENANT=admin | 
 | NET_NAME=$BASE_NAME | 
 | ACTIVE_TIMEOUT=45 | 
 | BOOT_TIMEOUT=45 | 
 | $RC | 
 | EOF | 
 | cd tools | 
 | sudo ./build_uec.sh | 
 |  | 
 | # Make the address of the instances available to test runners | 
 | echo HEAD=`cat /var/lib/libvirt/dnsmasq/$BASE_NAME.leases | cut -d " " -f3` > $TOP_DIR/addresses |