Added Test and Setup files for PM Mapper 64/78464/2
authorrajendrajaiswal <rajendra.jaiswal@ericsson.com>
Thu, 14 Feb 2019 10:29:45 +0000 (10:29 +0000)
committerroot <rajendra.jaiswal@ericsson.com>
Thu, 14 Feb 2019 11:56:14 +0000 (11:56 +0000)
Change-Id: I891b48873fc893d93d48f2a2233a780492071819
Issue-ID: INT-863
Signed-off-by: Rajendra Jaiswal <rajendra.jaiswal@ericsson.com>
plans/dcaegen2-pmmapper/pmmapper/assets/config.json
plans/dcaegen2-pmmapper/pmmapper/assets/docker-databus-controller.conf [new file with mode: 0644]
plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-e2e.yml
plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml [new file with mode: 0644]
plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh
plans/dcaegen2-pmmapper/pmmapper/setup.sh
tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot

index 2fe128b..47b215f 100644 (file)
@@ -1 +1,34 @@
-{"pm-mapper-filter": "{ \"filters\":[]}", "3GPP.schema.file": "{\"3GPP_Schema\":\"./etc/3GPP_relaxed_schema.xsd\"}", "streams_subscribes": {}, "streams_publishes": {"pm_mapper_handle_out": {"type": "message_router", "aaf_password": null, "dmaap_info": {"topic_url": "https://we-are-message-router.us:3905/events/some-topic", "client_role": null, "location": null, "client_id": null}, "aaf_username": null}}, "streams_subscribes.pm_mapper_handle_out.message_router_topic": "unauthenticated.PM_VES_OUTPUT", "streams_subscribes.pm_mapper_handle_in.feed_id": "1", "services_calls": {}}
\ No newline at end of file
+{
+    "pm-mapper-filter": "{ \"filters\":[]}",
+    "3GPP.schema.file": "{\"3GPP_Schema\":\"./etc/3GPP_relaxed_schema.xsd\"}",
+    "streams_subscribes": {
+        "dmaap_subscriber": {
+            "type": "data_router",
+            "aaf_username": null,
+            "aaf_password": null,
+            "dmaap_info": {
+                "location": "csit-pmmapper",
+                "delivery_url": "3gpppmmapper",
+                "username": "username",
+                "password": "password",
+                "subscriber_id": "subsriber_id"
+            }
+        }
+    },
+    "streams_publishes": {
+        "pm_mapper_handle_out": {
+            "type": "message_router",
+            "aaf_password": null,
+            "dmaap_info": {
+                "topic_url": "https://message-router:3904/events/org.onap.dmaap.onapCSIT.pm_mapper",
+                "client_role": "org.onap.dmaap.client.pub",
+                "location": "csit-pmmapper",
+                "client_id": null
+            },
+            "aaf_username": null
+        }
+    },
+    "buscontroller_feed_id": "1",
+    "buscontroller_feed_subscription_endpoint": "http://dmaap-bc:8080/webapi/dr_subs",
+    "services_calls": {}
+}
\ No newline at end of file
diff --git a/plans/dcaegen2-pmmapper/pmmapper/assets/docker-databus-controller.conf b/plans/dcaegen2-pmmapper/pmmapper/assets/docker-databus-controller.conf
new file mode 100644 (file)
index 0000000..6ec1379
--- /dev/null
@@ -0,0 +1,7 @@
+# environment settings for Dmaap Bus Controller Integration Test.
+DMAAPBC_INT_HTTPS_PORT=8443
+DMAAPBC_INSTANCE_NAME=ONAP-CSIT
+DMAAPBC_MR_CNAME=DMAAPMR
+DMAAPBC_DRPROV_FQDN=DMAAPDR
+DMAAPBC_CSIT=Yes
+DMAAPBC_PG_ENABLED=false
\ No newline at end of file
index ee1649b..ff1b517 100644 (file)
@@ -64,7 +64,12 @@ services:
     container_name: buscontroller
     image: nexus3.onap.org:10001/onap/dmaap/buscontroller
     ports:
