debug="--debug"
fi
-FUNCTEST_REPO_DIR=${repos_dir}/functest/
-FUNCTEST_CONF_DIR=/home/opnfv/functest/conf/
+FUNCTEST_REPO_DIR=${repos_dir}/functest
+FUNCTEST_CONF_DIR=/home/opnfv/functest/conf
+export PYTHONUNBUFFERED=1
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'=')
- odl_port=8181
- if [ $INSTALLER_TYPE == "fuel" ]; then
+ neutron_ip=$(openstack catalog show network | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
+ odl_ip=${neutron_ip}
+ odl_port=8080
+ 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":")
- odl_port=8080
- :
- elif [ $INSTALLER_TYPE == "compass" ]; then
- :
+ elif [ "$INSTALLER_TYPE" == "apex" ]; then
+ odl_ip=$SDN_CONTROLLER_IP
+ odl_port=8181
+ elif [ "$INSTALLER_TYPE" == "joid" ]; then
+ odl_ip=$SDN_CONTROLLER
+ elif [ "$INSTALLER_TYPE" == "compass" ]; then
+ odl_port=8181
else
- error "INSTALLER_TYPE not valid."
- exit 1
+ odl_ip=$SDN_CONTROLLER_IP
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.py -m ssh $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.py -m userdata $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
-
- # 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"
- 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
+ [[ "$report" == "-r" ]] && args=-p
+ ${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 ${args}
;;
- "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/
+ 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
+ ;;
+ "onos_sfc")
+ python ${FUNCTEST_REPO_DIR}/testcases/Controllers/ONOS/Teston/onosfunctest.py -t sfc
+ ;;
"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
+ python ${FUNCTEST_REPO_DIR}/testcases/features/doctor.py $report
;;
"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 ${repos_dir}/securityscanning/security_scan.py --config ${repos_dir}/securityscanning/config.ini
+ ;;
+ "copper")
+ python ${FUNCTEST_REPO_DIR}/testcases/features/copper.py $report
+ ;;
+ "moon")
+ python ${repos_dir}/moon/tests/run_tests.py $report
+ ;;
+ "multisite")
+ python ${FUNCTEST_REPO_DIR}/testcases/OpenStack/tempest/gen_tempest_conf.py
+ python ${FUNCTEST_REPO_DIR}/testcases/OpenStack/tempest/run_tempest.py \
+ $clean_flag -s -m feature_multisite $report \
+ -c ${FUNCTEST_REPO_DIR}/testcases/OpenStack/tempest/tempest_multisite.conf
+ ;;
+ "domino")
+ python ${FUNCTEST_REPO_DIR}/testcases/features/domino.py $report
+ ;;
+ "odl-sfc")
+ bash ${FUNCTEST_REPO_DIR}/testcases/features/sfc/server_presetup_CI.bash
+ ret_val=$?
+ if [ $ret_val != 0 ]; then
+ exit $ret_val
+ fi
+ bash ${FUNCTEST_REPO_DIR}/testcases/features/sfc/compute_presetup_CI.bash
+ ret_val=$?
+ if [ $ret_val != 0 ]; then
+ exit $ret_val
+ fi
+ source ${FUNCTEST_REPO_DIR}/testcases/features/sfc/tackerc
+ python ${FUNCTEST_REPO_DIR}/testcases/features/sfc/sfc.py $report
+ ;;
+ "parser")
+ python ${FUNCTEST_REPO_DIR}/testcases/vnf/vRNC/parser.py $report
;;
+ *)
+ 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