Updated Setup for 5G Bulk PM E2E Test Cases

Issue-ID: INT-649
Change-Id: I2776cdf94785c1f8294ed7c3f3a3e4251a158c27
Signed-off-by: Rajendra Jaiswal <rajendra.jaiswal@ericsson.com>
diff --git a/test/csit/plans/dcae-bulkpm/bulkpm-suite/composefile/docker-compose-e2e.yml b/test/csit/plans/dcae-bulkpm/bulkpm-suite/composefile/docker-compose-e2e.yml
new file mode 100644
index 0000000..435ff49
--- /dev/null
+++ b/test/csit/plans/dcae-bulkpm/bulkpm-suite/composefile/docker-compose-e2e.yml
@@ -0,0 +1,81 @@
+version: '2.1'
+services:
+  datarouter-prov:
+    image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov
+    container_name: 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
+
+  datarouter-node:
+    image: nexus3.onap.org:10001/onap/dmaap/datarouter-node
+    container_name: 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
+
+  datarouter-subscriber:
+      image: nexus3.onap.org:10001/onap/dmaap/datarouter-subscriber
+      container_name: subscriber-node
+      hostname: subscriber.com
+      ports:
+       - "7070:7070"
+      volumes:
+       - ./subscriber_data/subscriber.properties:/opt/app/subscriber/etc/subscriber.properties
+
+  mariadb_container:
+    image: mariadb:10.2.14
+    container_name: 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
+
+  sftp:
+    container_name: sftp
+    image: atmoz/sftp
+    ports:
+      - "2222:22"
+    volumes:
+      - /host/upload:/home/admin
+    command: admin:admin:1001
+
+  dfc:
+    container_name: dfc
+    image: quay.io/martin_yan_seu/datafile
+    ports:
+      - "8433:8433"
+
+  ves:
+    container_name: vescollector
+    image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.3.1
+    environment:
+       DMAAPHOST:
\ No newline at end of file
diff --git a/test/csit/plans/dcae-bulkpm/bulkpm-suite/setup.sh b/test/csit/plans/dcae-bulkpm/bulkpm-suite/setup.sh
index 6df4b2f..c9f5318 100644
--- a/test/csit/plans/dcae-bulkpm/bulkpm-suite/setup.sh
+++ b/test/csit/plans/dcae-bulkpm/bulkpm-suite/setup.sh
@@ -1,64 +1,7 @@
 #!/bin/bash
 # Place the scripts in run order:
-#Make sure python-uuid is installed
-
-# Place the scripts in run order:
-source ${SCRIPTS}/dcae-bulkpm/xNFSimulator.sh
-
-# Place the scripts in run order:
 source ${SCRIPTS}/common_functions.sh
 
-# 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
-cd datarouter
-git pull
-cd $WORKSPACE/archives/dmaapdr/datarouter/docker-compose/
-
-# start DMaaP DR containers with docker compose and configuration from docker-compose.yml
-docker login -u docker -p docker nexus3.onap.org:10001
-docker-compose up -d
-
-# Wait for initialization of Docker container for datarouter-node, datarouter-prov and mariadb
-for i in {1..50}; do
-    if [ $(docker inspect --format '{{ .State.Running }}' datarouter-node) ] && \
-        [ $(docker inspect --format '{{ .State.Running }}' datarouter-prov) ] && \
-        [ $(docker inspect --format '{{ .State.Running }}' mariadb) ]
-    then
-        echo "DR Service Running"
-        break
-    else
-        echo sleep $i
-        sleep $i
-    fi
-done
-
-DR_PROV_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-prov)
-DR_NODE_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-node)
-DR_GATEWAY_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}' datarouter-prov)
-
-#Add the DR_NODE_IP to /etc/hosts
-sudo echo "${DR_NODE_IP} dmaap-dr-node" >> /etc/hosts
-sudo echo "${DR_PROV_IP} dmaap-dr-prov" >> /etc/hosts
-
-echo DR_PROV_IP=${DR_PROV_IP}
-echo DR_NODE_IP=${DR_NODE_IP}
-echo DR_GATEWAY_IP=${DR_GATEWAY_IP}
-
-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"
-
-# Start DCAE VES Collector
-cd $WORKSPACE/
-HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}')
-VESC_IMAGE=nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.3.1
-echo VESC_IMAGE=${VESC_IMAGE}
-
-docker run -d  --name vesc -e DMAAPHOST=${HOST_IP} ${VESC_IMAGE}
-VESC_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' vesc)
-
 # Clone DMaaP Message Router repo
 mkdir -p $WORKSPACE/archives/dmaapmr
 cd $WORKSPACE/archives/dmaapmr