-     - "18080:8080"
-     - "18443:8443"
+      - "18080:8080"
+      - "18443:8443"
     extra_hosts:
-      - "dmaap-dr-prov: dr-prov-ip"
\ No newline at end of file
+      - "dmaap-dr-prov: DMAAPDR"
+      - "message-router: DMAAPMR"
+    volumes:
+      - /tmp/docker-databus-controller.conf:/opt/app/config/conf
+    depends_on:
+      - datarouter-prov
\ No newline at end of file
diff --git a/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml b/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml
new file mode 100644 (file)
index 0000000..de64b80
--- /dev/null
@@ -0,0 +1,11 @@
+version: '2.1'
+services:
+  pmmapper:
+    container_name: pmmapper
+    image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pm-mapper:1.0-SNAPSHOT
+    environment:
+       CONFIG_BINDING_SERVICE_SERVICE_HOST: CBSIP
+       CONFIG_BINDING_SERVICE_SERVICE_PORT: 10000
+       HOSTNAME: pmmapper
+    extra_hosts:
+      - "dmaap-bc: BUSIP"
\ No newline at end of file
index ffb1686..bb8c6f2 100755 (executable)
@@ -1,18 +1,61 @@
 #!/bin/bash
-
 # $1 is the IP address of the buscontroller
 # INITIALIZE: dmaap object
-JSON=/tmp/prov.dmaap
+JSON=/tmp/dmaap.json
 cat << EOF > $JSON
 {
 "version": "1",
 "topicNsRoot": "org.onap.dmaap",
 "drProvUrl": "https://dmaap-dr-prov:8443",
-"dmaapName": "onapCSIT",
+"dmaapName": "DataRouter",
 "bridgeAdminTopic": "MM_AGENT_PROV"
 
 }
 EOF
 
 echo "Initializing /dmaap endpoint"
-curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/dmaap
\ No newline at end of file
+curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/dmaap
+
+# INITIALIZE: dcaeLocation object
+JSON=/tmp/dcaeLocation.json
+cat << EOF > $JSON
+{
+"dcaeLocationName": "csit-pmmapper",
+"dcaeLayer": "central-cloud",
+"clli": "CSIT",
+"zone": "zoneA"
+}
+EOF
+
+echo "Initializing /dcaeLocations endpoint"
+curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/dcaeLocations
+
+# INITIALIZE: MR object in 1 site
+DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $DMAAP)
+JSON=/tmp/mr.json
+cat << EOF > $JSON
+{
+"dcaeLocationName": "csit-pmmapper",
+"fqdn": "$DMAAP_MR_IP",
+"topicProtocol" : "http",
+"topicPort": "3904"
+}
+EOF
+
+echo "Initializing /mr_clusters endpoint"
+curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/mr_clusters
+
+# CREATING: DR feed
+JSON=/tmp/feed.json
+cat << EOF > $JSON
+{
+"feedName":"pmmapper",
+"feedVersion": "1",
+"feedDescription":"PM Mapper Feed",
+"owner":"bulkpm",
+"asprClassification": "unclassified"
+}
+EOF
+echo "Initializing /feeds endpoint"
+curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/feeds
+sleep 5
\ No newline at end of file
index 5d8cce6..e896190 100644 (file)
@@ -32,12 +32,10 @@ else
 fi
 done
 
-# Get IP address of DMAAP, KAFKA, Zookeeper
+# Get IP address of KAFKA, Zookeeper
 KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $KAFKA)
 ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $ZOOKEEPER)
-DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $DMAAP)
 
-sleep 2
 # Shutdown DMAAP Container
 docker kill $DMAAP
 
@@ -50,7 +48,10 @@ docker login -u docker -p docker nexus3.onap.org:10001
 docker-compose up -d
 sleep 5
 
