Merge "Allow HV-VES tests to be run locally"
authorGary Wu <gary.i.wu@huawei.com>
Wed, 27 Mar 2019 22:00:00 +0000 (22:00 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 27 Mar 2019 22:00:00 +0000 (22:00 +0000)
24 files changed:
plans/dcaegen2-pmmapper/pmmapper/assets/config.json
plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml
plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh
plans/dcaegen2-pmmapper/pmmapper/setup.sh
plans/dmaap-datarouter/dr-suite/docker-compose/node.properties [new file with mode: 0644]
plans/dmaap-datarouter/dr-suite/docker-compose/provserver.properties [new file with mode: 0755]
plans/dmaap-datarouter/dr-suite/setup.sh
plans/dmaap-datarouter/dr-suite/teardown.sh
plans/usecases/5G-bulkpm/assets/addSubscriber.json
plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml
plans/usecases/5G-bulkpm/setup.sh
plans/vid/healthCheck/setup.sh
plans/vid/healthCheck/teardown.sh
scripts/vid/kill_containers_and_remove_dataFolders.sh
tests/appc/cdt/cdt.robot
tests/appc/cdt/common.robot
tests/dcaegen2-pmmapper/pmmapper/assets/A_meas_result.xml [deleted file]
tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot
tests/usecases/5G-bulkpm/BulkpmE2E.robot
tests/vid/resources/docker-compose.yml
tests/vid/resources/simulators/Dockerfile
tests/vid/resources/simulators/SO.py
tests/vid/resources/simulators/test_data_assets/expected_aai_requests.json [new file with mode: 0644]
tests/vid/resources/simulators/test_data_assets/expected_aai_responses.json [new file with mode: 0644]

index 5eec438..79b3201 100644 (file)
@@ -19,8 +19,8 @@
             "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",
+                "topic_url": "http://message-router:3904/events/topic.org.onap.dmaap.mr.test1",
+                "client_role": "org.onap.dmaap.mr.topic",
                 "location": "csit-pmmapper",
                 "client_id": null
             },
index b14a73c..a7f5b97 100644 (file)
@@ -12,3 +12,4 @@ services:
     extra_hosts:
       - "dmaap-bc:BUSIP"
       - "dmaap-dr-node:DRNODEIP"
+      - "message-router:DMAAPMRIP"
index 1405112..1430258 100755 (executable)
@@ -1,22 +1,23 @@
 #!/bin/bash
 # $1 is the IP address of the buscontroller
+
 # INITIALIZE: dmaap object
