Refactoring post_test_hook.sh

post_test_hook is working fine without any problems, however as
options are added over time the script is hard to understand.
Make clean post_test_hook.sh

Change-Id: Ieee0be4e94f237c81529e6e664f0edf9d47297fc
This commit is contained in:
Woohyung Han 2019-10-10 12:51:53 +09:00
parent c0c0d4db8b
commit 274a8eef83
1 changed files with 91 additions and 99 deletions

View File

@ -14,8 +14,65 @@
# This script is executed inside post_test_hook function in devstack gate.
# Backend configuration: singlebackend only, not used yet.
MANILA_BACKEND_TYPE=${1:?}
# Driver type: glusterfs, glusterfs-nfs, glusterfs-heketi,
# glusterfs-nfs-heketi, glusterfs-native
GLUSTERFS_MANILA_DRIVER_TYPE=${2:?}
# Test type: api or scenario
MANILA_TEST_TYPE=${3:?}
if [[ $MANILA_TEST_TYPE == 'api' ]]; then
export MANILA_TESTS='manila_tempest_tests.tests.api'
export MANILA_TEMPEST_CONCURRENCY=12
elif [[ $MANILA_TEST_TYPE == 'scenario' ]]; then
export MANILA_TESTS='manila_tempest_tests.tests.scenario'
export MANILA_TEMPEST_CONCURRENCY=8
else
echo "Invalid MANILA_TEST_TYPE = ${MANILA_TEST_TYPE}"
exit 1
fi
case "$GLUSTERFS_MANILA_DRIVER_TYPE" in
glusterfs-native)
BACKEND_NAME="GLUSTERNATIVE"
ENABLE_PROTOCOLS="glusterfs"
STORAGE_PROTOCOL="glusterfs"
ENABLE_RO_ACCESS_LEVEL_FOR_PROTOCOLS=""
ENABLE_IP_RULES_FOR_PROTOCOLS=""
SHARE_ENABLE_CERT_RULES_FOR_PROTOCOLS="glusterfs"
CAPABILITY_SNAPSHOT_SUPPORT=True
CAPABILITY_CREATE_SHARE_FROM_SNAPSHOT_SUPPORT=True
RUN_MANILA_SNAPSHOT_TESTS=True
;;
glusterfs|glusterfs-nfs)
BACKEND_NAME="GLUSTERFS"
ENABLE_PROTOCOLS="nfs"
STORAGE_PROTOCOL="NFS"
ENABLE_RO_ACCESS_LEVEL_FOR_PROTOCOLS=""
ENABLE_IP_RULES_FOR_PROTOCOLS="nfs"
SHARE_ENABLE_CERT_RULES_FOR_PROTOCOLS=""
RUN_MANILA_EXTEND_TESTS=True
RUN_MANILA_SHRINK_TESTS=True
;;
glusterfs-heketi|glusterfs-nfs-heketi)
BACKEND_NAME="GLUSTERFSHEKETI"
# TODO: enable glusterfs-heketi ci
;;
*)
echo "Invalid GLUSTERFS_MANILA_DRIVER_TYPE = \
${GLUSTERFS_MANILA_DRIVER_TYPE}"
exit 1
esac
TEMPEST_CONFIG=$BASE/new/tempest/etc/tempest.conf
# Start setup Tempest
sudo chown -R $USER:stack $BASE/new/tempest
sudo chown -R $USER:stack $BASE/data/tempest
sudo chmod -R o+rx $BASE/new/devstack/files
@ -28,107 +85,32 @@ for env_var in ${DEVSTACK_LOCAL_CONFIG// / }; do
export $env_var;
done
# What backend configuration: singlebackend or multibackend
MANILA_BACKEND_TYPE=$1
MANILA_BACKEND_TYPE=${MANILA_BACKEND_TYPE:-singlebackend}
iniset $TEMPEST_CONFIG share backend_names ${BACKEND_NAME:?}
iniset $TEMPEST_CONFIG share enable_protocols ${ENABLE_PROTOCOLS:?}
iniset $TEMPEST_CONFIG share storage_protocol ${STORAGE_PROTOCOL:?}
iniset $TEMPEST_CONFIG share enable_ro_access_level_for_protocols \
${ENABLE_RO_ACCESS_LEVEL_FOR_PROTOCOLS?}
iniset $TEMPEST_CONFIG share enable_ip_rules_for_protocols \
${ENABLE_IP_RULES_FOR_PROTOCOLS?}
iniset $TEMPEST_CONFIG share enable_cert_rules_for_protocols \
${SHARE_ENABLE_CERT_RULES_FOR_PROTOCOLS?}
# What driver to test: glusterfs, glusterfs-nfs, glusterfs-heketi,
# glusterfs-nfs-heketi, glusterfs-native
GLUSTERFS_MANILA_DRIVER_TYPE=$2
GLUSTERFS_MANILA_DRIVER_TYPE=${GLUSTERFS_MANILA_DRIVER_TYPE:-glusterfs-nfs}
iniset $TEMPEST_CONFIG share capability_snapshot_support \
${CAPABILITY_SNAPSHOT_SUPPORT:-False}
iniset $TEMPEST_CONFIG share capability_create_share_from_snapshot_support \
${CAPABILITY_CREATE_SHARE_FROM_SNAPSHOT_SUPPORT:-False}
# What test to run: api or scenario
MANILA_TEST_TYPE=$3
MANILA_TEST_TYPE=${MANILA_TEST_TYPE:-api}
if [[ "$GLUSTERFS_MANILA_DRIVER_TYPE" == "glusterfs-native" ]]; then
local BACKEND_NAME="GLUSTERNATIVE"
iniset $TEMPEST_CONFIG share enable_protocols glusterfs
iniset $TEMPEST_CONFIG share storage_protocol glusterfs
# Disable tempest config option that enables creation of 'ip' type access
# rules by default during tempest test runs.
iniset $TEMPEST_CONFIG share enable_ip_rules_for_protocols
iniset $TEMPEST_CONFIG share enable_cert_rules_for_protocols glusterfs
iniset $TEMPEST_CONFIG share capability_snapshot_support True
iniset $TEMPEST_CONFIG share capability_create_share_from_snapshot_support true
# ro access_level is not supported by the driver.
iniset $TEMPEST_CONFIG share enable_ro_access_level_for_protocols
RUN_MANILA_SNAPSHOT_TESTS=True
else
case "$GLUSTERFS_MANILA_DRIVER_TYPE" in
glusterfs|glusterfs-nfs)
local BACKEND_NAME="GLUSTERFS"
RUN_MANILA_EXTEND_TESTS=True
RUN_MANILA_SHRINK_TESTS=True
;;
glusterfs-heketi|glusterfs-nfs-heketi)
local BACKEND_NAME="GLUSTERFSHEKETI"
;;
*)
echo "no BACKEND_NAME for GLUSTERFS_MANILA_DRIVER_TYPE=${GLUSTERFS_MANILA_DRIVER_TYPE}"
;;
esac
iniset $TEMPEST_CONFIG share enable_protocols nfs
iniset $TEMPEST_CONFIG share enable_ip_rules_for_protocols nfs
iniset $TEMPEST_CONFIG share storage_protocol NFS
# ro access_level is not supported by the driver.
iniset $TEMPEST_CONFIG share enable_ro_access_level_for_protocols
fi
iniset $TEMPEST_CONFIG share backend_names $BACKEND_NAME
# Set two retries for CI jobs
iniset $TEMPEST_CONFIG share share_creation_retry_number 2
# Suppress errors in cleanup of resources
SUPPRESS_ERRORS=${SUPPRESS_ERRORS_IN_CLEANUP:-True}
iniset $TEMPEST_CONFIG share suppress_errors_in_cleanup $SUPPRESS_ERRORS
# Disable multi_backend tests
RUN_MANILA_MULTI_BACKEND_TESTS=${RUN_MANILA_MULTI_BACKEND_TESTS:-False}
iniset $TEMPEST_CONFIG share multi_backend $RUN_MANILA_MULTI_BACKEND_TESTS
# Disable manage/unmanage tests
RUN_MANILA_MANAGE_TESTS=${RUN_MANILA_MANAGE_TESTS:-False}
iniset $TEMPEST_CONFIG share run_manage_unmanage_tests $RUN_MANILA_MANAGE_TESTS
# Disable extend tests
RUN_MANILA_EXTEND_TESTS=${RUN_MANILA_EXTEND_TESTS:-False}
iniset $TEMPEST_CONFIG share run_extend_tests $RUN_MANILA_EXTEND_TESTS
# Disable shrink tests
RUN_MANILA_SHRINK_TESTS=${RUN_MANILA_SHRINK_TESTS:-False}
iniset $TEMPEST_CONFIG share run_shrink_tests $RUN_MANILA_SHRINK_TESTS
# Disable multi_tenancy tests
iniset $TEMPEST_CONFIG share run_snapshot_tests \
${RUN_MANILA_SNAPSHOT_TESTS:-False}
iniset $TEMPEST_CONFIG share run_extend_tests ${RUN_MANILA_EXTEND_TESTS:-False}
iniset $TEMPEST_CONFIG share run_shrink_tests ${RUN_MANILA_SHRINK_TESTS:-False}
iniset $TEMPEST_CONFIG share run_manage_unmanage_tests False
iniset $TEMPEST_CONFIG share multitenancy_enabled False
iniset $TEMPEST_CONFIG share run_consistency_group_tests False
# Disable snapshot tests
RUN_MANILA_SNAPSHOT_TESTS=${RUN_MANILA_SNAPSHOT_TESTS:-False}
iniset $TEMPEST_CONFIG share run_snapshot_tests $RUN_MANILA_SNAPSHOT_TESTS
# Disable consistency group tests
RUN_MANILA_CG_TESTS=${RUN_MANILA_CG_TESTS:-False}
iniset $TEMPEST_CONFIG share run_consistency_group_tests $RUN_MANILA_CG_TESTS
# let us control if we die or not
set +o errexit
cd $BASE/new/tempest
if [[ $MANILA_TEST_TYPE == 'api' ]]; then
export MANILA_TESTS='manila_tempest_tests.tests.api'
MANILA_TEMPEST_CONCURRENCY=12
elif [[ $MANILA_TEST_TYPE == 'scenario' ]]; then
export MANILA_TESTS='manila_tempest_tests.tests.scenario'
else
export MANILA_TESTS='manila_tempest_tests.tests'
fi
export MANILA_TEMPEST_CONCURRENCY=${MANILA_TEMPEST_CONCURRENCY:-8}
# check if tempest plugin was installed correctly
echo 'import pkg_resources; print list(pkg_resources.iter_entry_points("tempest.test_plugins"))' | python
iniset $TEMPEST_CONFIG share share_creation_retry_number 2
iniset $TEMPEST_CONFIG share suppress_errors_in_cleanup True
iniset $TEMPEST_CONFIG share multi_backend False
# Workaround for Tempest architectural changes (only for Liberty and lower releases)
# See bugs:
@ -148,11 +130,21 @@ iniset $TEMPEST_CONFIG identity alt_password $ADMIN_PASSWORD
iniset $TEMPEST_CONFIG identity alt_tenant_name ${ALT_TENANT_NAME:-"alt_demo"}
iniset $TEMPEST_CONFIG validation ip_version_for_ssh 4
iniset $TEMPEST_CONFIG validation ssh_timeout $BUILD_TIMEOUT
iniset $TEMPEST_CONFIG validation network_for_ssh ${PRIVATE_NETWORK_NAME:-"private"}
iniset $TEMPEST_CONFIG validation network_for_ssh\
${PRIVATE_NETWORK_NAME:-"private"}
# let us control if we die or not
set +o errexit
# check if tempest plugin was installed correctly
echo 'import pkg_resources; print list(pkg_resources.\
iter_entry_points("tempest.test_plugins"))' | python
echo "Running tempest manila test suites"
cd $BASE/new/tempest
sudo -H -u $USER tempest list-plugins
sudo -H -u $USER tempest run -r $MANILA_TESTS --concurrency=$MANILA_TEMPEST_CONCURRENCY
sudo -H -u $USER tempest run -r $MANILA_TESTS\
--concurrency=$MANILA_TEMPEST_CONCURRENCY
_retval=$?