Seperating usecase test suite dependencies
# Refactoring BulkPM Dataplane test suite
Signed-off-by: efiacor <fiachra.corcoran@est.tech>
Change-Id: I4b2ad0dc5147e10ffc55f4ec210a29f073cd865b
Issue-ID: INT-832
Signed-off-by: efiacor <fiachra.corcoran@est.tech>
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/assets/A20181002.0000-1000-0015-1000_5G.xml.gz b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/A20181002.0000-1000-0015-1000_5G.xml.gz
new file mode 100644
index 0000000..32865fc
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/A20181002.0000-1000-0015-1000_5G.xml.gz
Binary files differ
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/assets/cbs_sim/cbs-initializer.json b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/cbs_sim/cbs-initializer.json
new file mode 100644
index 0000000..e1677ba
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/cbs_sim/cbs-initializer.json
@@ -0,0 +1,95 @@
+[{
+ "httpRequest":{
+ "method":"GET",
+ "path":"/service_component/pmmapper",
+ "headers":{
+ "!X-ONAP-RequestID":[
+ "!12345"
+ ],
+ "!X-ONAP-InvocationID":[
+ "!12345"
+ ],
+ "X-ONAP-PartnerName":[
+ "pm-mapper"
+ ],
+ "User-Agent":[
+ "Java/1.8.0_171"
+ ],
+ "Host":[
+ "!some-random-host:10000"
+ ],
+ "Accept":[
+ "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+ ],
+ "Connection":[
+ "keep-alive"
+ ],
+ "content-length":[
+ "0"
+ ]
+ },
+ "keepAlive":true,
+ "secure":false
+ },
+ "httpResponse":{
+ "statusCode":200,
+ "headers":{
+ "content-type":[
+ "application/json"
+ ]
+ },
+ "body":{
+ "type":"JSON",
+ "json":{
+ "pm-mapper-filter":"{\"filters\": []}",
+ "key_store_path":"/opt/app/pm-mapper/etc/cert.jks",
+ "key_store_pass_path":"/opt/app/pm-mapper/etc/jks.pass",
+ "trust_store_path":"/opt/app/pm-mapper/etc/trust.jks",
+ "trust_store_pass_path":"/opt/app/pm-mapper/etc/trust.pass",
+ "dmaap_dr_delete_endpoint":"https://dmaap-dr-node:8443/delete",
+ "dmaap_dr_feed_name":"1",
+ "aaf_identity":"aaf_admin@people.osaaf.org",
+ "aaf_password":"demo123456!",
+ "enable_http":true,
+ "streams_publishes":{
+ "dmaap_publisher":{
+ "type":"message_router",
+ "dmaap_info":{
+ "topic_url":"http://dmaap-message-router:3904/events/org.onap.dmaap.mr.VES_PM",
+ "client_role":"org.onap.dcae.pmPublisher",
+ "location":"csit-pmmapper",
+ "client_id":"1562763644939"
+ }
+ }
+ },
+ "streams_subscribes":{
+ "dmaap_subscriber":{
+ "type":"data_router",
+ "dmaap_info":{
+ "username":"username",
+ "password":"password",
+ "location":"csit-pmmapper",
+ "delivery_url":"http://dcae-pm-mapper:8081/delivery",
+ "subscriber_id":1
+ }
+ }
+ }
+ }
+ }
+ }
+},
+ {
+ "httpRequest": {
+ "path": "/health"
+ },
+ "httpResponse": {
+ "statusCode": 200,
+ "headers": {
+ "content-type": [
+ "application/json"
+ ]
+ },
+ "body": "{}"
+ }
+ }
+]
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/assets/cbs_sim/cbs_mockserver.properties b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/cbs_sim/cbs_mockserver.properties
new file mode 100644
index 0000000..8c29348
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/cbs_sim/cbs_mockserver.properties
@@ -0,0 +1,26 @@
+#######################################
+# MockServer & Proxy Example Settings #
+#######################################
+
+# Socket & Port Settings
+
+# socket timeout in milliseconds (default 120000)
+mockserver.maxSocketTimeout=120000
+
+# Certificate Generation
+
+# delete KeyStore file on JVM shutdown (default true)
+mockserver.deleteGeneratedKeyStoreOnExit=true
+# certificate domain name (default "localhost")
+mockserver.sslCertificateDomainName=localhost
+# comma separated list of domain names for Subject Alternative Name domain names (default empty list)
+mockserver.sslSubjectAlternativeNameDomains=cbs-sim,config-binding-service,config-binding-service.onap
+# comma separated list of ip addresses for Subject Alternative Name ips (default empty list)
+mockserver.sslSubjectAlternativeNameIps=127.0.0.1
+
+# CORS
+
+# enable CORS for MockServer REST API
+mockserver.enableCORSForAPI=true
+# enable CORS for all responses
+mockserver.enableCORSForAllResponses=true
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dfc/application.yaml b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dfc/application.yaml
new file mode 100644
index 0000000..086babc
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dfc/application.yaml
@@ -0,0 +1,26 @@
+spring:
+ profiles:
+ active: prod
+management:
+ endpoints:
+ web:
+ exposure:
+ include: "loggers,logfile,health,info,metrics"
+server:
+ port: 8433
+ ssl:
+ key-store-type: PKCS12
+ key-store-password: ericssondfc
+ key-store: classpath:keystore.jks
+ key-password: ericssondfc
+ keyAlias: tomcat-localhost
+logging:
+ level:
+ ROOT: ERROR
+ org.springframework: ERROR
+ org.springframework.data: ERROR
+ org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR
+ org.onap.dcaegen2.collectors.datafile: TRACE
+ file: /var/log/ONAP/application.log
+app:
+ filepath: /opt/app/datafile/config/datafile_endpoints.json
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dfc/datafile_endpoints.json b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dfc/datafile_endpoints.json
new file mode 100644
index 0000000..6abfb56
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dfc/datafile_endpoints.json
@@ -0,0 +1,35 @@
+{
+ "config": {
+ "//description": "This file is only used for testing purposes",
+ "dmaap.ftpesConfig.keyCert": "/opt/app/datafile/etc/cert/cert.jks",
+ "dmaap.ftpesConfig.keyPasswordPath": "/opt/app/datafile/etc/cert/jks.pass",
+ "dmaap.ftpesConfig.trustedCa": "/opt/app/datafile/etc/cert/trust.jks",
+ "dmaap.ftpesConfig.trustedCaPasswordPath": "/opt/app/datafile/etc/cert/trust.pass",
+ "dmaap.security.trustStorePath": "/opt/app/datafile/etc/cert/trust.jks",
+ "dmaap.security.trustStorePasswordPath": "/opt/app/datafile/etc/cert/trust.pass",
+ "dmaap.security.keyStorePath": "/opt/app/datafile/etc/cert/cert.jks",
+ "dmaap.security.keyStorePasswordPath": "/opt/app/datafile/etc/cert/jks.pass",
+ "dmaap.security.enableDmaapCertAuth": "false",
+ "streams_publishes": {
+ "PM_MEAS_FILES": {
+ "type": "data_router",
+ "dmaap_info": {
+ "username": "dradmin",
+ "location": "san-francisco",
+ "log_url": "https://dmaap-dr-prov:8443/feedlog/1",
+ "publisher_id": "972.360gm",
+ "password": "dradmin",
+ "publish_url": "https://dmaap-dr-prov:8443/publish/1"
+ }
+ }
+ },
+ "streams_subscribes": {
+ "dmaap_subscriber": {
+ "dmaap_info": {
+ "topic_url":"http://dradmin:dradmin@dmaap-message-router:3904/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12"
+ },
+ "type": "message_router"
+ }
+ }
+ }
+}
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dmaap_dr/addDefaultSubscriber.json b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dmaap_dr/addDefaultSubscriber.json
new file mode 100644
index 0000000..6a8da84
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dmaap_dr/addDefaultSubscriber.json
@@ -0,0 +1,19 @@
+{
+ "delivery":{
+ "url":"http://datarouter-subscriber:7070",
+ "user":"LOGIN",
+ "password":"PASSWORD",
+ "use100":true
+ },
+ "follow_redirect":false,
+ "metadataOnly":false,
+ "suspend":false,
+ "groupid":0,
+ "links":{
+ "self": "https://dmaap-dr-prov/subscribe/1",
+ "log": "https://dmaap-dr-prov/feedlog/1",
+ "feed": "https://dmaap-dr-prov/feed/1"
+ },
+ "subscriber":"admin",
+ "decompress":true
+ }
\ No newline at end of file
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dmaap_dr/addPmMapperSubscriber.json b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dmaap_dr/addPmMapperSubscriber.json
new file mode 100644
index 0000000..0666a7d
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dmaap_dr/addPmMapperSubscriber.json
@@ -0,0 +1,20 @@
+{
+ "delivery":{
+ "url":"http://dcae-pm-mapper:8081/delivery",
+ "user":"username",
+ "password":"password",
+ "use100":true
+ },
+ "follow_redirect":false,
+ "metadataOnly":false,
+ "suspend":false,
+ "groupid":0,
+ "links":{
+ "self": "https://dmaap-dr-prov/subscribe/1",
+ "log": "https://dmaap-dr-prov/feedlog/1",
+ "feed": "https://dmaap-dr-prov/feed/1"
+ },
+ "subscriber":"pmmapper",
+ "decompress":true,
+ "privilegedSubscriber": true
+ }
\ No newline at end of file
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dmaap_dr/createFeed.json b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dmaap_dr/createFeed.json
new file mode 100644
index 0000000..fdcc7ee
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dmaap_dr/createFeed.json
@@ -0,0 +1,18 @@
+{
+ "name": "DefaultFeed",
+ "version": "m1.0",
+ "description": "Default feed",
+ "business_description": "Default Feed",
+ "suspend": false,
+ "deleted": false,
+ "changeowner": true,
+ "authorization": {
+ "classification": "unclassified",
+ "endpoint_addrs": [],
+ "endpoint_ids": [
+ {
+ "password": "dradmin",
+ "id": "dradmin"
+ }]
+ }
+ }
\ No newline at end of file
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/assets/pm_mapper_certs/cert.jks b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/pm_mapper_certs/cert.jks
new file mode 100644
index 0000000..33dc9a3
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/pm_mapper_certs/cert.jks
Binary files differ
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/assets/pm_mapper_certs/jks.pass b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/pm_mapper_certs/jks.pass
new file mode 100644
index 0000000..ae8f7e7
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/pm_mapper_certs/jks.pass
@@ -0,0 +1 @@
+Er1tmip;T4w[%1}YE?x{fN9v
\ No newline at end of file
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/assets/pm_mapper_certs/trust.jks b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/pm_mapper_certs/trust.jks
new file mode 100644
index 0000000..679c95a
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/pm_mapper_certs/trust.jks
Binary files differ
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/assets/pm_mapper_certs/trust.pass b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/pm_mapper_certs/trust.pass
new file mode 100644
index 0000000..d3d01b0
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/assets/pm_mapper_certs/trust.pass
@@ -0,0 +1 @@
+583Ls;XF(qDQu3p!L22gyh1t
\ No newline at end of file
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/composefile/docker-compose-e2e.yml b/plans/usecases-5G-bulkpm/5G-bulkpm/composefile/docker-compose-e2e.yml
new file mode 100644
index 0000000..e2f16a7
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/composefile/docker-compose-e2e.yml
@@ -0,0 +1,152 @@
+version: '2.1'
+services:
+ datarouter-prov:
+ image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov:latest
+ container_name: dmaap-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: 10s
+ retries: 5
+ networks:
+ tmp_bulk-pm-network:
+ aliases:
+ - datarouter-prov
+ - dmaap-dr-prov
+
+ datarouter-node:
+ image: nexus3.onap.org:10001/onap/dmaap/datarouter-node:latest
+ container_name: dmaap-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:
+ tmp_bulk-pm-network:
+ aliases:
+ - datarouter-node
+ - dmaap-dr-node
+
+ datarouter-subscriber:
+ image: nexus3.onap.org:10001/onap/dmaap/datarouter-subscriber:latest
+ container_name: fileconsumer-node
+ hostname: subscriber.com
+ ports:
+ - "7070:7070"
+ volumes:
+ - ../subscriber_data/subscriber.properties:/opt/app/subscriber/etc/subscriber.properties
+ networks:
+ tmp_bulk-pm-network:
+ aliases:
+ - datarouter-subscriber
+
+ mariadb_container:
+ image: mariadb:10.2.14
+ container_name: dmaap-dr-prov-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", "--silent"]
+ interval: 10s
+ timeout: 30s
+ retries: 5
+ networks:
+ tmp_bulk-pm-network:
+ aliases:
+ - datarouter-mariadb
+
+ sftp:
+ container_name: sftp
+ image: atmoz/sftp
+ ports:
+ - "2222:22"
+ command: admin:admin:1001
+ networks:
+ tmp_bulk-pm-network:
+ aliases:
+ - sftp
+
+ ves:
+ container_name: dcaegen2-vescollector
+ image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.4.4
+ environment:
+ DMAAPHOST: dmaap-message-router
+ networks:
+ tmp_bulk-pm-network:
+ aliases:
+ - dcaegen2-ves-collector
+
+ dfc:
+ container_name: dcaegen2-datafile-collector
+ image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:latest
+ ports:
+ - "8433:8433"
+ volumes:
+ - ./dfc/application.yaml:/opt/app/datafile/config/application.yaml
+ - ./dfc/datafile_endpoints.json:/opt/app/datafile/config/datafile_endpoints.json
+ networks:
+ tmp_bulk-pm-network:
+ aliases:
+ - dcaegen2-datafile-collector
+
+ cbs-sim:
+ container_name: config-binding-service-sim
+ image: mockserver/mockserver:mockserver-5.10.0
+ environment:
+ MOCKSERVER_PROPERTY_FILE: /config/mockserver.properties
+ MOCKSERVER_INITIALIZATION_JSON_PATH: /config/cbs-initializer.json
+ LOG_LEVEL: "DEBUG"
+ SERVER_PORT: 10000
+ volumes:
+ - ./cbs_sim/cbs_mockserver.properties:/config/mockserver.properties
+ - ./cbs_sim/cbs-initializer.json:/config/cbs-initializer.json
+ networks:
+ tmp_bulk-pm-network:
+ aliases:
+ - config-binding-service
+
+ pmmapper:
+ container_name: dcaegen2-pm-mapper
+ image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pm-mapper:latest
+ ports:
+ - "8081:8081"
+ volumes:
+ - ./pm_mapper_certs/cert.jks:/opt/app/pm-mapper/etc/cert.jks:ro
+ - ./pm_mapper_certs/jks.pass:/opt/app/pm-mapper/etc/jks.pass:ro
+ - ./pm_mapper_certs/trust.jks:/opt/app/pm-mapper/etc/trust.jks:ro
+ - ./pm_mapper_certs/trust.pass:/opt/app/pm-mapper/etc/trust.pass:ro
+ environment:
+ CONFIG_BINDING_SERVICE_SERVICE_HOST: config-binding-service
+ CONFIG_BINDING_SERVICE_SERVICE_PORT: 10000
+ HOSTNAME: pmmapper
+ networks:
+ tmp_bulk-pm-network:
+ aliases:
+ - dcae-pm-mapper
+
+networks:
+ tmp_bulk-pm-network:
+ external: true
+
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/composefile/docker-compose-mr.yml b/plans/usecases-5G-bulkpm/5G-bulkpm/composefile/docker-compose-mr.yml
new file mode 100644
index 0000000..ba30f28
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/composefile/docker-compose-mr.yml
@@ -0,0 +1,77 @@
+version: '2.1'
+services:
+ zookeeper:
+ container_name: dmaap-message-router-zookeeper
+ image: nexus3.onap.org:10001/onap/dmaap/zookeeper:6.0.3
+ ports:
+ - "2181:2181"
+ environment:
+ ZOOKEEPER_REPLICAS: 1
+ ZOOKEEPER_TICK_TIME: 2000
+ ZOOKEEPER_SYNC_LIMIT: 5
+ ZOOKEEPER_INIT_LIMIT: 10
+ ZOOKEEPER_MAX_CLIENT_CNXNS: 200
+ ZOOKEEPER_AUTOPURGE_SNAP_RETAIN_COUNT: 3
+ ZOOKEEPER_AUTOPURGE_PURGE_INTERVAL: 24
+ ZOOKEEPER_CLIENT_PORT: 2181
+ KAFKA_OPTS: -Djava.security.auth.login.config=/etc/zookeeper/secrets/jaas/zk_server_jaas.conf -Dzookeeper.kerberos.removeHostFromPrincipal=true -Dzookeeper.kerberos.removeRealmFromPrincipal=true -Dzookeeper.authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider -Dzookeeper.requireClientAuthScheme=sasl
+ ZOOKEEPER_SERVER_ID: 1
+ volumes:
+ - ../zk/zk_server_jaas.conf:/etc/zookeeper/secrets/jaas/zk_server_jaas.conf
+ networks:
+ bulk-pm-network:
+ aliases:
+ - zookeeper
+
+ kafka:
+ container_name: dmaap-message-router-kafka
+ image: nexus3.onap.org:10001/onap/dmaap/kafka111:1.0.4
+ ports:
+ - "9092:9092"
+ environment:
+ enableCadi: 'false'
+ KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
+ KAFKA_ZOOKEEPER_CONNECTION_TIMEOUT_MS: 40000
+ KAFKA_ZOOKEEPER_SESSION_TIMEOUT_MS: 40000
+ KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL_PLAINTEXT:PLAINTEXT,EXTERNAL_PLAINTEXT:PLAINTEXT
+ KAFKA_ADVERTISED_LISTENERS: INTERNAL_PLAINTEXT://kafka:9092
+ KAFKA_LISTENERS: INTERNAL_PLAINTEXT://0.0.0.0:9092
+ KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL_PLAINTEXT
+ KAFKA_CONFLUENT_SUPPORT_METRICS_ENABLE: 'false'
+ KAFKA_OPTS: -Djava.security.auth.login.config=/etc/kafka/secrets/jaas/zk_client_jaas.conf
+ KAFKA_ZOOKEEPER_SET_ACL: 'true'
+ KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
+ # Reduced the number of partitions only to avoid the timeout error for the first subscribe call in slow environment
+ KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: 1
+ volumes:
+ - ../kafka/zk_client_jaas.conf:/etc/kafka/secrets/jaas/zk_client_jaas.conf
+ networks:
+ bulk-pm-network:
+ aliases:
+ - kafka
+ depends_on:
+ - zookeeper
+
+ dmaap-message-router:
+ container_name: dmaap-message-router-server
+ image: nexus3.onap.org:10001/onap/dmaap/dmaap-mr:1.1.18
+ ports:
+ - "3904:3904"
+ - "3905:3905"
+ environment:
+ enableCadi: 'false'
+ volumes:
+ - ../mr/MsgRtrApi.properties:/appl/dmaapMR1/bundleconfig/etc/appprops/MsgRtrApi.properties
+ - ../mr/logback.xml:/appl/dmaapMR1/bundleconfig/etc/logback.xml
+ - ../mr/cadi.properties:/appl/dmaapMR1/etc/cadi.properties
+ networks:
+ bulk-pm-network:
+ aliases:
+ - dmaap-message-router
+ depends_on:
+ - zookeeper
+ - kafka
+
+networks:
+ bulk-pm-network:
+ driver: bridge
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/setup.sh b/plans/usecases-5G-bulkpm/5G-bulkpm/setup.sh
new file mode 100644
index 0000000..1f5f26d
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/setup.sh
@@ -0,0 +1,119 @@
+#!/bin/bash
+# Place the scripts in run order:
+source ${SCRIPTS}/common_functions.sh
+
+# Clone DMaaP Message Router repo
+mkdir -p $WORKSPACE/archives/dmaapmr
+cd $WORKSPACE/archives/dmaapmr
+git clone --depth 1 http://gerrit.onap.org/r/dmaap/messagerouter/messageservice -b master
+mkdir $WORKSPACE/archives/dmaapmr/messageservice/src/main/resources/docker-compose/tmp/
+# Copy custom docker-compose file
+cp $WORKSPACE/plans/usecases-5G-bulkpm/5G-bulkpm/composefile/docker-compose-mr.yml \
+$WORKSPACE/archives/dmaapmr/messageservice/src/main/resources/docker-compose/tmp/docker-compose-mr.yml
+
+# Login to onap docker
+docker login -u docker -p docker nexus3.onap.org:10001
+# Start DMaaP MR containers with docker compose and configuration from docker-compose-mr.yml
+docker-compose -f $WORKSPACE/archives/dmaapmr/messageservice/src/main/resources/docker-compose/tmp/docker-compose-mr.yml up -d
+sleep 5
+
+# Wait for initialization of Docker contaienr for DMaaP MR, Kafka and Zookeeper
+for i in 1 2 3 4 5 6 7 8 9 10; do
+ if [[ $(docker inspect --format '{{ .State.Running }}' dmaap-message-router-kafka) ]] && \
+ [[ $(docker inspect --format '{{ .State.Running }}' dmaap-message-router-zookeeper) ]] && \
+ [[ $(docker inspect --format '{{ .State.Running }}' dmaap-message-router-server) ]]
+ then
+ echo "Message Router service running"
+ break
+ else
+ echo sleep ${i}
+ sleep ${i}
+ fi
+done
+
+# Clone DMaaP Data Router repo
+mkdir -p $WORKSPACE/archives/dmaapdr
+cd $WORKSPACE/archives/dmaapdr
+git clone --depth 1 https://gerrit.onap.org/r/dmaap/datarouter -b master
+mkdir $WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources/docker-compose
+
+# Copy e2e docker compose assets to tmp dir
+cp $WORKSPACE/plans/usecases-5G-bulkpm/5G-bulkpm/composefile/docker-compose-e2e.yml \
+$WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources/docker-compose/docker-compose-e2e.yml
+cp -rf $WORKSPACE/plans/usecases-5G-bulkpm/5G-bulkpm/assets/cbs_sim/ \
+$WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources/docker-compose/
+cp -rf $WORKSPACE/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dfc/ \
+$WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources/docker-compose/
+cp -rf $WORKSPACE/plans/usecases-5G-bulkpm/5G-bulkpm/assets/pm_mapper_certs/ \
+$WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources/docker-compose/
+
+# Start cbs-sim for pmmapper stability
+docker-compose -f $WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources/docker-compose/docker-compose-e2e.yml up -d cbs-sim
+echo "Starting cbs-sim"
+sleep 10
+
+# Start the rest of the e2e containers
+docker-compose -f $WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources/docker-compose/docker-compose-e2e.yml up -d
+
+# Wait for initialization of the following containers
+for i in 1 2 3 4 5 6 7 8 9 10; do
+ if [[ $(docker inspect --format '{{ .State.Running }}' dmaap-datarouter-node) ]] && \
+ [[ $(docker inspect --format '{{ .State.Running }}' dmaap-datarouter-prov) ]] && \
+ [[ $(docker inspect --format '{{ .State.Running }}' dmaap-dr-prov-mariadb) ]] && \
+ [[ $(docker inspect --format '{{ .State.Running }}' dcaegen2-pm-mapper) ]] && \
+ [[ $(docker inspect --format '{{ .State.Running }}' dcaegen2-datafile-collector) ]]
+ then
+ echo "Data Router service running"
+ break
+ else
+ echo sleep ${i}
+ sleep ${i}
+ fi
+done
+
+# Get IP address of docker-host, dmaap-dr-prov, dmaap-dr-gateway, dmaap-mr and ves collector.
+#HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $7}')
+DR_PROV_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dmaap-datarouter-prov)
+DR_GATEWAY_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}' dmaap-datarouter-prov)
+DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dmaap-message-router-server)
+VESC_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dcaegen2-vescollector)
+
+# Add gateway IP to DR Prov
+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"
+
+#Increase DFC Logging
+#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"
+
+# Copy sample PM file to sftp server
+docker cp $WORKSPACE/plans/usecases-5G-bulkpm/5G-bulkpm/assets/A20181002.0000-1000-0015-1000_5G.xml.gz sftp:/home/admin/
+
+# Data Router Configuration:
+# Create default feed on DMaaP data router
+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/5G-bulkpm/assets/dmaap_dr/createFeed.json --post301 \
+--location-trusted -k https://${DR_PROV_IP}:8443
+sleep 2
+# Create file consumer subscriber on DMaaP data router
+curl -X POST -H "Content-Type:application/vnd.dmaap-dr.subscription" -H "X-DMAAP-DR-ON-BEHALF-OF:dradmin" \
+--data-ascii @$WORKSPACE/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dmaap_dr/addDefaultSubscriber.json --post301 \
+--location-trusted -k https://${DR_PROV_IP}:8443/subscribe/1
+sleep 2
+# Add PM Mapper subscriber on data router feed
+curl -v -X POST -H "Content-Type:application/vnd.dmaap-dr.subscription" -H "X-DMAAP-DR-ON-BEHALF-OF:pmmapper" \
+--data-ascii @$WORKSPACE/plans/usecases-5G-bulkpm/5G-bulkpm/assets/dmaap_dr/addPmMapperSubscriber.json \
+--post301 --location-trusted -k https://${DR_PROV_IP}:8443/subscribe/1
+
+# Check DMaaP DR provisioning
+curl -k https://${DR_PROV_IP}:8443/internal/prov
+
+# Add necessary python libs
+pip install jsonschema uuid simplejson
+
+# Export necessary vars
+export VESC_IP=${VESC_IP}
+export VESC_PORT=8080
+export DMAAP_MR_IP=${DMAAP_MR_IP}
+
+#Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DMAAP_MR_IP:${DMAAP_MR_IP} -v VESC_IP:${VESC_IP} -v VESC_PORT:${VESC_PORT}"
\ No newline at end of file
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/teardown.sh b/plans/usecases-5G-bulkpm/5G-bulkpm/teardown.sh
new file mode 100644
index 0000000..04391bb
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/teardown.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+echo "Starting teardown script"
+kill-instance.sh dmaap-message-router-server
+kill-instance.sh dmaap-message-router-kafka
+kill-instance.sh dmaap-message-router-zookeeper
+kill-instance.sh dmaap-datarouter-node
+kill-instance.sh dmaap-datarouter-prov
+kill-instance.sh dmaap-dr-prov-mariadb
+kill-instance.sh fileconsumer-node
+kill-instance.sh dcaegen2-vescollector
+kill-instance.sh dcaegen2-datafile-collector
+kill-instance.sh dcaegen2-pm-mapper
+kill-instance.sh sftp
+kill-instance.sh config-binding-service-sim
+yes | docker network prune
diff --git a/plans/usecases-5G-bulkpm/5G-bulkpm/testplan.txt b/plans/usecases-5G-bulkpm/5G-bulkpm/testplan.txt
new file mode 100644
index 0000000..b72ba90
--- /dev/null
+++ b/plans/usecases-5G-bulkpm/5G-bulkpm/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [integration/csit.git]/tests/.
+# Place the suites in run order.
+usecases-5G-bulkpm/5G-bulkpm