aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Ospalý <p.ospaly@partner.samsung.com>2019-09-11 17:03:03 +0200
committerPetr Ospalý <p.ospaly@partner.samsung.com>2019-09-20 08:22:05 +0200
commite12a5ef7fa61256acdc2d44df637bdb3aee370f3 (patch)
treee2738f3527b022fda41c36b51ab224d095f2d804
parent9a15e1f277faf4a85d234bde559a10f6ce7018c6 (diff)
Add support for HTTPS in SDC sanity/uiSanity tests
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ý <p.ospaly@partner.samsung.com> Change-Id: I3db9f2e1c22a539df3b6c356bd91f67f0328cbd7 Signed-off-by: Petr Ospalý <p.ospaly@partner.samsung.com>
-rw-r--r--plans/sdc/sanity/setup.sh3
-rw-r--r--plans/sdc/uiSanity/setup.sh3
-rw-r--r--scripts/sdc/setup_sdc_for_sanity.sh98
-rw-r--r--tests/sdc/sanity/test1.robot4
-rw-r--r--tests/sdc/uiSanity/test1.robot4
5 files changed, 83 insertions, 29 deletions
diff --git a/plans/sdc/sanity/setup.sh b/plans/sdc/sanity/setup.sh
index 20a8eac3..8c0336c9 100644
--- a/plans/sdc/sanity/setup.sh
+++ b/plans/sdc/sanity/setup.sh
@@ -15,6 +15,9 @@
# limitations under the License.
#
+# It can enable HTTPS for SDC sanity tests
+export SDC_TEST_HTTPS="${SDC_TEST_HTTPS:-false}"
+
# By default all images are from remote upstream registry, this option
# provides the chance to test locally built images
export SDC_LOCAL_IMAGES="${SDC_LOCAL_IMAGES:-false}"
diff --git a/plans/sdc/uiSanity/setup.sh b/plans/sdc/uiSanity/setup.sh
index b02cd7be..bfb9a153 100644
--- a/plans/sdc/uiSanity/setup.sh
+++ b/plans/sdc/uiSanity/setup.sh
@@ -15,6 +15,9 @@
# limitations under the License.
#
+# It can enable HTTPS for SDC uiSanity tests
+export SDC_TEST_HTTPS="${SDC_TEST_HTTPS:-false}"
+
# By default all images are from remote upstream registry, this option
# provides the chance to test locally built images
export SDC_LOCAL_IMAGES="${SDC_LOCAL_IMAGES:-false}"
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: <variable name>
+# returns 0: if <variable name> 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...
diff --git a/tests/sdc/sanity/test1.robot b/tests/sdc/sanity/test1.robot
index 3705d8f5..2b92be74 100644
--- a/tests/sdc/sanity/test1.robot
+++ b/tests/sdc/sanity/test1.robot
@@ -7,9 +7,9 @@ Library json
*** Test Cases ***
Get Requests health check ok
[Tags] get
- CreateSession sdc-be http://localhost:8181
+ CreateSession sdc-fe ${SDC_FE_PROTOCOL}://localhost:${SDC_FE_PORT}
${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= Get Request sdc-be /sdc1/rest/healthCheck headers=&{headers}
+ ${resp}= Get Request sdc-fe /sdc1/rest/healthCheck headers=&{headers}
Should Be Equal As Strings ${resp.status_code} 200
@{ITEMS}= Copy List ${resp.json()['componentsInfo']}
: FOR ${ELEMENT} IN @{ITEMS}
diff --git a/tests/sdc/uiSanity/test1.robot b/tests/sdc/uiSanity/test1.robot
index 3705d8f5..2b92be74 100644
--- a/tests/sdc/uiSanity/test1.robot
+++ b/tests/sdc/uiSanity/test1.robot
@@ -7,9 +7,9 @@ Library json
*** Test Cases ***
Get Requests health check ok
[Tags] get
- CreateSession sdc-be http://localhost:8181
+ CreateSession sdc-fe ${SDC_FE_PROTOCOL}://localhost:${SDC_FE_PORT}
${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= Get Request sdc-be /sdc1/rest/healthCheck headers=&{headers}
+ ${resp}= Get Request sdc-fe /sdc1/rest/healthCheck headers=&{headers}
Should Be Equal As Strings ${resp.status_code} 200
@{ITEMS}= Copy List ${resp.json()['componentsInfo']}
: FOR ${ELEMENT} IN @{ITEMS}