+echo $'\nInitializing /dmaap endpoint'
 JSON=/tmp/dmaap.json
 cat << EOF > $JSON
 {
 "version": "1",
-"topicNsRoot": "org.onap.dmaap",
+"topicNsRoot": "topic.org.onap.dmaap",
 "drProvUrl": "https://dmaap-dr-prov:8443",
-"dmaapName": "DataRouter",
+"dmaapName": "mr",
 "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
 
 # INITIALIZE: dcaeLocation object
+echo $'\nInitializing /dcaeLocations endpoint'
 JSON=/tmp/dcaeLocation.json
 cat << EOF > $JSON
 {
@@ -26,26 +27,25 @@ cat << EOF > $JSON
 "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
+echo $'\nInitializing /mr_clusters endpoint'
+DMAAP=$(docker ps -a -q --filter="name=dmaap_1")
 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",
+"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
+echo $'\nInitializing /feeds endpoint'
 JSON=/tmp/feed.json
 cat << EOF > $JSON
 {
@@ -67,6 +67,30 @@ cat << EOF > $JSON
         ]
 }
 EOF
-echo "Initializing /feeds endpoint"
 curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/feeds
+
+# CREATING: MR Topic
+echo $'\nInitializing /topic endpoint'
+JSON=/tmp/topic.json
+cat << EOF > $JSON
+{
+"topicName":"test1",
+"topicDescription":"PM Mapper - VES Event",
+"owner":"pmmapper"
+}
+EOF
+curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/topics
+
+# CREATING: MR Client
+echo $'\nInitializing /mr_clients endpoint'
+JSON=/tmp/mrclients.json
+cat << EOF > $JSON
+{
+"fqtn": "topic.org.onap.dmaap.mr.test1",
+"dcaeLocationName": "csit-pmmapper",
+"clientRole": "org.onap.dmaap.mr.topic",
+"action": [ "pub", "view" ]
+}
+EOF
+curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/mr_clients
 sleep 5
\ No newline at end of file
index 2924bd2..18d8237 100644 (file)
@@ -122,6 +122,7 @@ CBS_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddres
 sed -i 's/CBSIP/'$CBS_IP'/g' docker-compose.yml
 sed -i 's/BUSIP/'$DMAAPBC_IP'/g' docker-compose.yml
 sed -i 's/DRNODEIP/'$DR_NODE_IP'/g' docker-compose.yml
+sed -i 's/DMAAPMRIP/'$DMAAP_MR_IP'/g' docker-compose.yml
 docker-compose up -d
 
 # Wait for initialization of Docker container for 3GPP PM Mapper
@@ -143,6 +144,7 @@ docker exec pmmapper /bin/sh -c "cat /var/log/ONAP/dcaegen2/services/pm-mapper/p
 cat /tmp/pmmapper.log
 docker exec buscontroller /bin/sh -c "cat /opt/app/dmaapbc/logs/ONAP/application.log"
 curl -k https://$DR_PROV_IP:8443/internal/prov
+curl http://${DMAAP_MR_IP}:3904/events/topic.org.onap.dmaap.mr.test1/CG1/C1?timeout=1000
 
 #Pass any variables required by Robot test suites in ROBOT_VARIABLES
-ROBOT_VARIABLES="-v CONSUL_IP:${CONSUL_IP} -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} -v DR_NODE_IP:${DR_NODE_IP}"
\ No newline at end of file
+ROBOT_VARIABLES="-v DMAAP_MR_IP:${DMAAP_MR_IP} -v CONSUL_IP:${CONSUL_IP} -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} -v DR_NODE_IP:${DR_NODE_IP}"
\ No newline at end of file
diff --git a/plans/dmaap-datarouter/dr-suite/docker-compose/node.properties b/plans/dmaap-datarouter/dr-suite/docker-compose/node.properties
new file mode 100644 (file)
index 0000000..62b0f82
--- /dev/null
@@ -0,0 +1,103 @@
+#-------------------------------------------------------------------------------
+# ============LICENSE_START==================================================
+# * org.onap.dmaap
+# * ===========================================================================
+# * Copyright � 2017 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====================================================
+# *
+# * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+# *
+#-------------------------------------------------------------------------------
+#
+#    Configuration parameters set at startup for the DataRouter node
+#
+#    URL to retrieve dynamic configuration
+ProvisioningURL = https://dmaap-dr-prov:8443/internal/prov
+#
+#    URL to upload PUB/DEL/EXP logs
+LogUploadURL = https://dmaap-dr-prov:8443/internal/logs
+#
+#    The port number for http as seen within the server
+IntHttpPort = 8080
+#
+#    The port number for https as seen within the server
+IntHttpsPort = 8443
+#
+#    The external port number for https taking port mapping into account
+ExtHttpsPort = 443
+#
+#    The minimum interval between fetches of the dynamic configuration from the provisioning server
+MinProvFetchInterval = 10000
+#
+#    The minimum interval between saves of the redirection data file
+MinRedirSaveInterval = 10000
+#
+#    The path to the directory where log files are stored
+LogDir = /opt/app/datartr/logs
+#
+#    The retention interval (in days) for log files
+LogRetention = 30
+#
+#    The path to the directories where data and meta data files are stored
+SpoolDir = /opt/app/datartr/spool
+#
+#    The path to the redirection data file
+RedirectionFile = etc/redirections.dat
+#
+#    The type of keystore for https
+KeyStoreType = jks
+#
+#    The path to the keystore for https
+KeyStoreFile = /opt/app/datartr/aaf_certs/org.onap.dmaap-dr.jks
+#
+#    The password for the https keystore
+KeyStorePassword=]3V)($O&.Mv]W{f8^]6SxGNL
+#
+#    The password for the private key in the https keystore
+KeyPassword=]3V)($O&.Mv]W{f8^]6SxGNL
+#
+#    The type of truststore for https
+TrustStoreType = jks
+#
+#    The path to the truststore for https
+TrustStoreFile = /opt/app/datartr/aaf_certs/org.onap.dmaap-dr.trust.jks
+#
+#    The password for the https truststore
+TrustStorePassword=(Rd,&{]%ePdp}4JZjqoJ2G+g
+#
+#    The path to the file used to trigger an orderly shutdown
+QuiesceFile = etc/SHUTDOWN
+#
+#    The key used to generate passwords for node to node transfers
+NodeAuthKey = Node123!
+#
+#    DR_NODE DEFAULT ENABLED TLS PROTOCOLS
+NodeHttpsProtocols = TLSv1.1|TLSv1.2
+#
+#    AAF type to generate permission string
+AAFType = org.onap.dmaap-dr.feed
+#
+#    AAF default instance to generate permission string - default should be legacy
+AAFInstance = legacy
+#
+#    AAF action to generate permission string - default should be publish
+AAFAction = publish
+#
+#    AAF URL to connect to AAF server
+AafUrl = https://aaf-onap-test.osaaf.org:8095
+#
+#    AAF CADI enabled flag
+CadiEnabled = false
+
diff --git a/plans/dmaap-datarouter/dr-suite/docker-compose/provserver.properties b/plans/dmaap-datarouter/dr-suite/docker-compose/provserver.properties
new file mode 100755 (executable)
index 0000000..e529553
--- /dev/null
@@ -0,0 +1,69 @@
+#-------------------------------------------------------------------------------
+# ============LICENSE_START==================================================
+# * org.onap.dmaap
+# * ===========================================================================
+# * Copyright � 2017 AT&T Intellectual Property. All rights reserved.
+# * Modifications Copyright (C) 2018 Nokia. 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====================================================
+# *
+# * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+# *
+#-------------------------------------------------------------------------------
+
+#Jetty Server properties
+org.onap.dmaap.datarouter.provserver.http.port           = 8080
+org.onap.dmaap.datarouter.provserver.https.port          = 8443
+org.onap.dmaap.datarouter.provserver.https.relaxation    = true
+
+org.onap.dmaap.datarouter.provserver.keystore.type       = jks
+org.onap.dmaap.datarouter.provserver.keymanager.password = AT{];bvaDiytVD&oWhMZj0N5
+org.onap.dmaap.datarouter.provserver.keystore.path       = /opt/app/datartr/aaf_certs/org.onap.dmaap-dr.jks
+org.onap.dmaap.datarouter.provserver.keystore.password   = AT{];bvaDiytVD&oWhMZj0N5
+org.onap.dmaap.datarouter.provserver.truststore.path     = /opt/app/datartr/aaf_certs/org.onap.dmaap-dr.trust.jks
+org.onap.dmaap.datarouter.provserver.truststore.password = ljlS@Y}0]{UO(TnwvEWkgJ%]
+
+org.onap.dmaap.datarouter.provserver.accesslog.dir       = /opt/app/datartr/logs
+org.onap.dmaap.datarouter.provserver.spooldir            = /opt/app/datartr/spool
+org.onap.dmaap.datarouter.provserver.dbscripts           = /opt/app/datartr/etc/misc
+org.onap.dmaap.datarouter.provserver.logretention        = 30
+
+#DMAAP-597 (Tech Dept) REST request source IP auth
+# relaxation to accommodate OOM kubernetes deploy
+org.onap.dmaap.datarouter.provserver.isaddressauthenabled = false
+
+#Localhost address config
+org.onap.dmaap.datarouter.provserver.localhost = 127.0.0.1
+
+# Database access
+org.onap.dmaap.datarouter.db.driver   = org.mariadb.jdbc.Driver
+org.onap.dmaap.datarouter.db.url      = jdbc:mariadb://datarouter-mariadb:3306/datarouter
+org.onap.dmaap.datarouter.db.login    = datarouter
+org.onap.dmaap.datarouter.db.password = datarouter
+
+# PROV - DEFAULT ENABLED TLS PROTOCOLS
+org.onap.dmaap.datarouter.provserver.https.include.protocols = TLSv1.1|TLSv1.2
+
+# AAF config
+org.onap.dmaap.datarouter.provserver.cadi.enabled = false
+
+org.onap.dmaap.datarouter.provserver.passwordencription   = PasswordEncryptionKey#@$%^&1234#
+org.onap.dmaap.datarouter.provserver.aaf.feed.type        = org.onap.dmaap-dr.feed
+org.onap.dmaap.datarouter.provserver.aaf.sub.type         = org.onap.dmaap-dr.sub
+org.onap.dmaap.datarouter.provserver.aaf.instance         = legacy
+org.onap.dmaap.datarouter.provserver.aaf.action.publish   = publish
+org.onap.dmaap.datarouter.provserver.aaf.action.subscribe = subscribe
+
+# AAF URL to connect to AAF server
+org.onap.dmaap.datarouter.provserver.cadi.aaf.url = https://aaf-onap-test.osaaf.org:8095
\ No newline at end of file
index fa0764d..398eb7c 100755 (executable)
@@ -11,6 +11,8 @@ 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 .
+cp $WORKSPACE/plans/dmaap-datarouter/dr-suite/docker-compose/provserver.properties ./prov_data/provserver.properties
+cp $WORKSPACE/plans/dmaap-datarouter/dr-suite/docker-compose/node.properties ./node_data/node.properties
 
 # start DMaaP DR containers with docker compose and configuration from docker-compose.yml
 docker login -u docker -p docker nexus3.onap.org:10001
@@ -47,7 +49,7 @@ for i in {1..10}; do
         then
             echo datarouter-prov container is not in healthy state - the test is not made, teardown...
             cd $WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources
-            docker-compose down -v
+            docker-compose rm -sf
             exit 1
         fi
     fi
index 8e56869..1b20842 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/bash
 
 cd $WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources
-docker-compose down -v
+docker-compose rm -sf
index 612c462..bab63c4 100644 (file)
@@ -14,5 +14,6 @@
        "log": "https://dmaap-dr-prov/feedlog/1",
        "feed": "https://dmaap-dr-prov/feed/1"
     },