@@ -90,14 +33,11 @@
 done
 
 # Get IP address of DMAAP, KAFKA, Zookeeper
-DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $DMAAP)
 KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $KAFKA)
 ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $ZOOKEEPER)
+DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $DMAAP)
 
-echo DMAAP_MR_IP=${DMAAP_MR_IP}
-echo KAFKA_IP=${KAFKA_IP}
-echo ZOOKEEPER_IP=${ZOOKEEPER_IP}
-
+sleep 2
 # Shutdown DMAAP Container
 docker kill $DMAAP
 
@@ -106,14 +46,77 @@
 sed -i -e '/kafka.metadata.broker.list=/ s/=.*/='$KAFKA_IP':9092/' /var/tmp/MsgRtrApi.properties
 
 # Start DMaaP MR containers with docker compose and configuration from docker-compose.yml
-docker-compose build
 docker login -u docker -p docker nexus3.onap.org:10001
 docker-compose up -d
 sleep 5
 
+# 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
+cd datarouter
+cd $WORKSPACE/archives/dmaapdr/datarouter/docker-compose/
+rm -rf docker-compose.yml
+cp $WORKSPACE/test/csit/plans/dcae-bulkpm/bulkpm-suite/composefile/docker-compose-e2e.yml $WORKSPACE/archives/dmaapdr/datarouter/docker-compose/docker-compose.yml
+docker login -u docker -p docker nexus3.onap.org:10001
+docker-compose up -d
+docker kill datarouter-prov
+docker kill datarouter-node
+docker kill vescollector
+sed -i -e '/DMAAPHOST:/ s/:.*/: '$DMAAP_MR_IP'/' docker-compose.yml
+MARIADB=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mariadb )
+sed -i 's/172.100.0.2/'$MARIADB'/g' $WORKSPACE/archives/dmaapdr/datarouter/docker-compose/prov_data/provserver.properties
+docker-compose up -d
+
+# Wait for initialization of Docker container for datarouter-node, datarouter-prov and mariadb
+for i in {1..50}; do
+    if [ $(docker inspect --format '{{ .State.Running }}' datarouter-node) ] && \
+        [ $(docker inspect --format '{{ .State.Running }}' datarouter-prov) ] && \
+        [ $(docker inspect --format '{{ .State.Running }}' mariadb) ]
+    then
+        echo "DR Service Running"
+        break
+    else
+        echo sleep $i
+        sleep $i
+    fi
+done
+
+sleep 5
+
+# Get IP address of datarrouger-prov, datarouter-node, subscriber-node, subscriber-node.
+DR_PROV_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-prov)
+DR_NODE_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-node)
+DR_SUBSCIBER_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' subscriber-node)
+DR_GATEWAY_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}' datarouter-prov)
+
+#Add the DR_NODE_IP to /etc/hosts
+echo "${DR_NODE_IP} dmaap-dr-node" >> /etc/hosts
+echo "${DR_PROV_IP} dmaap-dr-prov" >> /etc/hosts
+
+echo DR_PROV_IP=${DR_PROV_IP}
+echo DR_NODE_IP=${DR_NODE_IP}
+echo DR_GATEWAY_IP=${DR_GATEWAY_IP}
+echo DR_SUBSCIBER_IP=${DR_SUBSCIBER_IP}
+
+docker exec -i datarouter-prov sh -c "curl -k  -X PUT https://$DR_PROV_IP:8443/internal/api/NODES?val=dmaap-dr-node\|$DR_GATEWAY_IP"
+docker exec -i datarouter-prov sh -c "curl -k  -X PUT https://$DR_PROV_IP:8443/internal/api/PROV_AUTH_ADDRESSES?val=dmaap-dr-prov\|$DR_GATEWAY_IP"
+docker exec datarouter-prov /bin/sh -c "echo '${DR_NODE_IP}' dmaap-dr-node >> /etc/hosts"
+docker exec datarouter-node /bin/sh -c "echo '${DR_PROV_IP}' dmaap-dr-prov >> /etc/hosts"
+docker exec datarouter-node /bin/sh -c "echo '${DR_SUBSCIBER_IP}' dmaap-dr-subscriber >> /etc/hosts"
+
+# Get IP address of DMAAP, KAFKA, Zookeeper
+DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $DMAAP)
+KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $KAFKA)
+ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $ZOOKEEPER)
+VESC_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' vescollector)
+
 export VESC_IP=${VESC_IP}
 export HOST_IP=${HOST_IP}
 export DMAAP_MR_IP=${DMAAP_MR_IP}
+
+echo "${DMAAP_MR_IP} dmaap-mr" >> /etc/hosts
+
 #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}"
 
