diff --git a/tools/configure_tempest.sh b/tools/configure_tempest.sh index 6ba301f704..0eacc4a7ab 100755 --- a/tools/configure_tempest.sh +++ b/tools/configure_tempest.sh @@ -2,10 +2,22 @@ # # configure_tempest.sh - Build a tempest configuration file from devstack +echo "**************************************************" +echo "Configuring Tempest" +echo "**************************************************" + +# This script exits on an error so that errors don't compound and you see +# only the first error that occured. +set -o errexit + +# Print the commands being run so that we can see the command that triggers +# an error. It is also useful for following allowing as the install occurs. +set -o xtrace + function usage { echo "$0 - Build tempest.conf" echo "" - echo "Usage: $0 [configdir]" + echo "Usage: $0" exit 1 } @@ -13,21 +25,6 @@ if [ "$1" = "-h" ]; then usage fi -# Clean up any resources that may be in use -cleanup() { - set +o errexit - - # Mop up temporary files - if [ -n "$CONFIG_INI_TMP" -a -e "$CONFIG_INI_TMP" ]; then - rm -f $CONFIG_INI_TMP - fi - - # 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) @@ -47,39 +44,16 @@ if [ ! -e $TOP_DIR/openrc ]; then exit 1 fi -# Source params. openrc sources stackrc which sources localrc +# Source params source $TOP_DIR/openrc -# Set defaults not configured by stackrc -TENANT=${TENANT:-admin} -USERNAME=${USERNAME:-admin} -IDENTITY_HOST=${IDENTITY_HOST:-$HOST_IP} -IDENTITY_PORT=${IDENTITY_PORT:-5000} -IDENTITY_API_VERSION=${IDENTITY_API_VERSION:-2.0} - # Where Openstack code lives DEST=${DEST:-/opt/stack} TEMPEST_DIR=$DEST/tempest - -CONFIG_DIR=${1:-$TEMPEST_DIR/etc} -CONFIG_INI=$CONFIG_DIR/config.ini +CONFIG_DIR=$TEMPEST_DIR/etc TEMPEST_CONF=$CONFIG_DIR/tempest.conf -if [ ! -f $DEST/.ramdisk ]; then - # Process network configuration vars - GUEST_NETWORK=${GUEST_NETWORK:-1} - GUEST_RECREATE_NET=${GUEST_RECREATE_NET:-yes} - - GUEST_IP=${GUEST_IP:-192.168.$GUEST_NETWORK.50} - GUEST_CIDR=${GUEST_CIDR:-$GUEST_IP/24} - GUEST_NETMASK=${GUEST_NETMASK:-255.255.255.0} - GUEST_GATEWAY=${GUEST_GATEWAY:-192.168.$GUEST_NETWORK.1} - GUEST_MAC=${GUEST_MAC:-"02:16:3e:07:69:`printf '%02X' $GUEST_NETWORK`"} - GUEST_RAM=${GUEST_RAM:-1524288} - GUEST_CORES=${GUEST_CORES:-1} -fi - # Use the GUEST_IP unless an explicit IP is set by ``HOST_IP`` HOST_IP=${HOST_IP:-$GUEST_IP} # Use the first IP if HOST_IP still is not set @@ -87,58 +61,42 @@ if [ ! -n "$HOST_IP" ]; then HOST_IP=`LC_ALL=C /sbin/ifconfig | grep -m 1 'inet addr:'| cut -d: -f2 | awk '{print $1}'` fi -RABBIT_HOST=${RABBIT_HOST:-localhost} - -# Glance connection info. Note the port must be specified. -GLANCE_HOSTPORT=${GLANCE_HOSTPORT:-$HOST_IP:9292} -set `echo $GLANCE_HOSTPORT | tr ':' ' '` -GLANCE_HOST=$1 -GLANCE_PORT=$2 - -# Set up downloaded images -# Defaults to use first image - -IMAGE_DIR="" -IMAGE_NAME="" -for imagedir in $TOP_DIR/files/images/*; do - KERNEL="" - RAMDISK="" - IMAGE="" - IMAGE_RAMDISK="" - KERNEL=$(for f in "$imagedir/"*-vmlinuz*; do - [ -f "$f" ] && echo "$f" && break; done; true) - [ -n "$KERNEL" ] && ln -sf $KERNEL $imagedir/kernel - RAMDISK=$(for f in "$imagedir/"*-initrd*; do - [ -f "$f" ] && echo "$f" && break; done; true) - [ -n "$RAMDISK" ] && ln -sf $RAMDISK $imagedir/ramdisk && \ - IMAGE_RAMDISK="ari_location = $imagedir/ramdisk" - IMAGE=$(for f in "$imagedir/"*.img; do - [ -f "$f" ] && echo "$f" && break; done; true) - if [ -n "$IMAGE" ]; then - ln -sf $IMAGE $imagedir/disk - # Save the first image directory that contains a disk image link - if [ -z "$IMAGE_DIR" ]; then - IMAGE_DIR=$imagedir - IMAGE_NAME=$(basename ${IMAGE%.img}) - fi - fi +# Glance should already contain images to be used in tempest +# testing. Here we simply look for images stored in Glance +# and set the appropriate variables for use in the tempest config +# We ignore ramdisk and kernel images and set the IMAGE_UUID to +# the first image returned and set IMAGE_UUID_ALT to the second, +# if there is more than one returned... +IMAGE_LINES=`glance index` +IFS="$(echo -e "\n\r")" +IMAGES="" +for line in $IMAGE_LINES; do + IMAGES="$IMAGES `echo $line | grep -v "^\(ID\|--\)" | grep -v "\(aki\|ari\)" | cut -d' ' -f1`" done -if [[ -n "$IMAGE_NAME" ]]; then - # Get the image UUID - IMAGE_UUID=$(nova image-list | grep " $IMAGE_NAME " | cut -d'|' -f2) - # Strip spaces off - IMAGE_UUID=$(echo $IMAGE_UUID) +# Create array of image UUIDs... +IFS=" " +IMAGES=($IMAGES) +NUM_IMAGES=${#IMAGES[*]} +echo "Found $NUM_IMAGES images" +if [[ $NUM_IMAGES -eq 0 ]]; then + echo "Found no valid images to use!" + exit 1 +fi +IMAGE_UUID=${IMAGES[0]} +IMAGE_UUID_ALT=$IMAGE_UUID +if [[ $NUM_IMAGES -gt 1 ]]; then + IMAGE_UUID_ALT=${IMAGES[1]} fi # Create tempest.conf from tempest.conf.tpl - if [[ ! -r $TEMPEST_CONF ]]; then cp $TEMPEST_CONF.tpl $TEMPEST_CONF fi IDENTITY_USE_SSL=${IDENTITY_USE_SSL:-False} -TEMPEST_IDENTITY_HOST=${IDENTITY_HOST:-127.0.0.1} -TEMPEST_IDENTITY_API_VERSION="v2.0" # Note: need v for now... +IDENTITY_HOST=${IDENTITY_HOST:-127.0.0.1} +IDENTITY_PORT=${IDENTITY_PORT:-5000} +IDENTITY_API_VERSION="v2.0" # Note: need v for now... # TODO(jaypipes): This is dumb and needs to be removed # from the Tempest configuration file entirely... IDENTITY_PATH=${IDENTITY_PATH:-tokens} @@ -157,10 +115,6 @@ ALT_USERNAME=$OS_USERNAME ALT_PASSWORD=$OS_PASSWORD ALT_TENANT_NAME=$OS_TENANT_NAME -# TODO(jaypipes): Support multiple images instead of plopping -# the IMAGE_UUID into both the image_ref and image_ref_alt slots -IMAGE_UUID_ALT=$IMAGE_UUID - # TODO(jaypipes): Support configurable flavor refs here... FLAVOR_REF=1 FLAVOR_REF_ALT=2 @@ -179,9 +133,9 @@ BUILD_TIMEOUT=600 sed -e " s,%IDENTITY_USE_SSL%,$IDENTITY_USE_SSL,g; - s,%IDENTITY_HOST%,$TEMPEST_IDENTITY_HOST,g; + s,%IDENTITY_HOST%,$IDENTITY_HOST,g; s,%IDENTITY_PORT%,$IDENTITY_PORT,g; - s,%IDENTITY_API_VERSION%,$TEMPEST_IDENTITY_API_VERSION,g; + s,%IDENTITY_API_VERSION%,$IDENTITY_API_VERSION,g; s,%IDENTITY_PATH%,$IDENTITY_PATH,g; s,%IDENTITY_STRATEGY%,$IDENTITY_STRATEGY,g; s,%USERNAME%,$OS_USERNAME,g; @@ -207,90 +161,8 @@ sed -e " echo "Created tempest configuration file:" cat $TEMPEST_CONF -echo "\n\n" -# Create config.ini - -CONFIG_INI_TMP=$(mktemp $CONFIG_INI.XXXXXX) -if [ "$UPLOAD_LEGACY_TTY" ]; then - cat >$CONFIG_INI_TMP <$CONFIG_INI_TMP <>$CONFIG_INI_TMP <