CSIT Buscontroller SSL endpoints 89/62889/1
authorDominic Lunanuova <dgl@research.att.com>
Thu, 23 Aug 2018 21:49:47 +0000 (21:49 +0000)
committerDominic Lunanuova <dgl@research.att.com>
Fri, 24 Aug 2018 23:10:30 +0000 (23:10 +0000)
Change-Id: I3de5b48f1d471f6c5e067deba7a06c19c3585de5
Signed-off-by: Dominic Lunanuova <dgl@research.att.com>
Issue-ID: DMAAP-319
Signed-off-by: Dominic Lunanuova <dgl@research.att.com>
test/csit/plans/dmaap-buscontroller/ssl/setup.sh [new file with mode: 0755]
test/csit/plans/dmaap-buscontroller/ssl/teardown.sh [new file with mode: 0644]
test/csit/plans/dmaap-buscontroller/ssl/testplan.txt [new file with mode: 0644]
test/csit/plans/dmaap-buscontroller/with_mr/setup.sh
test/csit/plans/dmaap-buscontroller/with_mr/teardown.sh
test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh
test/csit/scripts/dmaap-buscontroller/onapCSIT.env
test/csit/scripts/dmaap-message-router/dmaap-mr-launch.sh
test/csit/scripts/dmaap-message-router/dmaap-mr-teardown.sh
test/csit/tests/dmaap-buscontroller/ssl_suite/__init__.robot [new file with mode: 0644]
test/csit/tests/dmaap-buscontroller/ssl_suite/test1.robot [new file with mode: 0644]