diff --git a/test/csit/plans/dcae-bulkpm/bulkpm-suite/teardown.sh b/test/csit/plans/dcae-bulkpm/bulkpm-suite/teardown.sh
index 1eb9a4a..e3035f0 100644
--- a/test/csit/plans/dcae-bulkpm/bulkpm-suite/teardown.sh
+++ b/test/csit/plans/dcae-bulkpm/bulkpm-suite/teardown.sh
@@ -1,8 +1,14 @@
 #!/bin/bash
 echo "Starting teardown script"
-kill-instance.sh vesc
-cd $WORKSPACE/archives/dmaapmr/messageservice/src/main/resources/docker-compose
-docker-compose down -v
-cd $WORKSPACE/archives/dmaapdr/datarouter/docker-compose/
-docker-compose down -v
+cd $WORKSPACE/test/csit/scripts
+./kill-instance.sh $DMAAP
+./kill-instance.sh $KAFKA
+./kill-instance.sh $ZOOKEEPER
+./kill-instance.sh vescollector
+./kill-instance.sh datarouter-node
+./kill-instance.sh datarouter-prov
+./kill-instance.sh subscriber-node
+./kill-instance.sh mariadb
+./kill-instance.sh dfc
+./kill-instance.sh sftp
 sudo sed -i '/dmaap/d' /etc/hosts
\ No newline at end of file
diff --git a/test/csit/scripts/dcae-bulkpm/xNFSimulator.sh b/test/csit/scripts/dcae-bulkpm/xNFSimulator.sh
deleted file mode 100644
index 1728ef7..0000000
--- a/test/csit/scripts/dcae-bulkpm/xNFSimulator.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-#This scritt will simulate xNF ftpes functionality.
-#This script will automatic install vsftpd and it will make necessary changes to vsftpd.conf
-sudo apt-get install vsftpd -y
-sudo useradd -m -u 12345 -g users -d /home/ftpuser -s /bin/bash -p "$(echo ftpuser | openssl passwd -1 -stdin)" ftpuser
-sudo chown root:root /home/ftpuser
-sudo mkdir -p /tmp/ftp/rop
-sudo chown nobody:nogroup /tmp/ftp/rop
-sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -subj "/C=IE/ST=ftp/L=Springfield/O=Dis/CN=www.onap.org"
-sudo sed -i -e '/anonymous_enable=/ s/=.*/=NO/' /etc/vsftpd.conf
-sudo sed -i -e '/local_enable=/ s/=.*/=NO/' /etc/vsftpd.conf
-sudo sed -i -e '/write_enable=/ s/=.*/=YES/' /etc/vsftpd.conf
-sudo sed -i -e '/#write_enable=/ s/#write_enable=.*/write_enable=YES/' /etc/vsftpd.conf
-sudo sed -i -e '/chroot_local_user=/ s/=.*/=YES/' /etc/vsftpd.conf
-sudo sed -i -e '0,/#chroot_local_user=/ s/#chroot_local_user=.*/chroot_local_user=YES/' /etc/vsftpd.conf
-sudo sed -i -e '/ssl_enable=/ s/=.*/=YES/' /etc/vsftpd.conf
-sudo sed -i -e "/ssl_enable=YES/a\\allow_anon_ssl=YES" /etc/vsftpd.conf
-sudo sed -i -e "/allow_anon_ssl=NO/a\\force_local_data_ssl=NO" /etc/vsftpd.conf
-sudo sed -i -e "/force_local_data_ssl=NO/a\\force_local_logins_ssl=NO" /etc/vsftpd.conf
-sudo sed -i -e "/force_local_logins_ssl=NO/a\\ssl_tlsv1=YES" /etc/vsftpd.conf
-sudo sed -i -e "/ssl_tlsv1=YES/a\\ssl_sslv2=NO" /etc/vsftpd.conf
-sudo sed -i -e "/ssl_sslv2=NO/a\\ssl_sslv3=NO" /etc/vsftpd.conf
-sudo sed -i -e "/ssl_sslv3=NO/a\\require_ssl_reuse=NO" /etc/vsftpd.conf
-sudo sed -i -e "/require_ssl_reuse=NO/a\\ssl_ciphers=HIGH" /etc/vsftpd.conf
-sudo sed -i -e "/ssl_ciphers=HIGH/a\\hide_ids=YES" /etc/vsftpd.conf
-sudo sed -i -e "/ssl_ciphers=HIGH/a\\anon_root=/var/ftp/" /etc/vsftpd.conf
-sudo sed -i -e "/ssl_ciphers=HIGH/a\\no_anon_password=YES" /etc/vsftpd.conf
-sudo service vsftpd restart
\ No newline at end of file