diff options
author | Carlos Goncalves <carlos.goncalves@neclab.eu> | 2016-11-16 08:57:09 +0000 |
---|---|---|
committer | Carlos Goncalves <carlos.goncalves@neclab.eu> | 2016-11-16 09:58:05 +0000 |
commit | dffe8ff7c269af0d8d11593d8aed95f5a9039114 (patch) | |
tree | f837a9e961a8aee6846856b8ff32d1d2410eeb52 /tests/run.sh | |
parent | 69264fa32e7885be44667efa34c0c58cc110f5b6 (diff) |
Introducing common functions
These functions will ease human readability, writing and debugging of
our test codes. Common functions imported from devstack project.
This is series of patches to refactor the test baseline code in what it
will hopefully become more modular, readable and maintainable.
JIRA: DOCTOR-71
Change-Id: Icbd7a1c2b3979081db8e5de3c46d9827ab54d7ca
Signed-off-by: Carlos Goncalves <carlos.goncalves@neclab.eu>
Diffstat (limited to 'tests/run.sh')
-rwxr-xr-x | tests/run.sh | 60 |
1 files changed, 22 insertions, 38 deletions
diff --git a/tests/run.sh b/tests/run.sh index 99e8feff..3c4afc1b 100755 --- a/tests/run.sh +++ b/tests/run.sh @@ -32,6 +32,7 @@ INSTALLER_IP=${INSTALLER_IP:-none} SUPPORTED_INSPECTOR_TYPES="sample congress" INSPECTOR_TYPE=${INSPECTOR_TYPE:-sample} +TOP_DIR=$(cd $(dirname "$0") && pwd) ssh_opts="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" as_doctor_user="--os-username $DOCTOR_USER --os-password $DOCTOR_PW @@ -61,10 +62,7 @@ get_installer_ip() { fi if [[ "$INSTALLER_TYPE" != "local" ]] ; then - if [[ -z "$INSTALLER_IP" ]] ; then - echo "ERROR: no installer ip" - exit 1 - fi + die_if_not_set $LINENO INSTALLER_IP "No installer IP" fi } @@ -190,10 +188,7 @@ get_compute_host_info() { COMPUTE_HOST=$(openstack $as_doctor_user server show $VM_NAME | grep "OS-EXT-SRV-ATTR:host" | awk '{ print $4 }') compute_host_in_undercloud=${COMPUTE_HOST%%.*} - if [[ -z "$COMPUTE_HOST" ]] ; then - echo "ERROR: failed to get compute hostname" - exit 1 - fi + die_if_not_set $LINENO COMPUTE_HOST "Failed to get compute hostname" if [[ "$INSTALLER_TYPE" == "apex" ]] ; then COMPUTE_USER=${COMPUTE_USER:-heat-admin} @@ -211,25 +206,20 @@ get_compute_host_info() { COMPUTE_IP=$(getent hosts "$COMPUTE_HOST" | awk '{ print $1 }') fi - if [[ -z "$COMPUTE_IP" ]]; then - echo "ERROR: Could not resolve $COMPUTE_HOST. Either manually set COMPUTE_IP or enable DNS resolution." - exit 1 - fi + die_if_not_set $LINENO COMPUTE_IP "Could not resolve $COMPUTE_HOST. Either manually set COMPUTE_IP or enable DNS resolution." echo "COMPUTE_HOST=$COMPUTE_HOST" echo "COMPUTE_IP=$COMPUTE_IP" # verify connectivity to target compute host ping -c 1 "$COMPUTE_IP" if [[ $? -ne 0 ]] ; then - echo "ERROR: can not ping to computer host" - exit 1 + die $LINENO "Can not ping to computer host" fi # verify ssh to target compute host ssh $ssh_opts_cpu "$COMPUTE_USER@$COMPUTE_IP" 'exit' if [[ $? -ne 0 ]] ; then - echo "ERROR: can not ssh to computer host" - exit 1 + die $LINENO "Can not ssh to computer host" fi } @@ -246,10 +236,7 @@ get_consumer_ip() { fi echo "CONSUMER_IP=$CONSUMER_IP" - if [[ -z "$CONSUMER_IP" ]]; then - echo "ERROR: Could not get CONSUMER_IP." - exit 1 - fi + die_if_not_set $LINENO CONSUMER_IP "Could not get CONSUMER_IP." } download_image() { @@ -376,10 +363,11 @@ start_inspector() { nova_api_min_version="2.11" nova_api_version=$(openstack congress datasource list | \ grep nova | grep -Po "(?<='api_version': ')[^']*") - [[ -z $nova_api_version ]] && nova_api_version="2.0" + if ! is_set nova_api_version; then + nova_api_version="2.0" + fi if [[ "$nova_api_version" < "$nova_api_min_version" ]]; then - echo "ERROR: Congress Nova datasource API version < $nova_api_min_version ($nova_api_version)" - exit 1 + die $LINENO "Congress Nova datasource API version < $nova_api_min_version ($nova_api_version)" fi openstack congress driver list | grep -q " doctor " openstack congress datasource list | grep -q " doctor " || { @@ -420,10 +408,7 @@ start_consumer() { "fuel node | grep controller | cut -d '|' -f 5|xargs") fi - if [[ -z "$CONTROLLER_IPS" ]]; then - echo "ERROR: Could not get CONTROLLER_IPS." - exit 1 - fi + die_if_not_set $LINENO CONTROLLER_IPS "Could not get CONTROLLER_IPS." for ip in $CONTROLLER_IPS do forward_rule="-R $CONSUMER_PORT:localhost:$CONSUMER_PORT" @@ -463,12 +448,13 @@ wait_for_vm_launch() { sleep 5 return 0 fi - [[ "$state" == "ERROR" ]] && echo "vm state is ERROR" && exit 1 + if [[ "$state" == "ERROR" ]]; then + die $LINENO "vm state is ERROR" + fi count=$(($count+1)) sleep 1 done - echo "ERROR: time out while waiting for vm launch" - exit 1 + die $LINENO "Time out while waiting for VM launch" } inject_failure() { @@ -492,8 +478,7 @@ calculate_notification_time() { detected=$(grep "doctor monitor detected at" monitor.log | awk '{print $5}') notified=$(grep "doctor consumer notified at" consumer.log | awk '{print $5}') if ! grep -q "doctor consumer notified at" consumer.log ; then - echo "ERROR: consumer hasn't received fault notification." - exit 1 + die $LINENO "Consumer hasn't received fault notification." fi echo "$notified $detected" | \ awk '{ @@ -509,14 +494,11 @@ check_host_status() { host_status_line=$(openstack $as_doctor_user --os-compute-api-version 2.16 \ server show $VM_NAME | grep "host_status") host_status=$(echo $host_status_line | awk '{print $4}') - if [ -z "$host_status" ] ; then - echo "ERROR: host_status not reported by: nova show $VM_NAME" - exit 1 - elif [[ "$expected_state" =~ "$host_status" ]] ; then + die_if_not_set $LINENO host_status "host_status not reported by: nova show $VM_NAME" + if [[ "$expected_state" =~ "$host_status" ]] ; then echo "$VM_NAME showing host_status: $host_status" else - echo "ERROR: host_status:$host_status not equal to expected_state: $expected_state" - exit 1 + die $LINENO "host_status:$host_status not equal to expected_state: $expected_state" fi } @@ -560,6 +542,8 @@ echo "Note: doctor/tests/run.sh has been executed." trap cleanup EXIT +source $TOP_DIR/functions-common + echo "preparing test env..." get_installer_ip prepare_ssh_to_cloud |