-    "subscriber":"admin"
+    "subscriber":"admin",
+    "decompress":true
  }
\ No newline at end of file
index 8f1abb5..f3c47bb 100644 (file)
@@ -1,7 +1,7 @@
 version: '2.1'
 services:
   datarouter-prov:
-    image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov:2.0.1
+    image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov:2.0.2-SNAPSHOT-latest
     container_name: datarouter-prov
     hostname: dmaap-dr-prov
     ports:
@@ -22,7 +22,7 @@ services:
       retries: 5
 
   datarouter-node:
-    image: nexus3.onap.org:10001/onap/dmaap/datarouter-node:2.0.1
+    image: nexus3.onap.org:10001/onap/dmaap/datarouter-node:2.0.2-SNAPSHOT-latest
     container_name: datarouter-node
     hostname: dmaap-dr-node
     ports:
@@ -35,7 +35,7 @@ services:
         condition: service_healthy
 
   datarouter-subscriber:
-      image: nexus3.onap.org:10001/onap/dmaap/datarouter-subscriber:2.0.1
+      image: nexus3.onap.org:10001/onap/dmaap/datarouter-subscriber:2.0.2-SNAPSHOT-latest
       container_name: fileconsumer-node
       hostname: subscriber.com
       ports:
index 3b76691..3d3a9ef 100644 (file)
@@ -152,7 +152,7 @@ echo data_endpoints.json from DFC containter
 cat /tmp/datafile_endpoints.json.fromcontainer
 docker cp /tmp/datafile_endpoints.json dfc:/opt/app/datafile/config/
 #Increase Logging