diff --git a/test/csit/plans/dmaap-buscontroller/ssl/setup.sh b/test/csit/plans/dmaap-buscontroller/ssl/setup.sh
new file mode 100755 (executable)
index 0000000..e40f62d
--- /dev/null
@@ -0,0 +1,45 @@
+#!/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" 3905
+MRC_IP=${IP} 
+start_mock "drps" 8443
+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}"
+
+set -x
+${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh ${DMAAPBC_IP} ${DRPS_IP} ${MRC_IP} https
+set +x
diff --git a/test/csit/plans/dmaap-buscontroller/ssl/teardown.sh b/test/csit/plans/dmaap-buscontroller/ssl/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/ssl/testplan.txt b/test/csit/plans/dmaap-buscontroller/ssl/testplan.txt
new file mode 100644 (file)
index 0000000..e106e7b
--- /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/ssl_suite
+
index 3b604fe..bcd19b5 100755 (executable)
@@ -31,9 +31,9 @@ else
        MRC_IP=${IP}
 
        source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/start-mock.sh
-       #start_mock "aaf" 
-       #AAF_IP=${IP}
-       AAF_IP=0.0.0.0
+       start_mock "aaf" 
+       AAF_IP=${IP}
+       #AAF_IP=0.0.0.0
        #start_mock "drps" 
        #DRPS_IP=${IP}
        DRPS_IP=0.0.0.0
index f35b022..3feebe0 100644 (file)
@@ -25,5 +25,6 @@ if [ "$KEEP_DMAAP" != "Y" ]
 then
 dmaap_mr_teardown
 kill-instance.sh dmaapbc
+kill-instance.sh aaf-mock
 fi
 
index 96ac40f..c7cf03e 100755 (executable)
@@ -3,6 +3,21 @@
 # $1 is the IP address of the buscontroller
 # $2 is the IP address of the DRPS
 # $3 is the IP address of the MRC
+# $4 is the protocol (defaults to http)
+
+PROTO=${4:-http}
+if [ "$PROTO" = "http" ]
+then
+       PORT=8080
+       CURLOPT="-v"
+       MRPORT=3904
+       DRPORT=8080
+else
+       PORT=8443
+       CURLOPT="-v -k"
+       MRPORT=3905
+       DRPORT=8443
+fi
 
 # INITIALIZE: dmaap object
 JSON=/tmp/$$.dmaap
@@ -10,7 +25,7 @@ cat << EOF > $JSON
 {
        "version": "1",
        "topicNsRoot": "org.onap.dmaap",
-       "drProvUrl": "http://${2}:8080",
+       "drProvUrl": "http://${2}:${DRPORT}",
        "dmaapName": "onapCSIT",
        "bridgeAdminTopic": "MM_AGENT_PROV"
 
@@ -18,7 +33,7 @@ cat << EOF > $JSON
 EOF
 
 echo "Initializing /dmaap endpoint"
-curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/dmaap 
+curl ${CURLOPT} -X POST -d @${JSON} -H "Content-Type: application/json" ${PROTO}://$1:${PORT}/webapi/dmaap 
 
 
 
@@ -35,7 +50,7 @@ cat << EOF > $JSON
 EOF
 
 echo "Initializing /dcaeLocations endpoint"
-curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/dcaeLocations 
+curl ${CURLOPT} -X POST -d @${JSON} -H "Content-Type: application/json" ${PROTO}://$1:${PORT}/webapi/dcaeLocations 
 
 
 # INITIALIZE: MR object in 1 site
@@ -52,10 +67,10 @@ cat << EOF > $JSON
        "dcaeLocationName": "csit-sanfrancisco",
        "fqdn": "$DOCKER_HOST",
        "topicProtocol" : "http",
-       "topicPort": "3904"
+       "topicPort": "${MRPORT}"
 
 }
 EOF
 
 echo "Initializing /mr_clusters endpoint"
-curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/mr_clusters
+curl ${CURLOPT} -X POST -d @${JSON} -H "Content-Type: application/json" ${PROTO}://$1:${PORT}/webapi/mr_clusters
index 58432e6..db86581 100644 (file)
@@ -8,7 +8,7 @@
 # Only need to set values where defaults aren't appropriate
 #
 cat <<!EOF
-DMAAPBC_INT_HTTPS_PORT=0
+DMAAPBC_INT_HTTPS_PORT=8443
 DMAAPBC_PG_ENABLED=false
 DMAAPBC_INSTANCE_NAME=ONAP-CSIT
 DMAAPBC_AAF_URL=https://${1}:1080/proxy/
index c439a97..64f1720 100755 (executable)
@@ -31,6 +31,7 @@ source ${SCRIPTS}/common_functions.sh
 # (kafka and zk containers are not called externally)
 
 function dmaap_mr_launch() {
+               COMPOSE_PREFIX=docker-compose
                # Clone DMaaP Message Router repo
                mkdir -p $WORKSPACE/archives/dmaapmr
                cd $WORKSPACE/archives/dmaapmr
@@ -45,12 +46,13 @@ function dmaap_mr_launch() {
                # start DMaaP MR containers with docker compose and configuration from docker-compose.yml
                docker login -u docker -p docker nexus3.onap.org:10001
                docker-compose up -d
+               docker ps
 
                # Wait for initialization of Docker contaienr for DMaaP MR, Kafka and Zookeeper
                for i in {1..50}; do
-                       if [ $(docker inspect --format '{{ .State.Running }}' dockercompose_dmaap_1) ] && \
-                               [ $(docker inspect --format '{{ .State.Running }}' dockercompose_zookeeper_1) ] && \
-                               [ $(docker inspect --format '{{ .State.Running }}' dockercompose_dmaap_1) ] 
+                       if [ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_dmaap_1) ] && \
+                               [ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_zookeeper_1) ] && \
+                               [ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_dmaap_1) ] 
                        then
                                echo "DMaaP Service Running"    
                                break                   
@@ -61,10 +63,10 @@ function dmaap_mr_launch() {
                done
 
 
-               DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_dmaap_1)
+               DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${COMPOSE_PREFIX}_dmaap_1)
                IP=${DMAAP_MR_IP}
-               KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_kafka_1)
-               ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_zookeeper_1)
+               KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${COMPOSE_PREFIX}_kafka_1)
+               ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${COMPOSE_PREFIX}_zookeeper_1)
 
                echo DMAAP_MR_IP=${DMAAP_MR_IP}
                echo IP=${IP}
