bug fix: end_time var does not exist to calculate duration
[functest.git] / ci / exec_test.sh
old mode 100644 (file)
new mode 100755 (executable)
index 2e16fbb..2269aa7
@@ -42,35 +42,26 @@ FUNCTEST_CONF_DIR=/home/opnfv/functest/conf/
 
 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" == "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" == "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
     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"
@@ -78,95 +69,82 @@ function run_test(){
 
     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
+            ODL_PORT=$odl_port ODL_IP=$odl_ip KEYSTONE_IP=$keystone_ip NEUTRON_IP=$neutron_ip USR_NAME=${OS_USERNAME} PASS=${OS_PASSWORD} \
+                ${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/start_tests.sh
 
             # push results to the DB in case of CI
-            if [[ -n "$DEPLOY_SCENARIO" && "$DEPLOY_SCENARIO" != "none" ]]; then
+            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/logs/2"
-                odl_path="${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI"
+                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/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
+            python ${FUNCTEST_REPO_DIR}/testcases/features/bgpvpn.py
         ;;
         "onos")
-            echo "Running ONOS test case..."
-            if [ $INSTALLER_TYPE == "joid" ]; then
-                python ${FUNCTEST_REPO_DIR}/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py -i joid
+            if [ "$INSTALLER_TYPE" == "joid" ]; then
+                python ${FUNCTEST_REPO_DIR}/testcases/Controllers/ONOS/Teston/onosfunctest.py -i joid
             else
-                python ${FUNCTEST_REPO_DIR}/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py
+                python ${FUNCTEST_REPO_DIR}/testcases/Controllers/ONOS/Teston/onosfunctest.py
             fi
       ;;
         "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")
+            # To be enabled once verified manually
+            # python ${FUNCTEST_REPO_DIR}/Testcases/security_scan/security_scan.py --config config.ini
+        ;;
+        *)
+            echo "The test case '${test_name}' does not exist."
+            exit 1
     esac
+
+    if [[ $? != 0 ]]; then exit 1
+    else exit 0
+    fi
 }
 
 
@@ -200,7 +178,7 @@ done
 
 
 # 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