-docker exec dfc /bin/sh -c " sed -i 's/org.onap.dcaegen2.collectors.datafile: ERROR/org.onap.dcaegen2.collectors.datafile: TRACE/g' /opt/app/datafile/config/application.yaml"
+docker exec dfc /bin/sh -c " sed -i 's/org.onap.dcaegen2.collectors.datafile: WARN/org.onap.dcaegen2.collectors.datafile: TRACE/g' /opt/app/datafile/config/application.yaml"
 docker restart dfc
 sleep 2
 
@@ -172,7 +172,7 @@ done
 sleep 10
 
 #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} -v DMAAP_MR_IP:${DMAAP_MR_IP} -v VESC_IP:${VESC_IP} -v VESC_PORT:${VESC_PORT} -v DR_SUBSCIBER_IP:${DR_SUBSCIBER_IP}"
+ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DR_NODE_IP:${DR_NODE_IP} -v DMAAP_MR_IP:${DMAAP_MR_IP} -v VESC_IP:${VESC_IP} -v VESC_PORT:${VESC_PORT} -v DR_SUBSCIBER_IP:${DR_SUBSCIBER_IP} -v SFTP_IP:${SFTP_IP}"
 
 pip install jsonschema uuid simplejson
 # Wait container ready
@@ -258,10 +258,10 @@ sed -i 's/sftpport/'${SFTP_PORT}'/g' $WORKSPACE/tests/usecases/5G-bulkpm/assets/
 docker cp $WORKSPACE/plans/usecases/5G-bulkpm/assets/xNF.pm.xml.gz sftp:/home/admin/
 
 # Create default feed and create file consumer subscriber on data router
-curl -v -X POST -H "Content-Type:application/vnd.att-dr.feed" -H "X-ATT-DR-ON-BEHALF-OF:dradmin" --data-ascii @$WORKSPACE/plans/usecases/5G-bulkpm/assets/createFeed.json --post301 --location-trusted -k https://${DR_PROV_IP}:8443
+curl -v -X POST -H "Content-Type:application/vnd.dmaap-dr.feed" -H "X-DMAAP-DR-ON-BEHALF-OF:dradmin" --data-ascii @$WORKSPACE/plans/usecases/5G-bulkpm/assets/createFeed.json --post301 --location-trusted -k https://${DR_PROV_IP}:8443
 cp $WORKSPACE/plans/usecases/5G-bulkpm/assets/addSubscriber.json /tmp/addSubscriber.json
 sed -i 's/fileconsumer/'${HOST_IP}'/g' /tmp/addSubscriber.json
-curl -v -X POST -H "Content-Type:application/vnd.att-dr.subscription" -H "X-ATT-DR-ON-BEHALF-OF:dradmin" --data-ascii @/tmp/addSubscriber.json --post301 --location-trusted -k https://${DR_PROV_IP}:8443/subscribe/1
+curl -v -X POST -H "Content-Type:application/vnd.dmaap-dr.subscription" -H "X-DMAAP-DR-ON-BEHALF-OF:dradmin" --data-ascii @/tmp/addSubscriber.json --post301 --location-trusted -k https://${DR_PROV_IP}:8443/subscribe/1
 sleep 10
 curl -k https://$DR_PROV_IP:8443/internal/prov
 
index 584a640..50a28b6 100644 (file)
@@ -25,7 +25,7 @@ source ${SCRIPTS}/common_functions.sh
 source ${WORKSPACE}/scripts/vid/clone_and_setup_vid_data.sh
 source ${WORKSPACE}/scripts/vid/start_vid_containers.sh
 
-echo `Obtaining ip of VID server...`
+echo "Obtaining ip of VID server..."
 VID_IP=`get-instance-ip.sh vid-server`
 SO_SIMULATOR_IP=`get-instance-ip.sh so-simulator`
 
index 8f16867..e5e5140 100644 (file)
@@ -18,6 +18,5 @@
 #
 
 source ${WORKSPACE}/scripts/vid/kill_containers_and_remove_dataFolders.sh