-# Clone DMaaP Data Router repo
+# Get IP address of DMAAP Message Router.
+DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $DMAAP)
+
+# Clone DMaaP Data Router repo and Initialization of Data Router, Consul, Config Binding Service and Buscontroller
 mkdir -p $WORKSPACE/archives/dmaapdr
 cd $WORKSPACE/archives/dmaapdr
 git clone --depth 1 https://gerrit.onap.org/r/dmaap/datarouter -b master
@@ -58,7 +59,8 @@ cd $WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/res
 mkdir docker-compose
 cd $WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources/docker-compose
 cp $WORKSPACE/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-e2e.yml $WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources/docker-compose/docker-compose.yml
-
+cp $WORKSPACE/plans/dcaegen2-pmmapper/pmmapper/assets/docker-databus-controller.conf /tmp/
+sed -i 's/DMAAPMR/'$DMAAP_MR_IP'/g' /tmp/docker-databus-controller.conf
 docker login -u docker -p docker nexus3.onap.org:10001
 docker-compose up -d
 echo "Disregard the message ERROR: for datarouter-node  Container 1234456 is unhealthy, this is expected behaiour at this stage"
@@ -72,14 +74,19 @@ sed -i 's/datarouter-mariadb/'$MARIADB'/g' $WORKSPACE/archives/dmaapdr/dataroute
 docker-compose up -d
 DR_PROV_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-prov)
 docker kill buscontroller
-sed -i 's/dr-prov-ip/'$DR_PROV_IP'/g' docker-compose.yml
+sed -i 's/DMAAPDR/'$DR_PROV_IP'/g' docker-compose.yml
+sed -i 's/DMAAPMR/'$DMAAP_MR_IP'/g' docker-compose.yml
 docker-compose up -d
+sed -i 's/DMAAPDR/'$DR_PROV_IP'/g' /tmp/docker-databus-controller.conf
 
-# Wait for initialization of Docker container for datarouter-node, datarouter-prov and mariadb
+# Wait for initialization of Docker container for datarouter-node, datarouter-prov and mariadb, Consul, CBS, Buscontroller
 for i in {1..10}; do
     if [ $(docker inspect --format '{{ .State.Running }}' datarouter-node) ] && \
         [ $(docker inspect --format '{{ .State.Running }}' datarouter-prov) ] && \
-        [ $(docker inspect --format '{{ .State.Running }}' mariadb) ]
+        [ $(docker inspect --format '{{ .State.Running }}' mariadb) ] && \
+        [ $(docker inspect --format '{{ .State.Running }}' consul) ] && \
+        [ $(docker inspect --format '{{ .State.Running }}' cbs) ] && \
+        [ $(docker inspect --format '{{ .State.Running }}' buscontroller) ]
     then
         echo "DR Service Running"
         break
@@ -88,22 +95,10 @@ for i in {1..10}; do
         sleep $i
     fi
 done
-
 sleep 5
-
-# Get IP address of datarrouger-prov, datarouter-node, fileconsumer-node.
-DR_PROV_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-prov)
+# Data Router Configuration.
 DR_NODE_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-node)
 DR_GATEWAY_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}' datarouter-prov)
-
-# Get IP address of DMAAP, KAFKA, Zookeeper, ConfigBindingService
-DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $DMAAP)
-KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $KAFKA)
-ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $ZOOKEEPER)
-CBS_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cbs)
-
-# Data Router Configuration:
-# Create default feed on data router
 docker exec -i datarouter-prov sh -c "curl -k  -X PUT https://$DR_PROV_IP:8443/internal/api/NODES?val=dmaap-dr-node\|$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"
 docker exec datarouter-prov /bin/sh -c "echo '${DR_NODE_IP}' dmaap-dr-node >> /etc/hosts"
