From e12a5ef7fa61256acdc2d44df637bdb3aee370f3 Mon Sep 17 00:00:00 2001
From: Petr Ospalý
Date: Wed, 11 Sep 2019 17:03:03 +0200
Subject: Add support for HTTPS in SDC sanity/uiSanity tests
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
New variable: SDC_TEST_HTTPS
Adjusted robot test too and fixed bad naming there - it was not
the SDC BE container but SDC FE.
For this change to work the upstream change in SDC has to be merged
too - or use this only with a local repo and with some proper setup.
+ Added quotes around shell variables
Issue-ID: SDC-2564
Signed-off-by: Petr Ospalý
Change-Id: I3db9f2e1c22a539df3b6c356bd91f67f0328cbd7
Signed-off-by: Petr Ospalý
---
scripts/sdc/setup_sdc_for_sanity.sh | 98 +++++++++++++++++++++++++++----------
1 file changed, 73 insertions(+), 25 deletions(-)
(limited to 'scripts/sdc')
diff --git a/scripts/sdc/setup_sdc_for_sanity.sh b/scripts/sdc/setup_sdc_for_sanity.sh
index 562c26d1..2d644c3f 100644
--- a/scripts/sdc/setup_sdc_for_sanity.sh
+++ b/scripts/sdc/setup_sdc_for_sanity.sh
@@ -6,12 +6,13 @@ function usage {
echo "setup sdc and run ui test suite: setup_sdc_for_sanity.sh tud"
}
-# returns 0: if SDC_LOCAL_IMAGES is set to true value
+# arg:
+# 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,6 +21,18 @@ 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
@@ -32,10 +45,10 @@ if [ "$1" != "tad" ] && [ "$1" != "tud" ]; then
fi
# 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
if [ -d "$SDC_LOCAL_GITREPO" ] ; then
rm -rf ./sdc
@@ -48,29 +61,41 @@ else
git clone --depth 1 http://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
+export TEST_SUITE="$1"
ifconfig
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,17 +106,40 @@ 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}"
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}"
+fi
+
+# 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...
--
cgit 1.2.3-korg