183dca0f91
The command to edit tempest.conf should be run as the same user that owns that file. This is causing the scripts to run always with the same backends[1]. [1] http://bit.ly/2juDims Change-Id: Ie865042c052746b5001f6132c159bc32165021a3
95 lines
3.0 KiB
Bash
Executable File
95 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright (c) 2016, Hitachi, Erlon Cruz <erlon.cruz@fit-tecnologia.org.br>
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
set -x
|
|
export TEMPEST_USER=${TEMPEST_USER:-tempest}
|
|
chmod +w $BASE/new/tempest
|
|
cd $BASE/new/tempest
|
|
source $BASE/new/devstack/functions
|
|
source $BASE/new/devstack/functions-common
|
|
source $WORKSPACE/devstack-gate/functions.sh
|
|
source $BASE/new/cinder/tools/hooks/utils.sh
|
|
export TEMPEST_CONFIG=$BASE/new/tempest/etc/tempest.conf
|
|
|
|
# Disable bash verbose so we have a cleaner output. Also, exit on error must
|
|
# be disable as we will run several tests that can return error.
|
|
set +x +e
|
|
|
|
function configure_tempest_backends {
|
|
be1=$1
|
|
be2=$2
|
|
echo "Configuring tempest conf in ${TEMPEST_CONFIG}"
|
|
iniset -sudo $TEMPEST_CONFIG 'volume' 'backend_names' ${be1},${be2}
|
|
|
|
}
|
|
|
|
BACKENDS='lvm ceph nfs'
|
|
RGEX="(.*test_volume_retype_with_migration.*|.*test_volume_migrate_attached.*)"
|
|
final_result=0
|
|
final_message='Migrations tests finished SUCCESSFULLY!'
|
|
declare -A TEST_RESULTS
|
|
start_time=`date +%s`
|
|
for be1 in ${BACKENDS}; do
|
|
for be2 in ${BACKENDS}; do
|
|
if [ ${be1} != ${be2} ]; then
|
|
configure_tempest_backends ${be1} ${be2}
|
|
echo "============================================================"
|
|
echo "Testing multibackend features: ${be1} vs ${be2}"
|
|
echo "============================================================"
|
|
run_tempest "${be1} vs ${be2}" ${RGEX}
|
|
result=$?
|
|
# If any of the test fail, we keep running but return failure as
|
|
# the final result
|
|
if [ ${result} -ne 0 ]; then
|
|
TEST_RESULTS[${be1},${be2}]="FAILURE"
|
|
final_message='Migrations tests FAILED!'
|
|
final_result=1
|
|
else
|
|
TEST_RESULTS[${be1},${be2}]="SUCCESS"
|
|
fi
|
|
fi
|
|
done
|
|
done
|
|
end_time=`date +%s`
|
|
elapsed=$(expr $(expr ${end_time} - ${start_time}) / 60)
|
|
|
|
# Print the results
|
|
num_rows=$(echo $BACKENDS | wc -w)
|
|
fmt=" %15s"
|
|
echo "============================================================"
|
|
echo " ${final_message} In ${elapsed} minutes."
|
|
echo "============================================================"
|
|
|
|
printf "$fmt" ''
|
|
for be1 in ${BACKENDS}; do
|
|
printf "$fmt" ${be1}
|
|
done
|
|
echo
|
|
for be1 in ${BACKENDS}; do
|
|
printf "$fmt" ${be1}
|
|
for be2 in ${BACKENDS}; do
|
|
if [ ${be1} == ${be2} ]; then
|
|
printf "$fmt" '---'
|
|
else
|
|
printf "$fmt" ${TEST_RESULTS[${be1},${be2}]}
|
|
fi
|
|
done
|
|
echo
|
|
done
|
|
|
|
exit ${final_result}
|