@@ -119,5 +114,18 @@ sed -i 's/ipaddress/'${CBS_IP}'/g' /tmp/cbs.json
 curl --request PUT --data @/tmp/cbs.json http://$CONSUL_IP:8500/v1/agent/service/register
 curl 'http://'$CONSUL_IP':8500/v1/kv/pmmapper?dc=dc1' -X PUT -H 'Accept: application/^Con' -H 'Content-Type: application/json' -H 'X-Requested-With: XMLHttpRequest' --data @$WORKSPACE/plans/dcaegen2-pmmapper/pmmapper/assets/config.json
 
+# PM Mapper startup and configuration
+mkdir /tmp/docker-compose
+cd /tmp/docker-compose
+cp $WORKSPACE/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml /tmp/docker-compose/docker-compose.yml
+CBS_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cbs)
+sed -i 's/CBSIP/'$CBS_IP'/g' docker-compose.yml
+sed -i 's/BUSIP/'$DMAAPBC_IP'/g' docker-compose.yml
+docker-compose up -d
+PMMAPPER_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' pmmapper)
+sleep 10
+docker exec pmmapper /bin/sh -c "cat /var/log/ONAP/dcaegen2/services/pm-mapper/pm-mapper_output.log"
+curl -k https://$DR_PROV_IP:8443/internal/prov
+
 #Pass any variables required by Robot test suites in ROBOT_VARIABLES
-ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DMAAPBC_IP:${DMAAPBC_IP} -v DMAAP_MR_IP:${DMAAP_MR_IP} -v CBS_IP:${CBS_IP} -v DR_SUBSCIBER_IP:${DR_SUBSCIBER_IP}"
\ No newline at end of file
+ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DMAAPBC_IP:${DMAAPBC_IP} -v DMAAP_MR_IP:${DMAAP_MR_IP} -v CBS_IP:${CBS_IP} -v PMMAPPER_IP:${PMMAPPER_IP}"
\ No newline at end of file
index ccfa496..78d7bf3 100644 (file)
@@ -1,35 +1,23 @@
 *** Settings ***
 Documentation     Testing PM Mapper functionality
-Resource          ../../common.robot
 Library           Collections
-Library           json
 Library           OperatingSystem
 Library           RequestsLibrary
-Library           HttpLibrary.HTTP
-Library           String
 Library           Process
 
 
 *** Variables ***
-${BC_URL}                     http://${DMAAPBC_IP}:8080/webapi
-${CLI_EXEC_CLI}               curl http://${CBS_IP}:10000/service_component/pmmapper
-${FEED1_DATA}                 { "feedName":"feed1", "feedVersion": "csit", "feedDescription":"generated for CSIT", "owner":"dgl", "asprClassification": "unclassified" }
-
+${CLI_EXEC_CLI}                     curl -k https://${DR_PROV_IP}:8443/internal/prov
 
 *** Test Cases ***
 
-Verify pmmapper configuration in consul through CBS
+Verify 3GPP PM Mapper Subscribes to Data Router
     [Tags]                          PM_MAPPER_01
-    [Documentation]                 Verify pmmapper configuraiton in consul through CBS
+    [Documentation]                 Verify 3gpp pm mapper subscribes to data router
     ${cli_cmd_output}=              Run Process                     ${CLI_EXEC_CLI}                     shell=yes
     Log                             ${cli_cmd_output.stdout}
-    Should Contain                  ${cli_cmd_output.stdout}        pm-mapper-filter
-
-Create DR Feed through Bus Controller
-    [Tags]                          PM_MAPPER_02
-    [Documentation]                 Create Feed on Data Router through Bus Controller
-    ${resp}=                        PostCall    ${BC_URL}/feeds    ${FEED1_DATA}
-    Should Be Equal As Integers     ${resp.status_code}  200
+    Should Be Equal As Strings      ${cli_cmd_output.rc}            0
+    Should Contain                  ${cli_cmd_output.stdout}        "3gpppmmapper"
 
 *** Keywords ***