[BGPVPN] Bugfix for /etc/tempest/ no there
[functest.git] / docker / run_tests.sh
index 0a09160..ad8ab11 100755 (executable)
@@ -22,13 +22,15 @@ where:
     -h|--help         show this help text
     -r|--report       push results to database (false by default)
     -n|--no-clean     do not clean OpenStack resources after test run
+    -s|--serial       run tests in one thread
     -t|--test         run specific set of tests
-      <test_name>     one or more of the following: vping,odl,rally,tempest,vims,onos,promise,ovno. Separated by comma.
+      <test_name>     one or more of the following separated by comma:
+                            vping_ssh,vping_userdata,odl,onos,tempest,rally,vims,promise,doctor
 
 
 examples:
     $(basename "$0")
-    $(basename "$0") --test vping,odl
+    $(basename "$0") --test vping_ssh,odl
     $(basename "$0") -t tempest,rally"
 
 
@@ -37,6 +39,8 @@ examples:
 offline=false
 report=""
 clean=true
+serial=false
+
 # Get the list of runnable tests
 # Check if we are in CI mode
 
@@ -51,8 +55,10 @@ function clean_openstack(){
 }
 
 function odl_tests(){
-    neutron_ip=$(keystone catalog --service identity | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
-    odl_ip=$(keystone catalog --service network | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
+    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
@@ -61,6 +67,9 @@ function odl_tests(){
     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
         :
@@ -71,26 +80,35 @@ function odl_tests(){
 }
 function run_test(){
     test_name=$1
-    echo ""
+    echo -e "\n\n\n\n"
     echo "----------------------------------------------"
-    echo "  Running test cases: $i"
+    echo "  Running test case: $i"
     echo "----------------------------------------------"
     echo ""
+    clean_flag=""
+    if [ $clean == "false" ]; then
+        clean_flag="-n"
+    fi
+    serial_flag=""
+    if [ $serial == "true" ]; then
+        serial_flag="-s"
+    fi
+
     case $test_name in
-        "vping")
-            info "Running vPing test..."
-            python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing2.py \
-                --debug ${report}
+        "vping_ssh")
+            info "Running vPing-SSH test..."
+            python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing_ssh.py \
+                --debug $clean_flag ${report}
         ;;
         "vping_userdata")
-            info "Running vPing test using userdata/cloudinit.... "
-            python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing.py \
-                --debug ${report}
+            info "Running vPing-userdata test... "
+            python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing_userdata.py \
+                --debug $clean_flag ${report}
         ;;
         "odl")
             info "Running ODL test..."
             odl_tests
-            ODL_PORT=$odl_port ODL_IP=$odl_ip NEUTRON_IP=$neutron_ip USR_NAME=$usr_name PASS=$password \
+            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
@@ -104,7 +122,7 @@ function run_test(){
         "tempest")
             info "Running Tempest tests..."
             python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_tempest.py \
-                --debug -m custom ${report}
+                --debug $serial_flag $clean_flag -m custom ${report}
             # save tempest.conf for further troubleshooting
             tempest_conf="${RALLY_VENV_DIR}/tempest/for-deployment-*/tempest.conf"
             if [ -f ${tempest_conf} ]; then
@@ -115,22 +133,20 @@ function run_test(){
         "vims")
             info "Running vIMS test..."
             python ${FUNCTEST_REPO_DIR}/testcases/vIMS/CI/vIMS.py \
-                --debug ${report}
+                --debug $clean_flag ${report}
             clean_openstack
         ;;
         "rally")
             info "Running Rally benchmark suite..."
-            cinder type-create volume-test #provisional
-            python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_rally.py \
-                --debug all ${report}
-            cinder type-delete $(cinder type-list|grep test|awk '{print $2}')
+            python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_rally-cert.py \
+                --debug $clean_flag all ${report}
             clean_openstack
 
         ;;
         "bgpvpn")
             info "Running BGPVPN Tempest test case..."
             tempest_dir=$(ls -t /home/opnfv/.rally/tempest/ |grep for-deploy |tail -1)
-            if [[ $tempest_dir == "" ]];
+            if [[ $tempest_dir == "" ]]; then
                 echo "Make sure tempest was running before"
                 exit 1
             fi
@@ -138,12 +154,14 @@ function run_test(){
             pushd $tempest_dir
               . .venv/bin/activate
               pip install --no-deps -e ~/repos/bgpvpn/.
+              mkdir -p /etc/tempest/
               cp tempest.conf /etc/tempest/
               echo "[service_available]
 bgpvpn = True" >> /etc/tempest/tempest.conf
               ./run_tempest.sh -- networking_bgpvpn_tempest
               rm -rf /etc/tempest/tempest.conf
             popd
+        ;;
         "odl-vpnservice")
             info "Running VPNSERVICE Robot test case..."
             odl_tests
@@ -160,11 +178,16 @@ test/csit/suites/vpnservice
        ;;
         "onos")
             info "Running ONOS test case..."
-            python ${FUNCTEST_REPO_DIR}/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py
+            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
       ;;
         "promise")
             info "Running PROMISE test case..."
-            python ${FUNCTEST_REPO_DIR}/testcases/features/promise.py --debug all ${report}
+            python ${FUNCTEST_REPO_DIR}/testcases/features/promise.py --debug ${report}
+            sleep 10 #to let the instances terminate
             clean_openstack
         ;;
         "doctor")
@@ -173,7 +196,7 @@ test/csit/suites/vpnservice
         ;;
         "ovno")
             info "Running OpenContrail test..."
-            # TODO
+            ${repos_dir}/ovno/Testcases/RunTests.sh
         ;;
     esac
 }
@@ -198,6 +221,9 @@ while [[ $# > 0 ]]
         -n|--no-clean)
             clean=false
         ;;
+        -s|--serial)
+            serial=true
+        ;;
         -t|--test|--tests)
             TEST="$2"
             shift
@@ -216,13 +242,13 @@ if [[ -n "$DEPLOY_SCENARIO" && "$DEPLOY_SCENARIO" != "none" ]] &&\
    [[ -f $tests_file ]]; then
     arr_test=($(cat $tests_file))
 else
-    arr_test=(vping tempest vims rally)
+    arr_test=(vping_ssh tempest vims rally)
 fi
-echo "arr_test: "${arr_test[@]}
 
 BASEDIR=`dirname $0`
 source ${BASEDIR}/common.sh
 
+info "Tests to be executed: ${arr_test[@]}"
 
 # Check that the given tests are correct
 if [ "${TEST}" != "" ]; then
@@ -235,12 +261,6 @@ if [ "${TEST}" != "" ]; then
     info "Tests to execute: ${TEST}."
 fi
 
-if [ $offline == false ]; then
-    info "MODE: online"
-else
-    info "MODE: offline"
-fi
-
 # Check that the functest environment has been installed
 if [ ! -f ${FUNCTEST_CONF_DIR}/env_active ]; then
     error "The Functest environment is not installed. \