X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=scripts%2Fsdc%2Fsetup_sdc_for_sanity.sh;h=1a3239751183b308400b43a8a4f9c977f943fdc5;hb=ac6c8501503d272c691b71a98078cc3fab1cc8c9;hp=fc9f31b431070b58d38b7730842d270e802f6348;hpb=60d994ca23c8c03494de8ddb40d13fe23ebd7a0a;p=integration%2Fcsit.git diff --git a/scripts/sdc/setup_sdc_for_sanity.sh b/scripts/sdc/setup_sdc_for_sanity.sh index fc9f31b4..1a323975 100644 --- a/scripts/sdc/setup_sdc_for_sanity.sh +++ b/scripts/sdc/setup_sdc_for_sanity.sh @@ -1,17 +1,29 @@ #!/bin/bash function usage { - echo "usage: setup_sdc_for_sanity.sh {tad|tud}" - echo "setup sdc and run api test suite: setup_sdc_for_sanity.sh tad" - echo "setup sdc and run ui test suite: setup_sdc_for_sanity.sh tud" +cat < +# returns 0: if is set to true value # returns 1: otherwise -function using_local_images { - SDC_LOCAL_IMAGES=$(echo "${SDC_LOCAL_IMAGES}" | tr '[:upper:]' '[:lower:]') +function is_true { + _value=$(eval echo "\$${1}" | tr '[:upper:]' '[:lower:]') - case "$SDC_LOCAL_IMAGES" in + case "$_value" in 1|yes|true|Y) return 0 ;; @@ -20,57 +32,96 @@ function using_local_images { return 1 } +# returns 0: if SDC_LOCAL_IMAGES is set to true value +# returns 1: otherwise +function using_local_images { + is_true SDC_LOCAL_IMAGES +} + +# returns 0: if SDC_TEST_HTTPS is set to true value +# returns 1: otherwise +function using_https { + is_true SDC_TEST_HTTPS +} + # fail quick if error set -exo pipefail echo "This is ${WORKSPACE}/scripts/sdc/setup_sdc_for_sanity.sh" - - -if [ "$1" != "tad" ] && [ "$1" != "tud" ]; then - usage - exit 1 -fi - +echo "lets check what is ${1} ${2}" +ENABLE_SIMULATOR= +case "$1" in + tad|tud) + # enable test + export TEST_SUITE="-${1}" + ;; + '') + # we will just setup sdc - no tests + export TEST_SUITE="" + ENABLE_SIMULATOR="--simulator" + # this is mandatory + ;; + *) + export TEST_SUITE="" + ENABLE_SIMULATOR="--simulator" + # # usage + # exit 1 + ;; +esac +echo "Lets check is simulator is enabled or not ${ENABLE_SIMULATOR}" # Clone sdc enviroment template -mkdir -p ${WORKSPACE}/data/environments/ -mkdir -p ${WORKSPACE}/data/clone/ +mkdir -p "${WORKSPACE}/data/environments/" +mkdir -p "${WORKSPACE}/data/clone/" -cd ${WORKSPACE}/data/clone +cd "${WORKSPACE}/data/clone" if using_local_images && [ -n "$SDC_LOCAL_GITREPO" ] ; then + SDC_LOCAL_GITREPO=$(realpath "$SDC_LOCAL_GITREPO") if [ -d "$SDC_LOCAL_GITREPO" ] ; then rm -rf ./sdc cp -a "$SDC_LOCAL_GITREPO" ./sdc + # echo "[skipping copying git repo of sdc]" else echo "[ERROR]: Local git repo for sdc does not exist: ${SDC_LOCAL_GITREPO}" exit 1 fi else - git clone --depth 1 http://gerrit.onap.org/r/sdc -b ${GERRIT_BRANCH} + git clone --depth 1 "https://gerrit.onap.org/r/sdc" -b ${GERRIT_BRANCH} fi -chmod -R 777 ${WORKSPACE}/data/clone +# TODO: why? +chmod -R 777 "${WORKSPACE}/data/clone" # set enviroment variables export ENV_NAME='CSIT' export MR_IP_ADDR='10.0.0.1' -export TEST_SUITE=$1 -ifconfig +ip a IP_ADDRESS=`ip route get 8.8.8.8 | awk '/src/{ print $7 }'` -export HOST_IP=$IP_ADDRESS +export HOST_IP="$IP_ADDRESS" # setup enviroment json +# TODO: use jq or find a better way altogether... +cp "${WORKSPACE}/data/clone/sdc/sdc-os-chef/environments/Template.json" \ + "${WORKSPACE}/data/environments/$ENV_NAME.json" +sed -i \ + -e "s/xxx/${ENV_NAME}/g" \ + -e "s/yyy/${IP_ADDRESS}/g" \ + -e "s/\"ueb_url_list\":.*/\"ueb_url_list\": \"${MR_IP_ADDR},${MR_IP_ADDR}\",/g" \ + -e "s/\"fqdn\":.*/\"fqdn\": [\"${MR_IP_ADDR}\", \"${MR_IP_ADDR}\"]/g" \ + "${WORKSPACE}/data/environments/$ENV_NAME.json" +if using_https ; then + # this is very fragile (as all above) and relies on the current state of Template.json in another project... + # using jq filters would be much better approach and no need for some "yyy"... + sed -i \ + -e 's/"disableHttp":[[:space:]]*"\?[[:alnum:]]*"\?/"disableHttp": true/' \ + "${WORKSPACE}/data/environments/$ENV_NAME.json" +fi -cat ${WORKSPACE}/data/clone/sdc/sdc-os-chef/environments/Template.json | sed "s/yyy/"$IP_ADDRESS"/g" > ${WORKSPACE}/data/environments/$ENV_NAME.json -sed -i "s/xxx/"$ENV_NAME"/g" ${WORKSPACE}/data/environments/$ENV_NAME.json -sed -i "s/\"ueb_url_list\":.*/\"ueb_url_list\": \""$MR_IP_ADDR","$MR_IP_ADDR"\",/g" ${WORKSPACE}/data/environments/$ENV_NAME.json -sed -i "s/\"fqdn\":.*/\"fqdn\": [\""$MR_IP_ADDR"\", \""$MR_IP_ADDR"\"]/g" ${WORKSPACE}/data/environments/$ENV_NAME.json - -cp ${WORKSPACE}/data/clone/sdc/sdc-os-chef/scripts/docker_run.sh ${WORKSPACE}/scripts/sdc/ +cp "${WORKSPACE}/data/clone/sdc/sdc-os-chef/scripts/docker_run.sh" "${WORKSPACE}/scripts/sdc/" -source ${WORKSPACE}/data/clone/sdc/version.properties -export RELEASE=$major.$minor-STAGING-latest +source "${WORKSPACE}/data/clone/sdc/version.properties" +export RELEASE="${major}.${minor}-STAGING-latest" if using_local_images ; then if [ -n "$SDC_LOCAL_TAG" ] ; then @@ -81,58 +132,43 @@ if using_local_images ; then fi echo "[INFO]: We will use the locally built images (tag: ${RELEASE})" - ${WORKSPACE}/scripts/sdc/docker_run.sh \ + "${WORKSPACE}/scripts/sdc/docker_run.sh" \ --local \ - -r ${RELEASE} \ - -e ${ENV_NAME} \ - -p 10001 -${TEST_SUITE} + -r "${RELEASE}" \ + -e "${ENV_NAME}" \ + -p 10001 ${TEST_SUITE} ${ENABLE_SIMULATOR} else echo "[INFO]: We will download images from the default registry (tag: ${RELEASE})" ${WORKSPACE}/scripts/sdc/docker_run.sh \ - -r ${RELEASE} \ - -e ${ENV_NAME} \ - -p 10001 -${TEST_SUITE} + -r "${RELEASE}" \ + -e "${ENV_NAME}" \ + -p 10001 ${TEST_SUITE} ${ENABLE_SIMULATOR} fi -sleep 120 +# final step if the robot test needs to be adjusted +# TODO: again grab the values from Template directly with jq +# jq should be mandatory installed package (is it?) +if using_https ; then + ROBOT_VARIABLES="${ROBOT_VARIABLES} \ + -v SDC_FE_PROTOCOL:https \ + -v SDC_FE_PORT:9443 \ + -v SDC_BE_PROTOCOL:https \ + -v SDC_BE_PORT:8443 \ + -v SDC_ONBOARDING_BE_PROTOCOL:https \ + -v SDC_ONBOARDING_BE_PORT:8443 \ + " +else + ROBOT_VARIABLES="${ROBOT_VARIABLES} \ + -v SDC_FE_PROTOCOL:http \ + -v SDC_FE_PORT:8181 \ + -v SDC_BE_PROTOCOL:http \ + -v SDC_BE_PORT:8080 \ + -v SDC_ONBOARDING_BE_PROTOCOL:http \ + -v SDC_ONBOARDING_BE_PORT:8081 \ + " +fi # This file is sourced in another script which is out of our control... set +e set +o pipefail -# The code below for example does nothing and breaks immediately (running locally at least) -# Also it is very fragile: empty CID variable and broken docker command... - -#monitor test processes - - -TIME_OUT=1200 -INTERVAL=20 -TIME=0 -CID=`docker ps | grep tests | awk '{print $1}'` - -while [ "$TIME" -lt "$TIME_OUT" ]; do - -PID=`docker exec -i $CID ps -ef | grep java | awk '{print $1}'` - -echo sanity PID is -- $PID - -if [ -z "$PID" ] - then - echo SDC sanity finished in $TIME seconds - break - fi - - echo Sleep: $INTERVAL seconds before testing if SDC sanity completed. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds - sleep $INTERVAL - TIME=$(($TIME+$INTERVAL)) -done - -if [ "$TIME" -ge "$TIME_OUT" ] - then - echo TIME OUT: SDC sanity was NOT completed in $TIME_OUT seconds... Could cause problems for tests... -fi - - - -