diff options
12 files changed, 190 insertions, 4 deletions
diff --git a/test/csit/plans/dcaegen2/hv-ves-testsuites/docker-compose.yml b/test/csit/plans/dcaegen2/hv-ves-testsuites/docker-compose.yml new file mode 100644 index 000000000..28cded8cb --- /dev/null +++ b/test/csit/plans/dcaegen2/hv-ves-testsuites/docker-compose.yml @@ -0,0 +1,72 @@ +version: "3" + +networks: + ves-hv-default: + external: + name: $CONTAINERS_NETWORK + +services: + zookeeper: + image: wurstmeister/zookeeper + ports: + - "2181:2181" + networks: + - ves-hv-default + + kafka: + image: wurstmeister/kafka + ports: + - "9092:9092" + environment: + KAFKA_ADVERTISED_HOST_NAME: "kafka" + KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true' + KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181" + KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://kafka:9092" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + depends_on: + - zookeeper + networks: + - ves-hv-default + + consul: + image: progrium/consul + ports: + - "8500:8500" + environment: + - CONSUL_BIND_INTERFACE=eth0 + networks: + ves-hv-default: + aliases: + - consul + command: ["-server", "-bootstrap"] + + ves-hv-collector: + image: $DOCKER_REGISTRY/onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main + ports: + - "6061:6061/tcp" + entrypoint: ["java", "-Dio.netty.leakDetection.level=paranoid", "-cp", "*:", "org.onap.dcae.collectors.veshv.main.MainKt"] + command: ["--listen-port", "6061","--config-url", "http://consul:8500/v1/kv/veshv-config"] + depends_on: + - kafka + volumes: + - ./ssl/:/etc/ves-hv/ + networks: + - ves-hv-default + + dcae-app-simulator: + image: $DOCKER_REGISTRY/onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-dcae-app-simulator + ports: + - "6063:6063/tcp" + command: ["--listen-port", "6063", "--kafka-bootstrap-servers", "kafka:9092", "--kafka-topics", "ves_hvRanMeas"] + healthcheck: + interval: 10s + timeout: 5s + retries: 2 + test: ["CMD", "curl", "--request", "GET", "--fail", "--silent", "--show-error", "localhost:6063/healthcheck"] + depends_on: + - kafka + networks: + ves-hv-default: + aliases: + - dcae-app-simulator
\ No newline at end of file diff --git a/test/csit/plans/dcaegen2/hv-ves-testsuites/setup.sh b/test/csit/plans/dcaegen2/hv-ves-testsuites/setup.sh new file mode 100755 index 000000000..48e39807f --- /dev/null +++ b/test/csit/plans/dcaegen2/hv-ves-testsuites/setup.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +set -euo pipefail + +pip uninstall -y docker-py +pip install docker + +COMPOSE_VERSION=1.22.0 +COMPOSE_LOCATION='/usr/local/bin/docker-compose' +sudo curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m) -o ${COMPOSE_LOCATION} +sudo chmod +x ${COMPOSE_LOCATION} + + +echo "Removing not used docker networks" +docker network prune -f + +export CONTAINERS_NETWORK=ves-hv-default +echo "Creating network for containers: ${CONTAINERS_NETWORK}" +docker network create ${CONTAINERS_NETWORK} + +cd ssl +make FILE=client +make FILE=server +make FILE=invalid_client CA=invalid_trust +cd .. + +export DOCKER_REGISTRY="nexus3.onap.org:10001" +CURRENT_DIR=${PWD##*/} +VES_HV_CONTAINER_NAME=ves-hv-collector + +# little race condition between container start-up and required files copying below +docker-compose up -d + +COMPOSE_VES_HV_CONTAINER_NAME=${CURRENT_DIR}_${VES_HV_CONTAINER_NAME}_1 +echo "COPY tls authorization files to container: ${COMPOSE_VES_HV_CONTAINER_NAME}" +docker cp ssl/. ${COMPOSE_VES_HV_CONTAINER_NAME}:/etc/ves-hv +# race condition end + + +export ROBOT_VARIABLES="--pythonpath ${WORKSPACE}/test/csit/tests/dcaegen2/hv-ves-testcases/libraries"
\ No newline at end of file diff --git a/test/csit/plans/dcaegen2/hv-ves-testsuites/ssl/Makefile b/test/csit/plans/dcaegen2/hv-ves-testsuites/ssl/Makefile new file mode 100644 index 000000000..5fddc6b1d --- /dev/null +++ b/test/csit/plans/dcaegen2/hv-ves-testsuites/ssl/Makefile @@ -0,0 +1,32 @@ +FILE=sample +CA_PASSWD=onap +SUBJ=/C=PL/ST=DL/L=Wroclaw/O=Nokia/OU=MANO +CA=trust + +sign: $(FILE).crt + +clean: + rm -f *.crt *.key *.srl *.csr + +generate-ca-certificate: $(CA).crt + +generate-private-key: $(FILE).key + +create-public-key: $(FILE).pub + +create-sign-request: $(FILE).csr + +$(CA).crt: + openssl req -new -x509 -keyout $(CA).key -out $(CA).crt -days 365 -passout pass:$(CA_PASSWD) -subj "$(SUBJ)" + +$(FILE).key: + openssl genpkey -algorithm RSA -out $(FILE).key -pkeyopt rsa_keygen_bits:2048 + +$(FILE).pub: $(FILE).key + openssl x509 -req -days 360 -in client.csr -CA $(CA).crt -CAkey $(CA).key -CAcreateserial -out client.crt + +$(FILE).csr: $(FILE).key + openssl req -new -sha256 -key $(FILE).key -out $(FILE).csr -subj "$(SUBJ)" + +$(FILE).crt: $(CA).crt $(FILE).csr + openssl x509 -req -days 360 -in $(FILE).csr -CA $(CA).crt -CAkey $(CA).key -out $(FILE).crt -CAcreateserial -passin pass:$(CA_PASSWD)
\ No newline at end of file diff --git a/test/csit/plans/dcaegen2/hv-ves-testsuites/ssl/README.md b/test/csit/plans/dcaegen2/hv-ves-testsuites/ssl/README.md new file mode 100644 index 000000000..174c16641 --- /dev/null +++ b/test/csit/plans/dcaegen2/hv-ves-testsuites/ssl/README.md @@ -0,0 +1,18 @@ +# Generating SSL certificates + +Typical usage: + +```shell +make FILE=client +make FILE=server +``` + +Will generate CA certificate and signed client and server certificates. + +More "low-level" usage: + +```shell +make generate-ca-certificate +make generate-private-key FILE=client +make sign FILE=client +``` diff --git a/test/csit/plans/dcaegen2/hv-ves-testsuites/teardown.sh b/test/csit/plans/dcaegen2/hv-ves-testsuites/teardown.sh new file mode 100755 index 000000000..91ad90305 --- /dev/null +++ b/test/csit/plans/dcaegen2/hv-ves-testsuites/teardown.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +cd ssl +make clean +cd .. + +docker-compose logs > ${WORKSPACE}/archives/docker-compose.log +docker-compose down +docker-compose rm -f + +docker network rm ${CONTAINERS_NETWORK}
\ No newline at end of file diff --git a/test/csit/plans/dcaegen2/hv-ves-testsuites/testplan.txt b/test/csit/plans/dcaegen2/hv-ves-testsuites/testplan.txt new file mode 100644 index 000000000..3f4f14806 --- /dev/null +++ b/test/csit/plans/dcaegen2/hv-ves-testsuites/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +dcaegen2/hv-ves-testcases + diff --git a/test/csit/scripts/optf-has/has/has-properties/conductor.conf.onap b/test/csit/scripts/optf-has/has/has-properties/conductor.conf.onap index a8e84846c..1f644264b 100644 --- a/test/csit/scripts/optf-has/has/has-properties/conductor.conf.onap +++ b/test/csit/scripts/optf-has/has/has-properties/conductor.conf.onap @@ -252,7 +252,7 @@ music_new_version = True # Base URL for Music REST API without a trailing slash. (string value) server_url = http://localhost:8080/MUSIC/rest/v2 version = v2 -music_version = "2.4.22" +music_version = "3.0.3" aafuser = conductor aafpass = c0nduct0r aafns = conductor diff --git a/test/csit/scripts/optf-has/has/has_script.sh b/test/csit/scripts/optf-has/has/has_script.sh index ee5479e10..08bf0bcb0 100755 --- a/test/csit/scripts/optf-has/has/has_script.sh +++ b/test/csit/scripts/optf-has/has/has_script.sh @@ -63,6 +63,10 @@ echo "MULTICLOUDSIM_IP=${MULTICLOUDSIM_IP}" sed -i -e "s%msb.onap.org:8082/%${MULTICLOUDSIM_IP}:8082/%g" /tmp/conductor/properties/conductor.conf #onboard conductor into music +echo "Query MUSIC to check for reachability. Query Version" +curl -vvvvv --noproxy "*" --request GET http://${MUSIC_IP}:8080/MUSIC/rest/v2/version -H "Content-Type: application/json" + +echo "Onboard conductor into music" curl -vvvvv --noproxy "*" --request POST http://${MUSIC_IP}:8080/MUSIC/rest/v2/admin/onboardAppWithMusic -H "Content-Type: application/json" --data @${WORKSPACE}/test/csit/tests/optf-has/has/data/onboard.json docker run -d --name cond-cont -v ${COND_CONF}:/usr/local/bin/conductor.conf -v ${LOG_CONF}:/usr/local/bin/log.conf ${IMAGE_NAME}:latest python /usr/local/bin/conductor-controller --config-file=/usr/local/bin/conductor.conf diff --git a/test/csit/scripts/optf-has/has/music_script.sh b/test/csit/scripts/optf-has/has/music_script.sh index fdd9a3e26..1e978c2f9 100755 --- a/test/csit/scripts/optf-has/has/music_script.sh +++ b/test/csit/scripts/optf-has/has/music_script.sh @@ -51,10 +51,10 @@ docker run -d --name music-db --network music-net -p "7000:7000" -p "7001:7001" CASSA_IP=`docker inspect -f '{{ $network := index .NetworkSettings.Networks "music-net" }}{{ $network.IPAddress}}' music-db` echo "CASSANDRA_IP=${CASSA_IP}" ${WORKSPACE}/test/csit/scripts/optf-has/has/wait_for_port.sh ${CASSA_IP} 9042 - +sleep 60 # Start Music war docker run -d --name music-war -v music-vol:/app ${MUSIC_IMG}; - +sleep 15 # Start Zookeeper docker run -d --name music-zk --network music-net -p "2181:2181" -p "2888:2888" -p "3888:3888" ${ZK_IMG}; #ZOO_IP=`docker inspect --format '{{ .NetworkSettings.Networks.bridge.IPAddress}}' music-zk` @@ -80,7 +80,7 @@ echo "TOMCAT_IP=${TOMCAT_IP}" ${WORKSPACE}/test/csit/scripts/optf-has/has/wait_for_port.sh ${TOMCAT_IP} 8080 # wait a while to make sure music is totally up and configured -sleep 10 +sleep 60 echo "inspect docker things for tracing purpose" docker inspect music-db diff --git a/test/csit/tests/dcaegen2/hv-ves-testcases/__init__.robot b/test/csit/tests/dcaegen2/hv-ves-testcases/__init__.robot new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/test/csit/tests/dcaegen2/hv-ves-testcases/__init__.robot diff --git a/test/csit/tests/dcaegen2/hv-ves-testcases/hv-ves.robot b/test/csit/tests/dcaegen2/hv-ves-testcases/hv-ves.robot new file mode 100644 index 000000000..36093f449 --- /dev/null +++ b/test/csit/tests/dcaegen2/hv-ves-testcases/hv-ves.robot @@ -0,0 +1,4 @@ +*** Test Cases *** +Initial testcase + [Documentation] Testing tests setup script + Log Robot framework execution successful
\ No newline at end of file diff --git a/test/csit/tests/optf-has/has/optf_has_test.robot b/test/csit/tests/optf-has/has/optf_has_test.robot index 815ffa850..deba6470e 100644 --- a/test/csit/tests/optf-has/has/optf_has_test.robot +++ b/test/csit/tests/optf-has/has/optf_has_test.robot @@ -115,6 +115,7 @@ Get Root Url Log To Console response = ${resp} Log To Console body = ${resp.text} Should Be Equal As Integers ${resp.status_code} 200 + Sleep 10s Wait For 10 seconds Conductor AddHealthcheck Row Into Music [Documentation] It sends a REST PUT request to Music to inject healthcheck plan |