5830e58ab8
Using approach without handling of share servers we have bigger load for volume creation in Cinder using Generic driver. So, reduce amount of threads to avoid errors for Cinder volume creations that appear because of lack of free space. Change-Id: I738dd9837eb6f951899aef091a6aafe8a4a0945b
107 lines
4.5 KiB
Bash
Executable File
107 lines
4.5 KiB
Bash
Executable File
#!/bin/bash -xe
|
|
#
|
|
# 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.
|
|
|
|
# This script is executed inside post_test_hook function in devstack gate.
|
|
# First argument ($1) expects 'multibackend' as value for setting appropriate
|
|
# tempest conf opts, all other values will assume singlebackend installation.
|
|
|
|
sudo chown -R jenkins:stack $BASE/new/tempest
|
|
sudo chown -R jenkins:stack $BASE/data/tempest
|
|
sudo chmod -R o+rx $BASE/new/devstack/files
|
|
|
|
# Import devstack functions 'iniset', 'iniget' and 'trueorfalse'
|
|
source $BASE/new/devstack/functions
|
|
|
|
if [[ "$1" =~ "multibackend" ]]; then
|
|
# if arg $1 has "multibackend", then we assume multibackend installation
|
|
iniset $BASE/new/tempest/etc/tempest.conf share multi_backend True
|
|
|
|
# Set share backends names, they are defined within pre_test_hook
|
|
export BACKENDS_NAMES="LONDON,PARIS"
|
|
else
|
|
export BACKENDS_NAMES="LONDON"
|
|
fi
|
|
iniset $BASE/new/tempest/etc/tempest.conf share backend_names $BACKENDS_NAMES
|
|
|
|
# Set two retries for CI jobs
|
|
iniset $BASE/new/tempest/etc/tempest.conf share share_creation_retry_number 2
|
|
|
|
# Suppress errors in cleanup of resources
|
|
SUPPRESS_ERRORS=${SUPPRESS_ERRORS_IN_CLEANUP:-True}
|
|
iniset $BASE/new/tempest/etc/tempest.conf share suppress_errors_in_cleanup $SUPPRESS_ERRORS
|
|
|
|
# Enable manage/unmanage tests
|
|
RUN_MANILA_MANAGE_TESTS=${RUN_MANILA_MANAGE_TESTS:-True}
|
|
iniset $BASE/new/tempest/etc/tempest.conf share run_manage_unmanage_tests $RUN_MANILA_MANAGE_TESTS
|
|
|
|
if [[ -z "$MULTITENANCY_ENABLED" ]]; then
|
|
# Define whether share drivers handle share servers or not.
|
|
# Requires defined config option 'driver_handles_share_servers'.
|
|
MANILA_CONF=${MANILA_CONF:-/etc/manila/manila.conf}
|
|
NO_SHARE_SERVER_HANDLING_MODES=0
|
|
WITH_SHARE_SERVER_HANDLING_MODES=0
|
|
|
|
# Convert backend names to config groups using lowercase translation
|
|
CONFIG_GROUPS=${BACKENDS_NAMES,,}
|
|
|
|
for CG in ${CONFIG_GROUPS//,/ }; do
|
|
DRIVER_HANDLES_SHARE_SERVERS=$(iniget $MANILA_CONF $CG driver_handles_share_servers)
|
|
if [[ $DRIVER_HANDLES_SHARE_SERVERS == False ]]; then
|
|
NO_SHARE_SERVER_HANDLING_MODES=$((NO_SHARE_SERVER_HANDLING_MODES+1))
|
|
elif [[ $DRIVER_HANDLES_SHARE_SERVERS == True ]]; then
|
|
WITH_SHARE_SERVER_HANDLING_MODES=$((WITH_SHARE_SERVER_HANDLING_MODES+1))
|
|
else
|
|
echo "Config option 'driver_handles_share_servers' either is not defined or \
|
|
defined with improper value - '$DRIVER_HANDLES_SHARE_SERVERS'."
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
if [[ $NO_SHARE_SERVER_HANDLING_MODES -ge 1 && $WITH_SHARE_SERVER_HANDLING_MODES -ge 1 || \
|
|
$NO_SHARE_SERVER_HANDLING_MODES -eq 0 && $WITH_SHARE_SERVER_HANDLING_MODES -eq 0 ]]; then
|
|
echo 'Allowed only same driver modes for all backends to be run with Tempest job.'
|
|
exit 1
|
|
elif [[ $NO_SHARE_SERVER_HANDLING_MODES -ge 1 ]]; then
|
|
iniset $BASE/new/tempest/etc/tempest.conf share multitenancy_enabled False
|
|
elif [[ $WITH_SHARE_SERVER_HANDLING_MODES -ge 1 ]]; then
|
|
iniset $BASE/new/tempest/etc/tempest.conf share multitenancy_enabled True
|
|
else
|
|
echo 'Should never get here. If get, then error occured.'
|
|
exit 1
|
|
fi
|
|
else
|
|
iniset $BASE/new/tempest/etc/tempest.conf share multitenancy_enabled $MULTITENANCY_ENABLED
|
|
fi
|
|
|
|
# let us control if we die or not
|
|
set +o errexit
|
|
cd $BASE/new/tempest
|
|
|
|
export MANILA_TEMPEST_CONCURRENCY=${MANILA_TEMPEST_CONCURRENCY:-12}
|
|
export MANILA_TESTS=${MANILA_TESTS:-'tempest.api.share*'}
|
|
|
|
if [[ "$JOB_NAME" =~ "scenario" ]]; then
|
|
echo "Set test set to scenario only"
|
|
MANILA_TESTS='tempest.scenario.*share*'
|
|
elif [[ "$JOB_NAME" =~ "no-share-servers" ]]; then
|
|
# Using approach without handling of share servers we have bigger load for
|
|
# volume creation in Cinder using Generic driver. So, reduce amount of
|
|
# threads to avoid errors for Cinder volume creations that appear
|
|
# because of lack of free space.
|
|
MANILA_TEMPEST_CONCURRENCY=8
|
|
fi
|
|
|
|
echo "Running tempest manila test suites"
|
|
sudo -H -u jenkins tox -eall $MANILA_TESTS -- --concurrency=$MANILA_TEMPEST_CONCURRENCY
|