diff --git a/manila/post_test_hook.sh b/manila/post_test_hook.sh index 4d3a2c6..f8f75f6 100755 --- a/manila/post_test_hook.sh +++ b/manila/post_test_hook.sh @@ -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=$?