X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=bootstrap-vpp-verify-weekly.sh;h=3a67475f42af1780eac4d172d3c3c29399114204;hp=380dd03f90b2975354beb9665d047fcdcbfa8726;hb=d5e00c67d229e6f6fd9461755423cee800a1635e;hpb=f5d642c744148481e835226fd27077ccdb342378 diff --git a/bootstrap-vpp-verify-weekly.sh b/bootstrap-vpp-verify-weekly.sh index 380dd03f90..3a67475f42 100644 --- a/bootstrap-vpp-verify-weekly.sh +++ b/bootstrap-vpp-verify-weekly.sh @@ -21,16 +21,22 @@ export DEBIAN_FRONTEND=noninteractive sudo apt-get -y update sudo apt-get -y install libpython2.7-dev python-virtualenv +VIRL_SERVERS=("10.30.51.28" "10.30.51.29" "10.30.51.30") +VIRL_SERVER="" + +VIRL_USERNAME=jenkins-in +VIRL_PKEY=priv_key +VIRL_SERVER_STATUS_FILE="status" +VIRL_SERVER_EXPECTED_STATUS="PRODUCTION" + +SSH_OPTIONS="-i ${VIRL_PKEY} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -o LogLevel=error" + function ssh_do() { echo echo "### " ssh $@ - ssh -i priv_key -o StrictHostKeyChecking=no $@ + ssh ${SSH_OPTIONS} $@ } -VIRL_SERVER=10.30.51.28 -VIRL_USERNAME=jenkins-in -VIRL_PKEY=priv_key - rm -f ${VIRL_PKEY} cat > ${VIRL_PKEY} <&1) + echo VIRL HOST $virl_server_candidate status is \"$virl_server_status\" + if [ "$virl_server_status" == "$VIRL_SERVER_EXPECTED_STATUS" ] + then + # Candidate is in good status. Select this server. + VIRL_SERVER="$virl_server_candidate" + else + # Candidate is in bad status. Remove from array. + VIRL_SERVERS=("${VIRL_SERVERS[@]:0:$element}" "${VIRL_SERVERS[@]:$[$element+1]}") + fi +done # Temporarily download VPP packages from nexus.fd.io -rm -f *.deb +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + if [ "${#}" -ne "0" ]; then arr=(${@}) echo ${arr[0]} else - VPP_STABLE_VER="16.09-rc0~33-g4b46c84~b200_amd64" - VPP_REPO_URL="https://nexus.fd.io/service/local/repositories/fd.io.master.ubuntu.trusty.main/content/io/fd/vppp" + rm -f *.deb + VPP_STABLE_VER=$(cat ${SCRIPT_DIR}/VPP_STABLE_VER) + VPP_REPO_URL=$(cat ${SCRIPT_DIR}/VPP_REPO_URL) wget -q "${VPP_REPO_URL}/vpp/${VPP_STABLE_VER}/vpp-${VPP_STABLE_VER}.deb" || exit wget -q "${VPP_REPO_URL}/vpp-dbg/${VPP_STABLE_VER}/vpp-dbg-${VPP_STABLE_VER}.deb" || exit wget -q "${VPP_REPO_URL}/vpp-dev/${VPP_STABLE_VER}/vpp-dev-${VPP_STABLE_VER}.deb" || exit @@ -142,29 +184,86 @@ if [ "$?" -ne "0" ]; then fi -virtualenv env +virtualenv --system-site-packages env . env/bin/activate echo pip install -pip install -r requirements.txt - +pip install -r ${SCRIPT_DIR}/requirements.txt # There are used three iterations of tests there to check # the stability and reliability of the results + +RC=0 +MORE_FAILS=0 + for test_set in 1 2 3 do echo echo ${test_set}. test loop PYTHONPATH=`pwd` pybot -L TRACE \ - -v TOPOLOGY_PATH:topologies/enabled/topology.yaml \ + -v TOPOLOGY_PATH:${SCRIPT_DIR}/topologies/enabled/topology.yaml \ --include vm_envAND3_node_single_link_topo \ --include vm_envAND3_node_double_link_topo \ --exclude PERFTEST \ --noncritical EXPECTED_FAILING \ --output log_test_set${test_set} \ tests/ + PARTIAL_RC=$(echo $?) + if [ ${PARTIAL_RC} -eq 250 ]; then + MORE_FAILS=1 + fi + RC=$((RC+PARTIAL_RC)) done +# Log the final result +if [ ${RC} -eq 0 ]; then + set +x + echo + echo "==============================================================================" + echo "Final result of all test loops: | PASS |" + echo "All critical tests have passed." + echo "==============================================================================" + echo + set -x +elif [ ${MORE_FAILS} -eq 0 ]; then + if [ ${RC} -eq 1 ]; then + HLP_STR="test has" + else + HLP_STR="tests have" + fi + set +x + echo + echo "==============================================================================" + echo "Final result of all test loops: | FAIL |" + echo "${RC} critical ${HLP_STR} failed." + echo "==============================================================================" + echo + set -x +else + set +x + echo + echo "==============================================================================" + echo "Final result of all test loops: | FAIL |" + echo "More then 250 critical tests have failed in one test loop." + echo "==============================================================================" + echo + set -x +fi + +echo Post-processing test data... + +# Rebot output post-processing rebot --output output.xml ./log_test_set1.xml ./log_test_set2.xml ./log_test_set3.xml +# Remove unnecessary log files rm -f ./log_test_set1.xml ./log_test_set2.xml ./log_test_set3.xml + +echo Post-processing finished. + +if [ ${RC} -eq 0 ]; then + RETURN_STATUS=0 +else + RETURN_STATUS=1 +fi + +exit ${RETURN_STATUS}