summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plans/dmaap-datarouter/dr-suite/docker-compose/docker-compose.yml114
-rwxr-xr-xplans/dmaap-datarouter/dr-suite/setup.sh16
-rwxr-xr-xtests/dmaap-datarouter/dr-suite/dr-suite.robot69
3 files changed, 180 insertions, 19 deletions
diff --git a/plans/dmaap-datarouter/dr-suite/docker-compose/docker-compose.yml b/plans/dmaap-datarouter/dr-suite/docker-compose/docker-compose.yml
new file mode 100644
index 00000000..ed8a7c04
--- /dev/null
+++ b/plans/dmaap-datarouter/dr-suite/docker-compose/docker-compose.yml
@@ -0,0 +1,114 @@
+#
+# ============LICENSE_START=======================================================
+# Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+#
+#
+version: '2.1'
+services:
+ datarouter-prov:
+ image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov
+ container_name: datarouter-prov
+ hostname: dmaap-dr-prov
+ ports:
+ - "443:8443"
+ - "8443:8443"
+ - "8080:8080"
+ volumes:
+ - ./prov_data/provserver.properties:/opt/app/datartr/etc/provserver.properties
+ - ./prov_data/addSubscriber.txt:/opt/app/datartr/addSubscriber.txt
+ - ./prov_data/addFeed3.txt:/opt/app/datartr/addFeed3.txt
+ depends_on:
+ mariadb_container:
+ condition: service_healthy
+ healthcheck:
+ test: ["CMD", "curl", "-f", "http://dmaap-dr-prov:8080/internal/prov"]
+ interval: 10s
+ timeout: 30s
+ retries: 5
+ networks:
+ testing_net:
+ aliases:
+ - dmaap-dr-prov
+
+ datarouter-node:
+ image: nexus3.onap.org:10001/onap/dmaap/datarouter-node
+ container_name: datarouter-node
+ hostname: dmaap-dr-node
+ ports:
+ - "9443:8443"
+ - "9090:8080"
+ volumes:
+ - ./node_data/node.properties:/opt/app/datartr/etc/node.properties
+ depends_on:
+ datarouter-prov:
+ condition: service_healthy
+ networks:
+ testing_net:
+ aliases:
+ - dmaap-dr-node
+
+ datarouter-subscriber:
+ image: nexus3.onap.org:10001/onap/dmaap/datarouter-subscriber
+ container_name: subscriber-node
+ hostname: subscriber.com
+ ports:
+ - "7070:7070"
+ volumes:
+ - ./subscriber_data/subscriber.properties:/opt/app/subscriber/etc/subscriber.properties
+ networks:
+ testing_net:
+ aliases:
+ - subscriber.com
+
+ datarouter-subscriber2:
+ image: nexus3.onap.org:10001/onap/dmaap/datarouter-subscriber
+ container_name: subscriber-node2
+ hostname: subscriber2.com
+ ports:
+ - "7071:7070"
+ volumes:
+ - ./subscriber_data/subscriber.properties:/opt/app/subscriber/etc/subscriber.properties
+ networks:
+ testing_net:
+ aliases:
+ - subscriber2.com
+
+ mariadb_container:
+ image: mariadb:10.2.14
+ container_name: mariadb
+ hostname: datarouter-mariadb
+ ports:
+ - "3306:3306"
+ environment:
+ MYSQL_ROOT_PASSWORD: datarouter
+ MYSQL_DATABASE: datarouter
+ MYSQL_USER: datarouter
+ MYSQL_PASSWORD: datarouter
+ healthcheck:
+ test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-u", "datarouter", "-pdatarouter", "--silent"]
+ interval: 10s
+ timeout: 30s
+ retries: 5
+ networks:
+ testing_net:
+ aliases:
+ - datarouter-mariadb
+
+networks:
+ testing_net:
+ driver: bridge
diff --git a/plans/dmaap-datarouter/dr-suite/setup.sh b/plans/dmaap-datarouter/dr-suite/setup.sh
index 22d727a7..fa0764db 100755
--- a/plans/dmaap-datarouter/dr-suite/setup.sh
+++ b/plans/dmaap-datarouter/dr-suite/setup.sh
@@ -10,15 +10,17 @@ git clone --depth 1 https://gerrit.onap.org/r/dmaap/datarouter -b master
cd datarouter
git pull
cd $WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources
+cp $WORKSPACE/plans/dmaap-datarouter/dr-suite/docker-compose/docker-compose.yml .
-sed -i 's/10003/10001/g' docker-compose.yml
# start DMaaP DR containers with docker compose and configuration from docker-compose.yml
docker login -u docker -p docker nexus3.onap.org:10001
docker-compose up -d
# Wait for initialization of Docker container for datarouter-node, datarouter-prov and mariadb
for i in {1..10}; do
- if [ $(docker inspect --format '{{ .State.Running }}' datarouter-node) ] && \
+ if [ $(docker inspect --format '{{ .State.Running }}' subscriber-node2) ] && \
+ [ $(docker inspect --format '{{ .State.Running }}' subscriber-node) ] && \
+ [ $(docker inspect --format '{{ .State.Running }}' datarouter-node) ] && \
[ $(docker inspect --format '{{ .State.Running }}' datarouter-prov) ] && \
[ $(docker inspect --format '{{ .State.Running }}' mariadb) ]
then
@@ -51,15 +53,19 @@ for i in {1..10}; do
fi
done
-DR_PROV_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-prov)
-DR_NODE_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-node)
+DR_PROV_IP=`get-instance-ip.sh datarouter-prov`
+DR_NODE_IP=`get-instance-ip.sh datarouter-node`
+DR_SUB_IP=`get-instance-ip.sh subscriber-node`
+DR_SUB2_IP=`get-instance-ip.sh subscriber-node2`
DR_GATEWAY_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}' datarouter-prov)
echo DR_PROV_IP=${DR_PROV_IP}
echo DR_NODE_IP=${DR_NODE_IP}
+echo DR_SUB_IP=${DR_SUB_IP}
+echo DR_SUB2_IP=${DR_SUB2_IP}
echo DR_GATEWAY_IP=${DR_GATEWAY_IP}
docker exec -i datarouter-prov sh -c "curl -k -X PUT https://$DR_PROV_IP:8443/internal/api/PROV_AUTH_ADDRESSES?val=dmaap-dr-prov\|$DR_GATEWAY_IP"
#Pass any variables required by Robot test suites in ROBOT_VARIABLES
-ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DR_NODE_IP:${DR_NODE_IP}"
+ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DR_NODE_IP:${DR_NODE_IP} -v DR_SUB_IP:${DR_SUB_IP} -v DR_SUB2_IP:${DR_SUB2_IP}"
diff --git a/tests/dmaap-datarouter/dr-suite/dr-suite.robot b/tests/dmaap-datarouter/dr-suite/dr-suite.robot
index 2270aee3..fb70326e 100755
--- a/tests/dmaap-datarouter/dr-suite/dr-suite.robot
+++ b/tests/dmaap-datarouter/dr-suite/dr-suite.robot
@@ -3,22 +3,30 @@ Library OperatingSystem
Library RequestsLibrary
Library requests
Library Collections
+Library Process
Library String
*** Variables ***
-${TARGET_URL} https://${DR_PROV_IP}:8443
-${TARGET_URL_FEED} https://${DR_PROV_IP}:8443/feed/1
-${TARGET_URL_SUBSCRIBE} https://${DR_PROV_IP}:8443/subscribe/1
-${TARGET_URL_SUBSCRIPTION} https://${DR_PROV_IP}:8443/subs/1
-${TARGET_URL_PUBLISH_PROV} https://${DR_PROV_IP}:8443/publish/1/csit_test
-${TARGET_URL_PUBLISH_NODE} https://${DR_NODE_IP}:8443/publish/1/csit_test
-${CREATE_FEED_DATA} {"name": "CSIT_Test", "version": "m1.0", "description": "CSIT_Test", "business_description": "CSIT_Test", "suspend": false, "deleted": false, "changeowner": true, "authorization": {"classification": "unclassified", "endpoint_addrs": [], "endpoint_ids": [{"password": "rs873m", "id": "rs873m"}]}}
-${UPDATE_FEED_DATA} {"name": "CSIT_Test", "version": "m1.0", "description": "UPDATED-CSIT_Test", "business_description": "CSIT_Test", "suspend": true, "deleted": false, "changeowner": true, "authorization": {"classification": "unclassified", "endpoint_addrs": [], "endpoint_ids": [{"password": "rs873m", "id": "rs873m"}]}}
-${SUBSCRIBE_DATA} {"delivery":{ "url":"https://${DR_PROV_IP}:8080/", "user":"rs873m", "password":"rs873m", "use100":true}, "metadataOnly":false, "suspend":false, "groupid":29, "subscriber":"sg481n"}
-${UPDATE_SUBSCRIPTION_DATA} {"delivery":{ "url":"https://${DR_PROV_IP}:8080/", "user":"sg481n", "password":"sg481n", "use100":true}, "metadataOnly":false, "suspend":true, "groupid":29, "subscriber":"sg481n"}
-${FEED_CONTENT_TYPE} application/vnd.dmaap-dr.feed
-${SUBSCRIBE_CONTENT_TYPE} application/vnd.dmaap-dr.subscription
-${PUBLISH_FEED_CONTENT_TYPE} application/octet-stream
+${TARGET_URL} https://${DR_PROV_IP}:8443
+${TARGET_URL_FEED} https://${DR_PROV_IP}:8443/feed/1
+${TARGET_URL_SUBSCRIBE} https://${DR_PROV_IP}:8443/subscribe/1
+${TARGET_URL_SUBSCRIPTION} https://${DR_PROV_IP}:8443/subs/1
+${TARGET_URL_PUBLISH_PROV} https://${DR_PROV_IP}:8443/publish/1/csit_test
+${TARGET_URL_PUBLISH_NODE} https://${DR_NODE_IP}:8443/publish/1/csit_test
+${TARGET_URL_DELETE_FILE} https://${DR_NODE_IP}:8443/delete/2
+
+${FEED_CONTENT_TYPE} application/vnd.dmaap-dr.feed
+${SUBSCRIBE_CONTENT_TYPE} application/vnd.dmaap-dr.subscription
+${PUBLISH_FEED_CONTENT_TYPE} application/octet-stream
+
+${CREATE_FEED_DATA} {"name": "CSIT_Test", "version": "m1.0", "description": "CSIT_Test", "business_description": "CSIT_Test", "suspend": false, "deleted": false, "changeowner": true, "authorization": {"classification": "unclassified", "endpoint_addrs": [], "endpoint_ids": [{"password": "rs873m", "id": "rs873m"}]}}
+${UPDATE_FEED_DATA} {"name": "CSIT_Test", "version": "m1.0", "description": "UPDATED-CSIT_Test", "business_description": "CSIT_Test", "suspend": true, "deleted": false, "changeowner": true, "authorization": {"classification": "unclassified", "endpoint_addrs": [], "endpoint_ids": [{"password": "rs873m", "id": "rs873m"}]}}
+${SUBSCRIBE_DATA} {"delivery":{ "url":"http://${DR_SUB_IP}:7070/", "user":"LOGIN", "password":"PASSWORD", "use100":true}, "metadataOnly":false, "suspend":false, "groupid":29, "subscriber":"sg481n", "privilegedSubscriber":false}
+${UPDATE_SUBSCRIPTION_DATA} {"delivery":{ "url":"http://${DR_SUB_IP}:7070/", "user":"sg481n", "password":"sg481n", "use100":true}, "metadataOnly":false, "suspend":true, "groupid":29, "subscriber":"sg481n", "privilegedSubscriber":false}
+${SUBSCRIBE2_DATA} {"delivery":{ "url":"http://${DR_SUB2_IP}:7070/", "user":"LOGIN", "password":"PASSWORD", "use100":true}, "metadataOnly":false, "suspend":false, "groupid":29, "subscriber":"privileged", "privilegedSubscriber":true}
+
+${CLI_VERIFY_SUB_RECEIVED_FILE} docker exec subscriber-node /bin/sh -c "ls /opt/app/subscriber/delivery | grep csit_test"
+${CLI_VERIFY_FILE_REMAINS_ON_NODE} docker exec datarouter-node /bin/sh -c "ls /opt/app/datartr/spool/s/0/2 | grep dmaap-dr-node | grep -v .M"
*** Test Cases ***
Run Feed Creation
@@ -39,7 +47,16 @@ Run Subscribe to Feed
Should Be Equal As Strings ${resp.status_code} 201
log 'JSON Response Code:'${resp}
-Run Publish Feed
+Run Subscribe to Feed with Privileged Subscription
+ [Documentation] Subscribe to Feed with privileged subscription
+ [Timeout] 1 minute
+ ${resp}= PostCall ${TARGET_URL_SUBSCRIBE} ${SUBSCRIBE2_DATA} ${SUBSCRIBE_CONTENT_TYPE} privileged
+ log ${TARGET_URL_SUBSCRIBE}
+ log ${resp.text}
+ Should Be Equal As Strings ${resp.status_code} 201
+ log 'JSON Response Code:'${resp}
+
+Run Publish to Feed
[Documentation] Publish to Feed
[Timeout] 1 minute
Sleep 10s Behaviour was noticed where feed was not created in time for publish to be sent
@@ -50,6 +67,30 @@ Run Publish Feed
Should Be Equal As Strings ${resp.status_code} 204
log 'JSON Response Code:'${resp}
+Verify Subscriber Received Published File
+ [Documentation] Verify file is delivered to datarouter-subscriber
+ [Timeout] 1 minute
+ Sleep 5s Time to allow subscriber to receive the file
+ ${cli_cmd_output}= Run Process ${CLI_VERIFY_SUB_RECEIVED_FILE} shell=yes
+ Log ${cli_cmd_output.stdout}
+ Should Be Equal As Strings ${cli_cmd_output.rc} 0
+ Should Contain ${cli_cmd_output.stdout} csit_test
+
+
+Verify File Remains On Privileged Subscriber And Delete It
+ [Documentation] Verify file has not been deleted on datarouter-node and delete it using DELETE API
+ [Timeout] 1 minute
+ ${cli_cmd_output}= Run Process ${CLI_VERIFY_FILE_REMAINS_ON_NODE} shell=yes
+ log ${cli_cmd_output.stdout}
+ Should Be Equal As Strings ${cli_cmd_output.rc} 0
+ Should Contain ${cli_cmd_output.stdout} dmaap-dr-node
+ ${resp}= DeleteCall ${TARGET_URL_DELETE_FILE}/${cli_cmd_output.stdout} rs873m
+ Should Be Equal As Strings ${resp.status_code} 200
+ log 'JSON Response Code:'${resp}
+ ${cli_cmd_output}= Run Process ${CLI_VERIFY_FILE_REMAINS_ON_NODE} shell=yes
+ log ${cli_cmd_output.stdout}
+ Should Be Equal As Strings ${cli_cmd_output.rc} 1
+
Run Update Subscription
[Documentation] Update Subscription to suspend and change delivery credentials
[Timeout] 1 minute