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