From 9abb61ca2cea1907cab2cec312d6dca6e53a93cd Mon Sep 17 00:00:00 2001 From: Gary Wu Date: Thu, 27 Sep 2018 10:38:50 -0700 Subject: Move CSIT to integration/csit repo To facilite branching of CSIT tests, all CSIT test code and scripts are relocated to the integration/csit repo. Change-Id: I1e4c0eff44691f73f8098b3c52764107f6b8b8df Issue-ID: INT-671 Signed-off-by: Gary Wu --- scripts/externalapi-nbi/delete_nbi_containers.sh | 33 +++++++++++ scripts/externalapi-nbi/start_nbi_containers.sh | 70 ++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 scripts/externalapi-nbi/delete_nbi_containers.sh create mode 100644 scripts/externalapi-nbi/start_nbi_containers.sh (limited to 'scripts/externalapi-nbi') diff --git a/scripts/externalapi-nbi/delete_nbi_containers.sh b/scripts/externalapi-nbi/delete_nbi_containers.sh new file mode 100644 index 00000000..76be3289 --- /dev/null +++ b/scripts/externalapi-nbi/delete_nbi_containers.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# ======================================================================== +# Copyright (c) 2018 Orange +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ======================================================================== + +echo "This is ${WORKSPACE}/test/csit/scripts/externalapi-nbi/delete_nbi_containers.sh" + +# Check if docker-compose file exists +if [ ! -f "$WORKSPACE/externalapi-nbi/docker-compose.yml" ]; then + echo 'There is nothing to clean. Exiting...' >&2 + exit 0 +fi + +cd $WORKSPACE/externalapi-nbi + +# Remove containers and attached/anonymous volume(s) +docker-compose down -v +# Force stop & remove all containers and volumes +docker-compose rm -f -s -v + +# clean up +rm -rf $WORKSPACE/externalapi-nbi \ No newline at end of file diff --git a/scripts/externalapi-nbi/start_nbi_containers.sh b/scripts/externalapi-nbi/start_nbi_containers.sh new file mode 100644 index 00000000..68fbb029 --- /dev/null +++ b/scripts/externalapi-nbi/start_nbi_containers.sh @@ -0,0 +1,70 @@ +#!/bin/bash +# ======================================================================== +# Copyright (c) 2018 Orange +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ======================================================================== + +NEXUS_USERNAME=docker +NEXUS_PASSWD=docker +export NEXUS_DOCKER_REPO=nexus3.onap.org:10001 +export DOCKER_IMAGE_VERSION=latest + +echo "This is ${WORKSPACE}/test/csit/scripts/externalapi-nbi/start_nbi_containers.sh" + +# Create directory +mkdir -p $WORKSPACE/externalapi-nbi +cd $WORKSPACE/externalapi-nbi + +# Create .env file to access env variables for docker-compose +echo "NEXUS_DOCKER_REPO=${NEXUS_DOCKER_REPO}" > .env +echo "MSB_ENABLED=false" >> .env + +# Fetch the latest docker-compose.yml +wget -O docker-compose.yml 'https://git.onap.org/externalapi/nbi/plain/docker-compose.yml?h=master' + +# Pull the nbi docker image from nexus +# MariaDB and mongoDB will be pulled automatically from docker.io during docker-compose +docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO +docker pull $NEXUS_DOCKER_REPO/onap/externalapi/nbi:$DOCKER_IMAGE_VERSION + +# Start nbi, MariaDB and MongoDB containers with docker compose and nbi/docker-compose.yml +docker-compose up -d mariadb mongo + +# inject a script to ensure that these services are ready for connections +docker-compose run --rm --entrypoint='/bin/sh' nbi -c '\ + attempt=1; \ + while ! nc -z mariadb 3306 || ! nc -z mongo 27017; do \ + if [ $attempt = 30 ]; then \ + echo "Timed out!"; \ + exit 1; \ + fi; \ + echo "waiting for db services (attempt #$attempt)..."; \ + sleep 1; \ + attempt=$(( attempt + 1)); \ + done; \ + echo "all db services are ready for connections!" \ +' + +docker-compose up -d nbi + +NBI_CONTAINER_NAME=$(docker-compose ps 2> /dev/null | tail -n+3 | tr -s ' ' | cut -d' ' -f1 | grep _nbi_) +NBI_IP=$(docker inspect --format='{{ range .NetworkSettings.Networks }}{{ .IPAddress }}{{ end }}' ${NBI_CONTAINER_NAME}) + +echo "IP address for NBI main container ($NBI_CONTAINER_NAME) is set to ${NBI_IP}." + +# Wait for initialization +for i in {1..30}; do + curl -sS ${NBI_IP}:8080 > /dev/null 2>&1 && echo 'nbi initialized' && break + echo sleep $i + sleep $i +done -- cgit