function odl_tests(){
keystone_ip=$(openstack catalog show identity |grep publicURL| cut -f3 -d"/" | cut -f1 -d":")
- # historically most of the installers use the same IP for neutron and keystone API
- neutron_ip=$keystone_ip
- odl_ip=$(openstack catalog show network | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
- usr_name=$(env | grep OS | grep OS_USERNAME | cut -f2 -d'=')
- password=$(env | grep OS | grep OS_PASSWORD | cut -f2 -d'=')
+ neutron_ip=$(openstack catalog show network | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
+ odl_ip=${neutron_ip}
odl_port=8181
- if [ $INSTALLER_TYPE == "fuel" ]; then
+ if [ "$INSTALLER_TYPE" == "fuel" ]; then
odl_port=8282
- elif [ $INSTALLER_TYPE == "apex" ]; then
- :
- elif [ $INSTALLER_TYPE == "joid" ]; then
- odl_ip=$(env | grep SDN_CONTROLLER | cut -f2 -d'=')
- neutron_ip=$(openstack catalog show network | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
+ elif [ "$INSTALLER_TYPE" == "apex" ]; then
+ odl_ip=$SDN_CONTROLLER_IP
+ elif [ "$INSTALLER_TYPE" == "joid" ]; then
+ odl_ip=$SDN_CONTROLLER
odl_port=8080
:
- elif [ $INSTALLER_TYPE == "compass" ]; then
+ elif [ "$INSTALLER_TYPE" == "compass" ]; then
:
else
- error "INSTALLER_TYPE not valid."
- exit 1
+ odl_ip=$SDN_CONTROLLER_IP
+ odl_port=8080
fi
}
+
function run_test(){
test_name=$1
- echo -e "\n\n\n\n"
- echo "----------------------------------------------"
- echo " Running test case: ${test_name}"
- echo "----------------------------------------------"
- echo ""
serial_flag=""
if [ $serial == "true" ]; then
serial_flag="-s"
case $test_name in
"healthcheck")
- echo "Running health check test..."
- ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/healthcheck.sh
+ ${FUNCTEST_REPO_DIR}/testcases/OpenStack/healthcheck/healthcheck.sh
;;
"vping_ssh")
- echo "Running vPing-SSH test..."
- python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing_ssh.py \
- $debug $report
+ python ${FUNCTEST_REPO_DIR}/testcases/OpenStack/vPing/vPing_ssh.py $report
;;
"vping_userdata")
- echo "Running vPing-userdata test... "
- python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing_userdata.py \
- $debug $report
+ python ${FUNCTEST_REPO_DIR}/testcases/OpenStack/vPing/vPing_userdata.py $report
;;
"odl")
- echo "Running ODL test..."
odl_tests
- ODL_PORT=$odl_port ODL_IP=$odl_ip KEYSTONE_IP=$keystone_ip NEUTRON_IP=$neutron_ip USR_NAME=$usr_name PASS=$password \
- ${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/start_tests.sh
+ ${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/OpenDaylightTesting.py \
+ --keystoneip $keystone_ip --neutronip $neutron_ip \
+ --osusername ${OS_USERNAME} --ostenantname ${OS_TENANT_NAME} \
+ --ospassword ${OS_PASSWORD} \
+ --odlip $odl_ip --odlwebport $odl_port
# push results to the DB in case of CI
- if [[ -n "$DEPLOY_SCENARIO" && "$DEPLOY_SCENARIO" != "none" ]]; then
- odl_logs="/home/opnfv/functest/results/odl/logs/2"
- odl_path="${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI"
+ if [[ "$report" == "-r" &&
+ -n "$DEPLOY_SCENARIO" && "$DEPLOY_SCENARIO" != "none" &&
+ -n "$INSTALLER_TYPE" && "$INSTALLER_TYPE" != "none" ]] &&
+ env | grep NODE_NAME > /dev/null; then
+ odl_logs="/home/opnfv/functest/results/odl/"
+ odl_path="${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/"
node_name=$(env | grep NODE_NAME | cut -f2 -d'=')
python ${odl_path}/odlreport2db.py -x ${odl_logs}/output.xml -i ${INSTALLER_TYPE} -p ${node_name} -s ${DEPLOY_SCENARIO}
fi
;;
- "tempest")
- echo "Running Tempest tests..."
- python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_tempest.py \
- $debug $serial_flag $clean_flag -m smoke $report
- # save tempest.conf for further troubleshooting
- tempest_conf="${RALLY_VENV_DIR}/tempest/for-deployment-*/tempest.conf"
- if [ -f ${tempest_conf} ]; then
- cp $tempest_conf ${FUNCTEST_CONF_DIR}
- fi
+ "tempest_smoke_serial")
+ python ${FUNCTEST_REPO_DIR}/testcases/OpenStack/tempest/run_tempest.py \
+ $clean_flag -s -m smoke $report
+ ;;
+ "tempest_full_parallel")
+ python ${FUNCTEST_REPO_DIR}/testcases/OpenStack/tempest/run_tempest.py \
+ $serial_flag $clean_flag -m full $report
;;
"vims")
- echo "Running vIMS test..."
- python ${FUNCTEST_REPO_DIR}/testcases/vIMS/CI/vIMS.py \
- $debug $clean_flag $report
+ python ${FUNCTEST_REPO_DIR}/testcases/vnf/vIMS/vIMS.py $clean_flag $report
;;
- "rally")
- echo "Running Rally benchmark suite..."
- python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_rally-cert.py \
- $debug $clean_flag all $report
-
+ "rally_full")
+ python ${FUNCTEST_REPO_DIR}/testcases/OpenStack/rally/run_rally-cert.py $clean_flag all $report
+ ;;
+ "rally_sanity")
+ python ${FUNCTEST_REPO_DIR}/testcases/OpenStack/rally/run_rally-cert.py \
+ $clean_flag --sanity all $report
;;
"bgpvpn")
- echo "Running BGPVPN Tempest test case..."
- pushd ${repos_dir}/bgpvpn/
- pip install --no-deps -e .
- popd
- tempest_dir=$(ls -t /home/opnfv/.rally/tempest/ |grep for-deploy |tail -1)
- if [[ $tempest_dir == "" ]]; then
- error "Make sure tempest was running before"
- fi
- tempest_dir=/home/opnfv/.rally/tempest/$tempest_dir
- pushd $tempest_dir
- mkdir -p /etc/tempest/
- cp tempest.conf /etc/tempest/
- echo "[service_available]
-bgpvpn = True" >> /etc/tempest/tempest.conf
- ./run_tempest.sh -t -N -- networking_bgpvpn_tempest
- rm -rf /etc/tempest/tempest.conf
- popd
+ sdnvpn_repo_dir=${repos_dir}/sdnvpn/test/functest/
+ # Copy blacklist from sdnvpn repo to the proper place to execute functest
+ src=${sdnvpn_repo_dir}/tempest_blacklist.txt
+ dst=${FUNCTEST_REPO_DIR}/testcases/OpenStack/tempest/custom_tests/blacklist.txt
+ cp $src $dst
+ # Execute tempest smoke with blacklist
+ python ${FUNCTEST_REPO_DIR}/testcases/OpenStack/tempest/run_tempest.py \
+ $clean_flag -s -m smoke $report
+ # Remove blacklist file
+ rm $dst
+
+ # Execute SDNVPN test cases
+ python ${sdnvpn_repo_dir}/run_tests.py $report
+
;;
"onos")
- echo "Running ONOS test case..."
- if [ $INSTALLER_TYPE == "joid" ]; then
- python ${FUNCTEST_REPO_DIR}/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py -i joid
- else
- python ${FUNCTEST_REPO_DIR}/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py
- fi
+ python ${FUNCTEST_REPO_DIR}/testcases/Controllers/ONOS/Teston/onosfunctest.py
;;
"promise")
- echo "Running PROMISE test case..."
- python ${FUNCTEST_REPO_DIR}/testcases/features/promise.py $debug $report
+ python ${FUNCTEST_REPO_DIR}/testcases/features/promise.py $report
sleep 10 # to let the instances terminate
;;
"doctor")
- echo "Running Doctor test..."
python ${FUNCTEST_REPO_DIR}/testcases/features/doctor.py
;;
"ovno")
- echo "Running OpenContrail test..."
- ${repos_dir}/ovno/Testcases/RunTests.sh
+ # suite under rewritting for colorado
+ # no need to run anything until refactoring done
+ # ${repos_dir}/ovno/Testcases/RunTests.sh
+ ;;
+ "security_scan")
+ echo "Sourcing Credentials ${FUNCTEST_CONF_DIR}/stackrc for undercloud .."
+ source ${FUNCTEST_CONF_DIR}/stackrc
+ python ${FUNCTEST_REPO_DIR}/testcases/security_scan/security_scan.py --config ${FUNCTEST_REPO_DIR}/testcases/security_scan/config.ini
+ ;;
+ "copper")
+ python ${FUNCTEST_REPO_DIR}/testcases/features/copper.py
+ ;;
+ "moon")
+ # TODO put the link to Moon script to be run (if test runnable) here
+ ${repos_dir}/moon/tests/run_tests.sh
+ ;;
+ "multisite")
+ python ${FUNCTEST_REPO_DIR}/testcases/features/multisite.py
+ python ${FUNCTEST_REPO_DIR}/testcases/OpenStack/tempest/run_tempest.py \
+ $clean_flag -s -m feature_multisite $report
;;
+ "domino")
+ python ${FUNCTEST_REPO_DIR}/testcases/features/domino.py
+ ;;
+ *)
+ echo "The test case '${test_name}' does not exist."
+ exit 1
esac
+
+ if [[ $? != 0 ]]; then exit 1
+ else exit 0
+ fi
}
# Source credentials
-echo "Sourcing Credentials ${FUNCTEST_CONF_DIR}/openstack.creds to run the tests.."
+echo "Sourcing Credentials ${FUNCTEST_CONF_DIR}/openstack.creds to run the test.."
source ${FUNCTEST_CONF_DIR}/openstack.creds