-docker kill so-simulator
 
 # $WORKSPACE/archives/clamp-clone deleted with archives folder when tests starts so we keep it at the end for debugging
index 9e72a42..d7e0553 100644 (file)
@@ -20,8 +20,9 @@
 echo "This is ${WORKSPACE}/scripts/vid/kill_and_remove_dataFolder.sh"
 
 #kill and remove all vid dockers
-docker stop $(docker ps -a -q --filter="name=vid")
-docker rm $(docker ps -a -q --filter="name=vid")
+cd ${WORKSPACE}/tests/vid/resources
+docker-compose down
+docker-compose rm -f
 
 
 #delete data folder
index b33bfe7..ad380f1 100644 (file)
@@ -10,6 +10,7 @@
 | | Page should contain link | Home
 | | Page should contain link | MY VNFs
 | | Page should contain link | Test
+| | Page should contain link | Admin
 | | Page should contain link | About us
 | | Page Should Not Contain | ${USER_ID}
 # Verify MY VNFs link will will ask for user entry
@@ -79,8 +80,8 @@
 | | Input Text | id=vnfType | csit${THEDATE}
 | | Click Button | Next
 | | Page Should Contain Element | id=cmbAction
-# Verify 17 selections available
-| | Select From List By Index | id=cmbAction | 17
+# Verify 19 selections available
+| | Select From List By Index | id=cmbAction | 19
 # Select HealthCheck and ANSIBLE and verify it gets created
 | | Select From List By Value | id=cmbAction | HealthCheck
 | | Select From List By Value | id=txtDeviceProtocol | ANSIBLE
index 3492924..b500d88 100644 (file)
@@ -12,7 +12,7 @@
 |  ${LONGTIME} | 90s
 |  ${TENMINUTES} | 600s
 #|  ${FFPROFILE_DIR} |  /home/dvz/.mozilla/firefox/s87c07vn.AppCZoomed50
-|  ${MAINURL} | http://localhost:8080/index.html
+|  ${MAINURL} | https://localhost:8080/index.html
 |  ${USER_ID} | csituser
 
 *** Keywords ***
diff --git a/tests/dcaegen2-pmmapper/pmmapper/assets/A_meas_result.xml b/tests/dcaegen2-pmmapper/pmmapper/assets/A_meas_result.xml
deleted file mode 100644 (file)
index 269fdf1..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec">
-    <fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd"
-                fileFormatVersion="32.435 V10.0">
-        <fileSender localDn="Dublin"/>
-        <measCollec beginTime="2018-10-02T12:00:00+01:00"/>
-    </fileHeader>
-    <measData>
-        <managedElement swVersion="r0.1" localDn="Dublin"/>
-        <measInfo measInfoId="some measInfoId">
-            <job jobId="jobId"/>
-            <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/>
-            <repPeriod duration="PT900S"/>
-            <measTypes>a b c</measTypes>
-            <measValue measObjLdn="objLdn">
-                <measResults>76 27 98</measResults>
-                <suspect>false</suspect>
-            </measValue>
-        </measInfo>
-    </measData>
-    <fileFooter>
-        <measCollec endTime="2018-10-02T12:15:00+01:00"/>
-    </fileFooter>
-</measCollecFile>
index 311ee43..cbb77f9 100644 (file)
@@ -17,7 +17,6 @@ ${DELIVERY_ENDPOINT}                     /delivery
 ${HEALTHCHECK_ENDPOINT}                  /healthcheck
 ${NO_MANAGED_ELEMENT_PATH}               %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/A_no_managed_element.xml
 ${NO_MEASDATA_PATH}                      %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/A_no_measdata.xml
-${MEASD_RESULT_PATH}                     %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/A_meas_result.xml
 ${VALID_METADATA_PATH}                   %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/valid_metadata.json
 ${DIFF_VENDOR_METADATA}                  %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/diff_vendor_metadata.json
 ${CLI_EXEC_CLI_PM_LOG}                   docker exec pmmapper /bin/sh -c "tail -5 /var/log/ONAP/dcaegen2/services/pm-mapper/pm-mapper_output.log"
@@ -29,6 +28,7 @@ ${CLI_EXEC_PM_FILTER}                    curl 'http://${CONSUL_IP}:8500/v1/kv/pm
 ${CLI_RESTART_PMMAPPER}                  docker restart pmmapper
 ${CLI_DELETE_SUB1}                       curl -i -X DELETE -H "Content-Type:application/vnd.dmaap-dr.subscription" -H "X-DMAAP-DR-ON-BEHALF-OF:DGL" -k https://localhost:8443/subs/1
 ${CLI_DELETE_SUB2}                       curl -i -X DELETE -H "Content-Type:application/vnd.dmaap-dr.subscription" -H "X-DMAAP-DR-ON-BEHALF-OF:DGL" -k https://localhost:8443/subs/2
+${CLI_MESSAGE_ROUTER_TOPIC}              curl http://${DMAAP_MR_IP}:3904/events/topic.org.onap.dmaap.mr.test1/CG1/C1?timeout=2000
 
 *** Test Cases ***
 
