aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGary Wu <gary.i.wu@huawei.com>2018-03-07 17:12:21 +0000
committerGerrit Code Review <gerrit@onap.org>2018-03-07 17:12:21 +0000
commit43cee066880eabe9745149c44aa96cd9a99d1e0e (patch)
tree254bc77a35ea9accc4b178d79a51c6649e69bbab
parent952f9fa66b664d15f4a2b59e15f8e5e37ebee0ce (diff)
parent62b8b1254aff20a874a2867fda42bbaf3bb1b193 (diff)
Merge "Initial CSIT framework for dmaap/buscontroller"
-rwxr-xr-xtest/csit/plans/dmaap-buscontroller/mock_downstream/setup.sh42
-rw-r--r--test/csit/plans/dmaap-buscontroller/mock_downstream/teardown.sh26
-rw-r--r--test/csit/plans/dmaap-buscontroller/mock_downstream/testplan.txt4
-rw-r--r--test/csit/scripts/dmaap-buscontroller/.mock-aaf.sh.swpbin0 -> 12288 bytes
-rwxr-xr-xtest/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh52
-rwxr-xr-xtest/csit/scripts/dmaap-buscontroller/dmaapbc-launch.sh30
-rwxr-xr-xtest/csit/scripts/dmaap-buscontroller/init-mock-aaf.sh53
-rwxr-xr-xtest/csit/scripts/dmaap-buscontroller/init-mock-drps.sh17
-rwxr-xr-xtest/csit/scripts/dmaap-buscontroller/init-mock-mrc.sh17
-rw-r--r--test/csit/scripts/dmaap-buscontroller/onapCSIT.env18
-rwxr-xr-xtest/csit/scripts/dmaap-buscontroller/start-mock.sh48
-rw-r--r--test/csit/tests/dmaap-buscontroller/suite1/__init__.robot3
-rw-r--r--test/csit/tests/dmaap-buscontroller/suite1/test1.robot42
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
new file mode 100644
index 000000000..edadfe903
--- /dev/null
+++ b/test/csit/scripts/dmaap-buscontroller/.mock-aaf.sh.swp
Binary files differ
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}
+