From: Gary Wu Date: Wed, 27 Mar 2019 22:00:00 +0000 (+0000) Subject: Merge "Allow HV-VES tests to be run locally" X-Git-Tag: 4.0.0-ONAP~111 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=975f3eb217d02e2a4c92a7a3173c39c8dd92353f;hp=f344afa4b2b3c009823fb4895f22c9f839f1dbb0;p=integration%2Fcsit.git Merge "Allow HV-VES tests to be run locally" --- diff --git a/plans/dcaegen2-pmmapper/pmmapper/assets/config.json b/plans/dcaegen2-pmmapper/pmmapper/assets/config.json index 5eec4380..79b32012 100644 --- a/plans/dcaegen2-pmmapper/pmmapper/assets/config.json +++ b/plans/dcaegen2-pmmapper/pmmapper/assets/config.json @@ -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 }, diff --git a/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml b/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml index b14a73c6..a7f5b973 100644 --- a/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml +++ b/plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-pmmapper.yml @@ -12,3 +12,4 @@ services: extra_hosts: - "dmaap-bc:BUSIP" - "dmaap-dr-node:DRNODEIP" + - "message-router:DMAAPMRIP" diff --git a/plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh b/plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh index 14051121..14302589 100755 --- a/plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh +++ b/plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh @@ -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 diff --git a/plans/dcaegen2-pmmapper/pmmapper/setup.sh b/plans/dcaegen2-pmmapper/pmmapper/setup.sh index 2924bd21..18d82373 100644 --- a/plans/dcaegen2-pmmapper/pmmapper/setup.sh +++ b/plans/dcaegen2-pmmapper/pmmapper/setup.sh @@ -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 index 00000000..62b0f824 --- /dev/null +++ b/plans/dmaap-datarouter/dr-suite/docker-compose/node.properties @@ -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 index 00000000..e5295530 --- /dev/null +++ b/plans/dmaap-datarouter/dr-suite/docker-compose/provserver.properties @@ -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 diff --git a/plans/dmaap-datarouter/dr-suite/setup.sh b/plans/dmaap-datarouter/dr-suite/setup.sh index fa0764db..398eb7cd 100755 --- a/plans/dmaap-datarouter/dr-suite/setup.sh +++ b/plans/dmaap-datarouter/dr-suite/setup.sh @@ -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 diff --git a/plans/dmaap-datarouter/dr-suite/teardown.sh b/plans/dmaap-datarouter/dr-suite/teardown.sh index 8e568691..1b20842c 100755 --- a/plans/dmaap-datarouter/dr-suite/teardown.sh +++ b/plans/dmaap-datarouter/dr-suite/teardown.sh @@ -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 diff --git a/plans/usecases/5G-bulkpm/assets/addSubscriber.json b/plans/usecases/5G-bulkpm/assets/addSubscriber.json index 612c4626..bab63c4d 100644 --- a/plans/usecases/5G-bulkpm/assets/addSubscriber.json +++ b/plans/usecases/5G-bulkpm/assets/addSubscriber.json @@ -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 diff --git a/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml b/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml index 8f1abb51..f3c47bb2 100644 --- a/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml +++ b/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml @@ -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: diff --git a/plans/usecases/5G-bulkpm/setup.sh b/plans/usecases/5G-bulkpm/setup.sh index 3b766917..3d3a9ef5 100644 --- a/plans/usecases/5G-bulkpm/setup.sh +++ b/plans/usecases/5G-bulkpm/setup.sh @@ -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 diff --git a/plans/vid/healthCheck/setup.sh b/plans/vid/healthCheck/setup.sh index 584a640a..50a28b6b 100644 --- a/plans/vid/healthCheck/setup.sh +++ b/plans/vid/healthCheck/setup.sh @@ -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` diff --git a/plans/vid/healthCheck/teardown.sh b/plans/vid/healthCheck/teardown.sh index 8f168679..e5e5140a 100644 --- a/plans/vid/healthCheck/teardown.sh +++ b/plans/vid/healthCheck/teardown.sh @@ -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 diff --git a/scripts/vid/kill_containers_and_remove_dataFolders.sh b/scripts/vid/kill_containers_and_remove_dataFolders.sh index 9e72a42f..d7e05533 100644 --- a/scripts/vid/kill_containers_and_remove_dataFolders.sh +++ b/scripts/vid/kill_containers_and_remove_dataFolders.sh @@ -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 diff --git a/tests/appc/cdt/cdt.robot b/tests/appc/cdt/cdt.robot index b33bfe77..ad380f15 100644 --- a/tests/appc/cdt/cdt.robot +++ b/tests/appc/cdt/cdt.robot @@ -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 diff --git a/tests/appc/cdt/common.robot b/tests/appc/cdt/common.robot index 3492924f..b500d88e 100644 --- a/tests/appc/cdt/common.robot +++ b/tests/appc/cdt/common.robot @@ -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 index 269fdf1d..00000000 --- a/tests/dcaegen2-pmmapper/pmmapper/assets/A_meas_result.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - a b c - - 76 27 98 - false - - - - - - - diff --git a/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot b/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot index 311ee433..cbb77f93 100644 --- a/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot +++ b/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot @@ -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 *** diff --git a/tests/usecases/5G-bulkpm/BulkpmE2E.robot b/tests/usecases/5G-bulkpm/BulkpmE2E.robot index 2541501f..f8ba0fb1 100644 --- a/tests/usecases/5G-bulkpm/BulkpmE2E.robot +++ b/tests/usecases/5G-bulkpm/BulkpmE2E.robot @@ -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} diff --git a/tests/vid/resources/docker-compose.yml b/tests/vid/resources/docker-compose.yml index 5f2c0fec..01fa92b3 100644 --- a/tests/vid/resources/docker-compose.yml +++ b/tests/vid/resources/docker-compose.yml @@ -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 + diff --git a/tests/vid/resources/simulators/Dockerfile b/tests/vid/resources/simulators/Dockerfile index ace6d56d..e6586b1e 100644 --- a/tests/vid/resources/simulators/Dockerfile +++ b/tests/vid/resources/simulators/Dockerfile @@ -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 diff --git a/tests/vid/resources/simulators/SO.py b/tests/vid/resources/simulators/SO.py index c1199390..fa481b38 100644 --- a/tests/vid/resources/simulators/SO.py +++ b/tests/vid/resources/simulators/SO.py @@ -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 index 00000000..3d77fe59 --- /dev/null +++ b/tests/vid/resources/simulators/test_data_assets/expected_aai_requests.json @@ -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 index 00000000..c809bca1 --- /dev/null +++ b/tests/vid/resources/simulators/test_data_assets/expected_aai_responses.json @@ -0,0 +1,9 @@ +{ + "get": { + "cloud-region": [{ + "cloud-owner": "CloudOwner", + "cloud-region-id": "RegionOne" + } + ] + } +}