diff options
author | Gary Wu <gary.i.wu@huawei.com> | 2018-03-07 17:12:21 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2018-03-07 17:12:21 +0000 |
commit | 43cee066880eabe9745149c44aa96cd9a99d1e0e (patch) | |
tree | 254bc77a35ea9accc4b178d79a51c6649e69bbab | |
parent | 952f9fa66b664d15f4a2b59e15f8e5e37ebee0ce (diff) | |
parent | 62b8b1254aff20a874a2867fda42bbaf3bb1b193 (diff) |
Merge "Initial CSIT framework for dmaap/buscontroller"
-rwxr-xr-x | test/csit/plans/dmaap-buscontroller/mock_downstream/setup.sh | 42 | ||||
-rw-r--r-- | test/csit/plans/dmaap-buscontroller/mock_downstream/teardown.sh | 26 | ||||
-rw-r--r-- | test/csit/plans/dmaap-buscontroller/mock_downstream/testplan.txt | 4 | ||||
-rw-r--r-- | test/csit/scripts/dmaap-buscontroller/.mock-aaf.sh.swp | bin | 0 -> 12288 bytes | |||
-rwxr-xr-x | test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh | 52 | ||||
-rwxr-xr-x | test/csit/scripts/dmaap-buscontroller/dmaapbc-launch.sh | 30 | ||||
-rwxr-xr-x | test/csit/scripts/dmaap-buscontroller/init-mock-aaf.sh | 53 | ||||
-rwxr-xr-x | test/csit/scripts/dmaap-buscontroller/init-mock-drps.sh | 17 | ||||
-rwxr-xr-x | test/csit/scripts/dmaap-buscontroller/init-mock-mrc.sh | 17 | ||||
-rw-r--r-- | test/csit/scripts/dmaap-buscontroller/onapCSIT.env | 18 | ||||
-rwxr-xr-x | test/csit/scripts/dmaap-buscontroller/start-mock.sh | 48 | ||||
-rw-r--r-- | test/csit/tests/dmaap-buscontroller/suite1/__init__.robot | 3 | ||||
-rw-r--r-- | test/csit/tests/dmaap-buscontroller/suite1/test1.robot | 42 |
13 files changed, 352 insertions, 0 deletions
diff --git a/test/csit/plans/dmaap-buscontroller/mock_downstream/setup.sh b/test/csit/plans/dmaap-buscontroller/mock_downstream/setup.sh new file mode 100755 index 000000000..a19454be5 --- /dev/null +++ b/test/csit/plans/dmaap-buscontroller/mock_downstream/setup.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# org.onap.dmaap +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= +# +# + + +# Place the scripts in run order: +source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/start-mock.sh +start_mock "aaf" +AAF_IP=${IP} +start_mock "mrc" 3904 +MRC_IP=${IP} +start_mock "drps" +DRPS_IP=${IP} + +source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dmaapbc-launch.sh +dmaapbc_launch $AAF_IP $MRC_IP $DRPS_IP +DMAAPBC_IP=${IP} + + +echo "AAF_IP=$AAF_IP MRC_IP=$MRC_IP DRPS_IP=$DRPS_IP DMAAPBC_IP=$DMAAPBC_IP" + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v AAF_IP:${AAF_IP} -v MRC_IP:${MRC_IP} -v DRPS_IP:${DRPS_IP} -v DMAAPBC_IP:${DMAAPBC_IP}" + diff --git a/test/csit/plans/dmaap-buscontroller/mock_downstream/teardown.sh b/test/csit/plans/dmaap-buscontroller/mock_downstream/teardown.sh new file mode 100644 index 000000000..1b041a425 --- /dev/null +++ b/test/csit/plans/dmaap-buscontroller/mock_downstream/teardown.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# org.onap.dmaap +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= +# +# +kill-instance.sh aaf-mock +kill-instance.sh drps-mock +kill-instance.sh mrc-mock +kill-instance.sh dmaapbc + diff --git a/test/csit/plans/dmaap-buscontroller/mock_downstream/testplan.txt b/test/csit/plans/dmaap-buscontroller/mock_downstream/testplan.txt new file mode 100644 index 000000000..39a2f4499 --- /dev/null +++ b/test/csit/plans/dmaap-buscontroller/mock_downstream/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +dmaap-buscontroller/suite1 + diff --git a/test/csit/scripts/dmaap-buscontroller/.mock-aaf.sh.swp b/test/csit/scripts/dmaap-buscontroller/.mock-aaf.sh.swp Binary files differnew file mode 100644 index 000000000..edadfe903 --- /dev/null +++ b/test/csit/scripts/dmaap-buscontroller/.mock-aaf.sh.swp diff --git a/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh b/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh new file mode 100755 index 000000000..7ec7345d5 --- /dev/null +++ b/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +# $1 is the IP address of the buscontroller +# $2 is the IP address of the DRPS +# $3 is the IP address of the MRC + +# INITIALIZE: dmaap object +JSON=/tmp/$$.dmaap +cat << EOF > $JSON +{ + "version": "1", + "topicNsRoot": "org.onap.dmaap", + "drProvUrl": "http://${2}:8080", + "dmaapName": "onapCSIT", + "bridgeAdminTopic": "MM_AGENT_PROV" + +} +EOF + +curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/dmaap + + + +# INITIALIZE: dcaeLocation object +JSON=/tmp/$$.loc +cat << EOF > $JSON +{ + "dcaeLocationName": "csit-sanfrancisco", + "dcaeLayer": "central-cloud", + "clli": "CSIT12345", + "zone": "zoneA" + +} +EOF + +curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/dcaeLocations + + +# INITIALIZE: MR object in 1 site +JSON=/tmp/$$.mrc +cat << EOF > $JSON +{ + "dcaeLocationName": "csit-sanfrancisco", + "fqdn": "$3", + "hosts" : [ "$3", "$3", "$3" ], + "protocol" : "https", + "port": "3094" + +} +EOF + +curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/mr_clusters diff --git a/test/csit/scripts/dmaap-buscontroller/dmaapbc-launch.sh b/test/csit/scripts/dmaap-buscontroller/dmaapbc-launch.sh new file mode 100755 index 000000000..f8f8c24e0 --- /dev/null +++ b/test/csit/scripts/dmaap-buscontroller/dmaapbc-launch.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# script to launch DMaaP buscontroller docker container +# sets global var IP with assigned IP address + +function dmaapbc_launch() { + TAG=dmaap/buscontroller + CONTAINER_NAME=dmaapbc + IP="" + + cd ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller + + TMP_CFG=/tmp/docker-databys-controller.conf + . ./onapCSIT.env > $TMP_CFG + docker run -d --name $CONTAINER_NAME -v $TMP_CFG:/opt/app/config/conf $TAG + IP=`get-instance-ip.sh ${CONTAINER_NAME}` + + # Wait for initialization + for i in {1..10}; do + curl -sS ${IP}:8080 && break + echo sleep $i + sleep $i + done + + set -x + ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh ${IP} + set +x + + +} diff --git a/test/csit/scripts/dmaap-buscontroller/init-mock-aaf.sh b/test/csit/scripts/dmaap-buscontroller/init-mock-aaf.sh new file mode 100755 index 000000000..f25404ce3 --- /dev/null +++ b/test/csit/scripts/dmaap-buscontroller/init-mock-aaf.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# $1 is the IP address of the AAF mock server + +#curl -v -X PUT -d @- http://$1:1080/expectation << EOF +#{ +# "httpRequest": { +# "method": "GET", +# "path": "/hello" +# }, +# "httpResponse": { +# "body": "Hello world!", +# "statusCode": 200 +# }, +# "times" : { +# "unlimited" : true +# } +#} +#EOF +# "httpRequest": { +# "method": "POST", +# "path": "/proxy/authz/.*" +# }, + +curl -v -X PUT -d @- http://$1:1080/expectation << EOF +{ + "httpRequest": { + "method": ".*", + "path": "/.*" + }, + "httpResponse": { + "body": "Hello world!", + "statusCode": 200 + }, + "times" : { + "unlimited" : true + } +} +EOF + +#curl -v -X PUT -d @- http://$1:1080/expectation << EOF +#{ +# "httpRequest": { +# "method": "POST", +# "path": "/proxy/authz/role/perm" +# }, +# "httpResponse": { +# "body": "Hello world!", +# "statusCode": 200 +# } +#} +#EOF + diff --git a/test/csit/scripts/dmaap-buscontroller/init-mock-drps.sh b/test/csit/scripts/dmaap-buscontroller/init-mock-drps.sh new file mode 100755 index 000000000..e0f1d0f19 --- /dev/null +++ b/test/csit/scripts/dmaap-buscontroller/init-mock-drps.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# $1 is the IP address of the DRPS (Data Router Provisioning Server) mock server + +curl -v -X PUT -d @- http://$1:1080/expectation << EOF +{ + "httpRequest": { + "method": "GET", + "path": "/hello" + }, + "httpResponse": { + "body": "Hello world!", + "statusCode": 200 + } +} +EOF + diff --git a/test/csit/scripts/dmaap-buscontroller/init-mock-mrc.sh b/test/csit/scripts/dmaap-buscontroller/init-mock-mrc.sh new file mode 100755 index 000000000..75c1a419a --- /dev/null +++ b/test/csit/scripts/dmaap-buscontroller/init-mock-mrc.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# $1 is the IP address of the MRC (MR Central) mock server + +curl -v -X PUT -d @- http://$1:1080/expectation << EOF +{ + "httpRequest": { + "method": "GET", + "path": "/hello" + }, + "httpResponse": { + "body": "Hello world!", + "statusCode": 200 + } +} +EOF + diff --git a/test/csit/scripts/dmaap-buscontroller/onapCSIT.env b/test/csit/scripts/dmaap-buscontroller/onapCSIT.env new file mode 100644 index 000000000..58432e6a7 --- /dev/null +++ b/test/csit/scripts/dmaap-buscontroller/onapCSIT.env @@ -0,0 +1,18 @@ +#!/bin/bash +# +# environment settings for Dmaap Bus Controller Integration Test. +# assumes args are: +# $1 - FQDN of AAF server +# $2 - FQDN of MR server +# $3 - FQDN of DRPS Server +# Only need to set values where defaults aren't appropriate +# +cat <<!EOF +DMAAPBC_INT_HTTPS_PORT=0 +DMAAPBC_PG_ENABLED=false +DMAAPBC_INSTANCE_NAME=ONAP-CSIT +DMAAPBC_AAF_URL=https://${1}:1080/proxy/ +DMAAPBC_MR_CNAME=${2} +DMAAPBC_DRPROV_FQDN=${3} +DMAAPBC_CSIT=Yes +!EOF diff --git a/test/csit/scripts/dmaap-buscontroller/start-mock.sh b/test/csit/scripts/dmaap-buscontroller/start-mock.sh new file mode 100755 index 000000000..b4707c5af --- /dev/null +++ b/test/csit/scripts/dmaap-buscontroller/start-mock.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# org.onap.dmaap +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= +# +# + +# +# starts a mock server container named $1-mock +# and runs init-mock-$1.sh to initialize it +# modifies global var IP to provide the IP address of the started container +function start_mock() { + IP="" + app=$1 + port=${2:-1080} + docker run --name ${app}-mock -d jamesdbloom/mockserver /opt/mockserver/run_mockserver.sh -logLevel INFO -serverPort ${port} -proxyPort 1090 + IP=`get-instance-ip.sh ${app}-mock` + + # Wait for initialization + for i in {1..10}; do + curl -sS ${IP}:${port} && break + echo sleep $i + sleep $i + done + + set -x + ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/init-mock-${app}.sh ${IP} + set +x + + # this is the output of this function + #echo "$IP" +} + diff --git a/test/csit/tests/dmaap-buscontroller/suite1/__init__.robot b/test/csit/tests/dmaap-buscontroller/suite1/__init__.robot new file mode 100644 index 000000000..41c7a0037 --- /dev/null +++ b/test/csit/tests/dmaap-buscontroller/suite1/__init__.robot @@ -0,0 +1,3 @@ +*** Settings *** +Documentation dmaap-buscontroller - Suite 1 + diff --git a/test/csit/tests/dmaap-buscontroller/suite1/test1.robot b/test/csit/tests/dmaap-buscontroller/suite1/test1.robot new file mode 100644 index 000000000..be4e8cc6c --- /dev/null +++ b/test/csit/tests/dmaap-buscontroller/suite1/test1.robot @@ -0,0 +1,42 @@ +*** Settings *** +Library OperatingSystem +Library RequestsLibrary + +*** Variables *** +${MESSAGE} Hello, world! +${DBC_URI} /webapi + +*** Test Cases *** +String Equality Test + Should Be Equal ${MESSAGE} Hello, world! + +Dir Test + [Documentation] Check if /tmp exists + Log ${MESSAGE} + CheckDir /tmp + +Url Test + [Documentation] Check if www.onap.org can be reached + Create Session openo http://www.onap.org + CheckUrl openo / 200 + +Mock Hello Server Test + [Documentation] Check /hello endpoint + Create Session hello http://${AAF_IP}:1080 + CheckUrl hello /hello 200 + +Heartbeat Test + [Documentation] Check ${DBC_URI}/info endpoint + Create Session heartbeat http://${DMAAPBC_IP}:8080 + CheckUrl heartbeat ${DBC_URI}/info 204 + +*** Keywords *** +CheckDir + [Arguments] ${path} + Directory Should Exist ${path} + +CheckUrl + [Arguments] ${session} ${path} ${expect} + ${resp}= Get Request ${session} ${path} + Should Be Equal As Integers ${resp.status_code} ${expect} + |