Initial CSIT framework for dmaap/buscontroller 47/34547/1
authordglFromAtt <dgl@research.att.com>
Sat, 3 Mar 2018 16:57:29 +0000 (11:57 -0500)
committerdglFromAtt <dgl@research.att.com>
Sat, 3 Mar 2018 16:58:11 +0000 (11:58 -0500)
Change-Id: I068ccaafbeeea0d08949e83cccac56a238901aa3
Signed-off-by: dglFromAtt <dgl@research.att.com>
Issue-ID: DMAAP-318

13 files changed:
test/csit/plans/dmaap-buscontroller/mock_downstream/setup.sh [new file with mode: 0755]
test/csit/plans/dmaap-buscontroller/mock_downstream/teardown.sh [new file with mode: 0644]
test/csit/plans/dmaap-buscontroller/mock_downstream/testplan.txt [new file with mode: 0644]
test/csit/scripts/dmaap-buscontroller/.mock-aaf.sh.swp [new file with mode: 0644]
test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh [new file with mode: 0755]
test/csit/scripts/dmaap-buscontroller/dmaapbc-launch.sh [new file with mode: 0755]
test/csit/scripts/dmaap-buscontroller/init-mock-aaf.sh [new file with mode: 0755]
test/csit/scripts/dmaap-buscontroller/init-mock-drps.sh [new file with mode: 0755]
test/csit/scripts/dmaap-buscontroller/init-mock-mrc.sh [new file with mode: 0755]
test/csit/scripts/dmaap-buscontroller/onapCSIT.env [new file with mode: 0644]
test/csit/scripts/dmaap-buscontroller/start-mock.sh [new file with mode: 0755]
test/csit/tests/dmaap-buscontroller/suite1/__init__.robot [new file with mode: 0644]
test/csit/tests/dmaap-buscontroller/suite1/test1.robot [new file with mode: 0644]

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 (executable)
index 0000000..a19454b
--- /dev/null
@@ -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 (file)
index 0000000..1b041a4
--- /dev/null
@@ -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 (file)
index 0000000..39a2f44
--- /dev/null
@@ -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 (file)
index 0000000..edadfe9
Binary files /dev/null and b/test/csit/scripts/dmaap-buscontroller/.mock-aaf.sh.swp 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 (executable)
index 0000000..7ec7345
--- /dev/null
@@ -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 (executable)
index 0000000..f8f8c24
--- /dev/null
@@ -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 (executable)
index 0000000..f25404c
--- /dev/null
@@ -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 (executable)
index 0000000..e0f1d0f
--- /dev/null
@@ -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 (executable)
index 0000000..75c1a41
--- /dev/null
@@ -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 (file)
index 0000000..58432e6
--- /dev/null
@@ -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 (executable)
index 0000000..b4707c5
--- /dev/null
@@ -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 (file)
index 0000000..41c7a00
--- /dev/null
@@ -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 (file)
index 0000000..be4e8cc
--- /dev/null
@@ -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}
+