@@ -43,7 +43,6 @@ Verify 3GPP PM Mapper Subscribes to Data Router
     CheckLog                        ${CLI_EXEC_CLI_SUBS}             3gpppmmapper
     CheckLog                        ${CLI_EXEC_CLI_SUBS}             "privilegedSubscriber":true
 
-
 Verify Health Check returns 200 when a REST GET request to healthcheck url
     [Tags]                          PM_MAPPER_03
     [Documentation]                 Verify Health Check returns 200 when a REST GET request to healthcheck url
@@ -71,56 +70,46 @@ Verify 3GPP PM Mapper responds appropriately when invalid metadata is provided
     VerifyResponse                  ${resp.content}                 Malformed Metadata.
     CheckLog                        ${CLI_EXEC_CLI_PM_LOG}          RequestID=2
 
-Verify 3GPP PM Mapper received pushed PM data from Data Router
+Verify 3GPP PM Mapper received pushed PM data from data router and publishes to message router.
     [Tags]                          PM_MAPPER_06
-    [Documentation]                 Verify 3GPP PM Mapper received pushed PM data from Data Router
+    [Documentation]                 Verify 3GPP PM Mapper received pushed PM data from data router and publishes to message router.
     [Timeout]                       1 minute
     ${PM_DATA}=                     Get File                         ${PM_DATA_FILE_PATH}
     ${valid_metatdata}              Get File                         ${VALID_METADATA_PATH}
     ${resp}=                        PutCall                          ${PUBLISH_NODE_URL}     3    ${PM_DATA}    ${PUBLISH_CONTENT_TYPE}    ${valid_metatdata.replace("\n","")}    pmmapper
     VerifyResponse                  ${resp.status_code}              204
     Sleep                           10s
-    CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           Event Processed
+    CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           Successfully published VES events to messagerouter
     CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           RequestID=3
-
-Verify that PM Mapper logs successful when a file that contains measdata is provided
-    [Tags]                          PM_MAPPER_07
-    [Documentation]                 Verify that PM Mapper logs successful when a file that contains measdata is provided
-    [Timeout]                       1 minute
-    ${valid_meas_result_content}=   Get File                         ${MEASD_RESULT_PATH}
-    ${valid_metatdata}              Get File                         ${VALID_METADATA_PATH}
-    ${headers}=                     Create Dictionary                X-ONAP-RequestID=4  Content-Type=application/xml  X-DMAAP-DR-PUBLISH-ID=4  X-DMAAP-DR-META=${valid_metatdata.replace("\n","")}
-    ${resp}=                        Put Request                      mapper_session  ${DELIVERY_ENDPOINT}/A_meas_result.xml    data=${valid_meas_result_content}    headers=${headers}
-    VerifyResponse                  ${resp.status_code}              200
-    CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           XML validation successful
-    CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           RequestID=4
+    Sleep                           10s
+    CheckLog                        ${CLI_MESSAGE_ROUTER_TOPIC}      perf3gpp_gnb-Ericsson_pmMeasResult
 
 Verify that PM Mapper logs successful when a file that contains no measdata is provided
-    [Tags]                          PM_MAPPER_08
+    [Tags]                          PM_MAPPER_07
     [Documentation]                 Verify that PM Mapper logs successful when a file that contains no measdata is provided
     [Timeout]                       1 minute
     ${valid_no_measdata_content}=   Get File                         ${NO_MEASDATA_PATH}
     ${valid_metatdata}              Get File                         ${VALID_METADATA_PATH}
-    ${headers}=                     Create Dictionary                X-ONAP-RequestID=5  Content-Type=application/xml  X-DMAAP-DR-PUBLISH-ID=3  X-DMAAP-DR-META=${valid_metatdata.replace("\n","")}
+    ${headers}=                     Create Dictionary                X-ONAP-RequestID=4  Content-Type=application/xml  X-DMAAP-DR-PUBLISH-ID=3  X-DMAAP-DR-META=${valid_metatdata.replace("\n","")}
     ${resp}=                        Put Request                      mapper_session  ${DELIVERY_ENDPOINT}/A_no_measdata.xml    data=${valid_no_measdata_content}    headers=${headers}
     VerifyResponse                  ${resp.status_code}              200
-    CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           XML validation successful
-    CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           RequestID=5
+    CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           MeasData is empty
+    CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           RequestID=4
 
 Verify that PM Mapper throws Event failed validation against schema error when no managed element content is provided
-    [Tags]                          PM_MAPPER_09
+    [Tags]                          PM_MAPPER_08
     [Documentation]                 Verify 3gpp pm mapper responds with an error when no managed element content is provided
     [Timeout]                       1 minute
     ${no_managed_element_content}=  Get File                         ${NO_MANAGED_ELEMENT_PATH}
     ${valid_metatdata}              Get File                         ${VALID_METADATA_PATH}
