X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=robot-systest%2Frun_test.sh;h=863cb44469283fbb1f80ee2af86b524dff20e60e;hb=refs%2Fheads%2Fsol006;hp=7a05681d2d0d7f42b02da445e05a32f0ac5d6362;hpb=f96bb45c0a03f2188688d90d67ea718851cec2de;p=osm%2Ftests.git diff --git a/robot-systest/run_test.sh b/robot-systest/run_test.sh index 7a05681..863cb44 100755 --- a/robot-systest/run_test.sh +++ b/robot-systest/run_test.sh @@ -32,7 +32,49 @@ download_packages(){ git checkout ${PACKAGES}) } +download_tst010(){ + # Fetch conformance tests + git clone --single-branch --branch ${NFV_TESTS_BRANCH} https://forge.etsi.org/rep/nfv/api-tests.git /robot-systest/conformance-tests/repo + python3 -m pip install -r /robot-systest/conformance-tests/repo/requirements.txt +} + +create_vim(){ + + attempts=3 + while [ $attempts -ge 0 ] ; do + echo -e "\n$( date '+%F_%H:%M:%S' ) Creating VIM ${VIM_TARGET}" + osm vim-create --name ${VIM_TARGET} --user ${OS_USERNAME} --password ${OS_PASSWORD} --tenant ${OS_PROJECT_NAME} \ + --auth_url ${OS_AUTH_URL} --account_type openstack --description vim \ + --config "{management_network_name: ${VIM_MGMT_NET}, dataplane_physical_net: ${DATAPLANE:-physnet2}}" || true + STATUS="PROCESSING" + i=0 + while [[ ${STATUS} != "ENABLED" ]] + do + ((i++)) + if [[ $i -eq 5 ]]; then + echo "VIM stuck in PROCESSING after 50 seconds" + osm vim-delete --force ${VIM_TARGET} + sleep 5 + break + fi + sleep 10 + STATUS=`osm vim-list --long | grep ${VIM_TARGET} | awk '{print $9}'` + done + if [[ ${STATUS} = "ENABLED" ]] ; then + break + fi + ((attempts--)) + done + + if [ $attempts -lt 0 ] ; then + echo "VIM failed to enter ENABLED state" + exit 1 + fi +} + + PARAMS="" +RUN_CONFORMANCE_TESTS=false while (( "$#" )); do case "$1" in @@ -45,27 +87,42 @@ while (( "$#" )); do shift 2 ;; -o|--osmclientversion) - OSMCLIENT=$2 install_osmclient + OSMCLIENT=$2 && install_osmclient shift 2 ;; + -c|--createvim) + create_vim + shift 1 + ;; + -T) + NFV_TESTS_BRANCH=$2 && download_tst010 + RUN_CONFORMANCE_TESTS=true + shift 1 + ;; -h|--help) echo "OSM TESTS TOOL Usage: docker run --rm=true -t osmtests --env-file \\ - -v :/reports osmtests -v :/robot-systest/clouds.yaml \\ - -v :/robot-systest/kubeconfig.yaml \\ - -o -p -t - + -v :/reports osmtests \\ + -v :/robot-systest/clouds.yaml \\ + -v :/root/.kube/config \\ + -o \\ + -p \\ + -t + Options: --env-file: It is the environmental file where is described the OSM target and VIM -o [OPTIONAL]: It is used to specify a particular osmclient version. Default: latest -p [OPTIONAL]: OSM packages repository branch. Default: master -t [OPTIONAL]: Robot tests tags. [sanity, regression, particular_test]. Default: sanity + -T [OPTIONAL]: Run SOL005 Robot conformance tests + -c To create a VIM for the tests Volumes: [OPTIONAL]: It is the absolute path to reports location in the host - [OPTIONAL]: It is the absolute path to the clouds.yaml file in the host" + [OPTIONAL]: It is the absolute path to the clouds.yaml file in the host + [OPTIONAL]: It is the kubeconfig file to be used for k8s clusters" exit 0 ;; @@ -82,13 +139,22 @@ done eval set -- "$PARAMS" -if [[ -z $TEST ]]; then +if [[ -n "$BRANCH_NAME" ]]; then + PACKAGES=$BRANCH_NAME && download_packages + OSMCLIENT=$BRANCH_NAME && install_osmclient +fi + + +if [ "$RUN_CONFORMANCE_TESTS" = true ] ; then + python3 ${ROBOT_DEVOPS_FOLDER}/conformance-tests/run_conformance_tests.py +fi + +if [[ -z "${TEST}" ]]; then printf "Test not provided. \nRunning default test: sanity\n" TEST="sanity" fi - -if [[ -n "$TEST" ]]; then +if [[ -n "${TEST}" ]]; then robot -d ${ROBOT_DEVOPS_FOLDER}/reports -i ${TEST} ${ROBOT_DEVOPS_FOLDER}/testsuite/ exit 0 else