@@ -84,9 +86,9 @@ function dmaap_mr_launch() {
 
                # Wait for initialization of Docker containers
                for i in {1..50}; do
-                               if [ $(docker inspect --format '{{ .State.Running }}' dockercompose_dmaap_1) ] && \
-                                               [ $(docker inspect --format '{{ .State.Running }}' dockercompose_zookeeper_1) ] && \
-                                               [ $(docker inspect --format '{{ .State.Running }}' dockercompose_dmaap_1) ]
+                               if [ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_dmaap_1) ] && \
+                                               [ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_zookeeper_1) ] && \
+                                               [ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_dmaap_1) ]
                                then
                                                echo "DMaaP Service Running"
                                                break
index f573857..ac6d798 100755 (executable)
@@ -18,7 +18,7 @@
 #
 
 function dmaap_mr_teardown() {
-kill-instance.sh dockercompose_dmaap_1 
-kill-instance.sh dockercompose_kafka_1 
-kill-instance.sh dockercompose_zookeeper_1
+kill-instance.sh docker-compose_dmaap_1 
+kill-instance.sh docker-compose_kafka_1 
+kill-instance.sh docker-compose_zookeeper_1
 }
diff --git a/test/csit/tests/dmaap-buscontroller/ssl_suite/__init__.robot b/test/csit/tests/dmaap-buscontroller/ssl_suite/__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/ssl_suite/test1.robot b/test/csit/tests/dmaap-buscontroller/ssl_suite/test1.robot
new file mode 100644 (file)
index 0000000..999c6ba
--- /dev/null
@@ -0,0 +1,77 @@
+*** Settings ***
+Library       OperatingSystem
+Library       RequestsLibrary
+Library       HttpLibrary.HTTP
+Library       Collections
+Library       String
+
+*** 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
+
+HTTPS Heartbeat Test
+    [Documentation]        Check ${DBC_URI}/info SSL endpoint
+    Create Session         heartbeat          https://${DMAAPBC_IP}:8443
+    CheckUrl               heartbeat          ${DBC_URI}/info   204
+
+HTTPS Dmaap Init Test
+    [Documentation]        Check ${DBC_URI}/dmaap SSL endpoint
+    Create Session         heartbeat          https://${DMAAPBC_IP}:8443
+    CheckStatus               heartbeat          ${DBC_URI}/dmaap   "VALID"
+
+HTTPS Dmaap dcaeLocations Test
+    [Documentation]        Check ${DBC_URI}/dcaeLocations SSL endpoint
+    Create Session         heartbeat          https://${DMAAPBC_IP}:8443
+    CheckStatus0               heartbeat          ${DBC_URI}/dcaeLocations   "VALID"
+
+HTTPS Dmaap mr_clusters Test
+    [Documentation]        Check ${DBC_URI}/mr_clusters SSL endpoint
+    Create Session         heartbeat          https://${DMAAPBC_IP}:8443
+    CheckStatus0               heartbeat          ${DBC_URI}/mr_clusters   "VALID"
+
+
+*** 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}
+
+CheckStatus
+    [Arguments]                  ${session}   ${path}     ${expect}
+    ${resp}=                     Get Request          ${session}               ${path}
+    log                          ${resp.content}
+    ${val}=                      Get Json value       ${resp.content}     /status
+    log                          ${val}
+    should be equal as strings   ${val}      ${expect}
+
+CheckStatus0
+    [Arguments]                  ${session}   ${path}     ${expect}
+    ${resp}=                     Get Request          ${session}               ${path}
+    log                          ${resp.json()}
+    log                          ${resp.content}
+# silliness to strip off the brackets returned for a List to get a Dict
+    ${t1}=                       Remove String       ${resp.content}       [
+    ${dict}=                     Remove String       ${t1}                 ]
+    log                          ${dict}
+    ${val}=                      Get Json value       ${dict}     /status
+    log                          ${val}
+    should be equal as strings   ${val}      ${expect}
+