-    ${headers}=                     Create Dictionary                X-ONAP-RequestID=6  Content-Type=application/xml  X-DMAAP-DR-PUBLISH-ID=2  X-DMAAP-DR-META=${valid_metatdata.replace("\n","")}
+    ${headers}=                     Create Dictionary                X-ONAP-RequestID=5  Content-Type=application/xml  X-DMAAP-DR-PUBLISH-ID=2  X-DMAAP-DR-META=${valid_metatdata.replace("\n","")}
     ${resp}=                        Put Request                      mapper_session  ${DELIVERY_ENDPOINT}/A_no_managed_element.xml    data=${no_managed_element_content}    headers=${headers}
     VerifyResponse                  ${resp.status_code}              200
     CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           XML validation failed
-    CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           RequestID=6
+    CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           RequestID=5
 
 Verify that PM Mapper correctly identifies a file that should not be mapped based on metadata filtering.
-    [Tags]                          PM_MAPPER_10
+    [Tags]                          PM_MAPPER_09
     [Documentation]                 Verify that PM Mapper correctly identifies a file that should not be mapped based on metadata filtering.
     [Timeout]                       1 minute
     ${cli_cmd_output}=              Run Process                      ${CLI_EXEC_VENDOR_FILTER}                   shell=yes
@@ -129,12 +118,12 @@ Verify that PM Mapper correctly identifies a file that should not be mapped base
     Should Be Equal As Strings      ${cli_cmd_output.rc}             0
     ${cli_cmd_output}=              Run Process                      ${CLI_RESTART_PMMAPPER}                     shell=yes
     Sleep                           10s
-    ${valid_meas_result_content}=   Get File                         ${MEASD_RESULT_PATH}
+    ${pm_data}=                     Get File                         ${PM_DATA_FILE_PATH}
     ${diff_vendor_metadata}=        Get File                         ${DIFF_VENDOR_METADATA}
-    ${headers}=                     Create Dictionary                X-ONAP-RequestID=7  Content-Type=application/xml  X-DMAAP-DR-PUBLISH-ID=2  X-DMAAP-DR-META=${diff_vendor_metadata.replace("\n","")}
-    ${resp}=                        Put Request                      mapper_session  ${DELIVERY_ENDPOINT}/A_meas_result.xml    data=${valid_meas_result_content}    headers=${headers}
+    ${headers}=                     Create Dictionary                X-ONAP-RequestID=6  Content-Type=application/xml  X-DMAAP-DR-PUBLISH-ID=2  X-DMAAP-DR-META=${diff_vendor_metadata.replace("\n","")}
+    ${resp}=                        Put Request                      mapper_session  ${DELIVERY_ENDPOINT}/A20181002.0000-1000-0015-1000_5G.xml    data=${pm_data}    headers=${headers}
     CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           Metadata does not match any filters,
-    CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           RequestID=7
+    CheckLog                        ${CLI_EXEC_CLI_PM_LOG}           RequestID=6
 
 
 *** Keywords ***
index 2541501..f8ba0fb 100644 (file)
@@ -17,12 +17,12 @@ ${EVENT_DATA_FILE}                       %{WORKSPACE}/tests/usecases/5G-bulkpm/a
 ${TARGETURL_TOPICS}                      http://${DMAAP_MR_IP}:3904/topics
 ${TARGETURL_SUBSCR}                      http://${DMAAP_MR_IP}:3904/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12?timeout=1000
 ${CLI_EXEC_CLI}                          curl -k https://${DR_PROV_IP}:8443/internal/prov
-${CLI_EXEC_CLI_FILECONSUMER}             docker exec fileconsumer-node /bin/sh -c "ls /opt/app/subscriber/delivery | grep .gz"
+${CLI_EXEC_CLI_FILECONSUMER}             docker exec fileconsumer-node /bin/sh -c "ls /opt/app/subscriber/delivery | grep .xml"
 ${CLI_EXEC_CLI_DFC_LOG}                  docker exec dfc /bin/sh -c "cat /var/log/ONAP/application.log" > /tmp/dfc_docker.log.robot
 ${CLI_EXEC_CLI_DFC_LOG_GREP}             grep "Publish to DR successful!" /tmp/dfc_docker.log.robot
 
-${CLI_EXEC_CLI_FILECONSUMER_CP}          docker cp fileconsumer-node:/opt/app/subscriber/delivery/xNF.pm.xml.gz.M %{WORKSPACE}
-${CLI_EXEC_RENAME_METADATA}              mv %{WORKSPACE}/xNF.pm.xml.gz.M  %{WORKSPACE}/metadata.json
+${CLI_EXEC_CLI_FILECONSUMER_CP}          docker cp fileconsumer-node:/opt/app/subscriber/delivery/oteNB5309_xNF.pm.xml.M %{WORKSPACE}
+${CLI_EXEC_RENAME_METADATA}              mv %{WORKSPACE}/oteNB5309_xNF.pm.xml.M  %{WORKSPACE}/metadata.json
 ${metadataSchemaPath}                    %{WORKSPACE}/tests/usecases/5G-bulkpm/assets/metadata.schema.json
 ${metadataJsonPath}                      %{WORKSPACE}/metadata.json
 
