Initial CSIT framework for dmaap/buscontroller

Change-Id: I068ccaafbeeea0d08949e83cccac56a238901aa3
Signed-off-by: dglFromAtt <dgl@research.att.com>
Issue-ID: DMAAP-318
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 0000000..edadfe9
--- /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 0000000..7ec7345
--- /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 0000000..f8f8c24
--- /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 0000000..f25404c
--- /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 0000000..e0f1d0f
--- /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 0000000..75c1a41
--- /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 0000000..58432e6
--- /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 0000000..b4707c5
--- /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"
+}
+