@@ -86,7 +86,7 @@ Verify Fileconsumer Receive PM file from Data Router
     ${cli_cmd_output}=              Run Process                     ${CLI_EXEC_CLI_FILECONSUMER}        shell=yes
     Log                             ${cli_cmd_output.stdout}
     Should Be Equal As Strings      ${cli_cmd_output.rc}            0
-    Should Contain                  ${cli_cmd_output.stdout}        xNF.pm.xml.gz
+    Should Contain                  ${cli_cmd_output.stdout}        oteNB5309_xNF.pm.xml
 
 Verify File Consumer Receive valid metadata from Data Router
     [Tags]                          Bulk_PM_E2E_06
@@ -94,7 +94,7 @@ Verify File Consumer Receive valid metadata from Data Router
     ${cli_cmd_output}=              Run Process                     ${CLI_EXEC_CLI_FILECONSUMER}        shell=yes
     Log                             ${cli_cmd_output.stdout}
     Should Be Equal As Strings      ${cli_cmd_output.rc}            0
-    Should Contain                  ${cli_cmd_output.stdout}        xNF.pm.xml.gz.M
+    Should Contain                  ${cli_cmd_output.stdout}        oteNB5309_xNF.pm.xml.M
     ${cli_cmd_output}=              Run Process                     ${CLI_EXEC_CLI_FILECONSUMER_CP}     shell=yes
     ${cli_cmd_output}=              Run Process                     ${CLI_EXEC_RENAME_METADATA}         shell=yes
     ${validation_result}=           Validate                        ${metadataSchemaPath}    ${metadataJsonPath}
index 5f2c0fe..01fa92b 100644 (file)
@@ -1,11 +1,12 @@
 version: '3'
 services:
     vid-server:
-        image: nexus3.onap.org:10001/onap/vid:3.0-STAGING-latest
+        image: nexus3.onap.org:10001/onap/vid:4.0-STAGING-latest
         environment:
         - VID_MYSQL_DBNAME=vid_openecomp_epsdk
         - VID_MYSQL_PASS=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
         - VID_MSO_SERVER_URL=https://so-simulator:8443
+        - VID_AAI_URL=http://aai-simulator:8443
         ports:
         - "8080:8080"
         - "8443:8443"
@@ -29,6 +30,19 @@ services:
         build:
             context: simulators
             dockerfile: Dockerfile
+            args:
+                component: so
         ports:
         - "8444:8443"
-        container_name: so-simulator
\ No newline at end of file
+        container_name: so-simulator
+        
+    aai-simulator:
+        build:
+            context: simulators
+            dockerfile: Dockerfile
+            args:
+                component: aai
+        ports:
+        - "8445:8443"
+        container_name: aai-simulator
+
index ace6d56..e6586b1 100644 (file)
@@ -1,16 +1,12 @@
-FROM alpine:3.9
+FROM python:3-alpine3.9
 
-RUN apk add --no-cache python3 && \
-    python3 -m ensurepip && \
-    rm -r /usr/lib/python*/ensurepip && \
-    pip3 install --upgrade pip setuptools && \
-    if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
-    if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \
-    rm -r /root/.cache
+# `component` should be `so` or `aai`
+ARG component
+ENV component=$component
 
 COPY SO.py /
 ADD ./test_data_assets/ /
 
 EXPOSE 8443
 
-CMD [ "python", "./SO.py", "expected_so_requests.json", "expected_so_responses.json" ]
+CMD python ./SO.py expected_${component}_requests.json expected_${component}_responses.json
index c119939..fa481b3 100644 (file)
@@ -103,7 +103,7 @@ class JsonFileToDictReader(object):
 def init_so_simulator():
     expected_so_requests = JsonFileToDictReader.read_expected_test_data(argv[1])
     expected_so_responses = JsonFileToDictReader.read_expected_test_data(argv[2])
-    logging.basicConfig(filename='output.log', level=logging.INFO)
+    logging.basicConfig(level=logging.INFO)
     handler = partial(SOHandler, expected_so_requests, expected_so_responses)
     handler.protocol_version = "HTTP/1.0"
     httpd = HTTPServer(('', DEFAULT_PORT), handler)
diff --git a/tests/vid/resources/simulators/test_data_assets/expected_aai_requests.json b/tests/vid/resources/simulators/test_data_assets/expected_aai_requests.json
new file mode 100644 (file)
index 0000000..3d77fe5
--- /dev/null
@@ -0,0 +1,4 @@
+{
+  "get": {
+  }
+}
\ No newline at end of file
diff --git a/tests/vid/resources/simulators/test_data_assets/expected_aai_responses.json b/tests/vid/resources/simulators/test_data_assets/expected_aai_responses.json
new file mode 100644 (file)
index 0000000..c809bca
--- /dev/null
@@ -0,0 +1,9 @@
+{
+  "get": {
+    "cloud-region": [{
+        "cloud-owner": "CloudOwner",
+        "cloud-region-id": "RegionOne"
+      }
+    ]
+  }
+}