Add ROP file creator script in each PNF-sim

* The script runs in a background process
* The background process is killed when mass-pnf-sim is stopped
* Filename format is updated to include timezone, HOSTNAME, and PNF-node-name

Change-Id: If0a5a8c7bdd7ffb4958569e3037f1a7207770ef1
Issue-ID: DCAEGEN2-1225
Signed-off-by: RehanRaza <muhammad.rehan.raza@est.tech>
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/ROP_file_creator.sh b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/ROP_file_creator.sh
new file mode 100755
index 0000000..39d8498
--- /dev/null
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/ROP_file_creator.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+MAIN_DIRECTORY=${PWD##*/}
+FILE_DIRECTORY=./files/onap
+FILE_TEMPLATE=./templates/file_template.xml.gz
+UPDATE_MINS=15
+NUM_FILES=96
+
+rm -rf $FILE_DIRECTORY
+mkdir -p "$FILE_DIRECTORY"
+
+for ((n=0;n<$NUM_FILES;n++))
+do
+	if [[ "$OSTYPE" == "linux-gnu" ]]; then		# Linux OS
+		DATE=$(date -d $(($UPDATE_MINS*$n))" minutes ago" +"%Y%m%d")
+		TIME_START=$(date -d $(($UPDATE_MINS*($n+1)-1))" minutes ago" +"%H%M%z")
+		TIME_END=$(date -d $(($UPDATE_MINS*$n))" minutes ago" +"%H%M%z")  
+	elif [[ "$OSTYPE" == "darwin"* ]]; then		# Mac OS
+		DATE=$(date -v "-"$(($UPDATE_MINS*$n))"M" +"%Y%m%d")
+		TIME_START=$(date -v "-"$(($UPDATE_MINS*($n+1)-1))"M" +"%H%M%z")
+		TIME_END=$(date -v "-"$(($UPDATE_MINS*$n))"M" +"%H%M%z")
+	else
+		echo "ERROR: OS not supported"
+		exit 1
+	fi
+
+	FILE_NAME_TIMESTAMP="A"$DATE"."$TIME_START"-"$TIME_END
+	FILE_NAME=$FILE_NAME_TIMESTAMP"_"$HOSTNAME"-"$MAIN_DIRECTORY".xml.gz"
+	cp $FILE_TEMPLATE $FILE_DIRECTORY/$FILE_NAME
+
+	TIMESTAMP_ARRAY[$n]=$FILE_NAME_TIMESTAMP
+done
+
+while true
+do
+	sleep $(($UPDATE_MINS*60))
+	OLD_TIMESTAMP=${TIMESTAMP_ARRAY[$NUM_FILES-1]}
+	unset TIMESTAMP_ARRAY[$NUM_FILES-1]
+
+	DATE=$(date +"%Y%m%d")
+	TIME_END=$(date +"%H%M%z")
+	if [[ "$OSTYPE" == "linux-gnu" ]]; then		# Linux OS
+		TIME_START=$(date -d $(($UPDATE_MINS-1))" minutes ago" +"%H%M%z")
+	elif [[ "$OSTYPE" == "darwin"* ]]; then		# Mac OS
+		TIME_START=$(date -v "-"$(($UPDATE_MINS-1))"M" +"%H%M%z")
+	else
+		echo "ERROR: OS not supported"
+		exit 1
+	fi
+
+	NEW_TIMESTAMP="A"$DATE"."$TIME_START"-"$TIME_END
+	OLD_FILE_NAME=$OLD_TIMESTAMP"_"$HOSTNAME"-"$MAIN_DIRECTORY".xml.gz"
+	NEW_FILE_NAME=$NEW_TIMESTAMP"_"$HOSTNAME"-"$MAIN_DIRECTORY".xml.gz"
+	mv $FILE_DIRECTORY/$OLD_FILE_NAME $FILE_DIRECTORY/$NEW_FILE_NAME
+	#echo "Renamed OLD file: "$OLD_FILE_NAME" to NEW file: "$NEW_FILE_NAME      # uncomment for debugging
+
+	TIMESTAMP_ARRAY=("$NEW_TIMESTAMP" "${TIMESTAMP_ARRAY[@]}")
+done
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/docker-compose-template.yml b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/docker-compose-template.yml
index 6500fbb..f532268 100644
--- a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/docker-compose-template.yml
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/docker-compose-template.yml
@@ -51,10 +51,7 @@
       - ./tls/ftp.key:/etc/ssl/private/ftp.key:ro
       - ./tls/dfc.crt:/etc/ssl/private/dfc.crt:ro
       - ./config/vsftpd_ssl.conf:/etc/vsftpd_ssl.conf:ro
-      - ./files/onap/0.5MB.tar.gz:/srv/0.5MB.tar.gz:ro
-      - ./files/onap/1MB.tar.gz:/srv/1MB.tar.gz:ro
-      - ./files/onap/5MB.tar.gz:/srv/5MB.tar.gz:ro
-      - ./files/onap/10MB.tar.gz:/srv/10MB.tar.gz:ro
+      - ./files/onap/:/srv/
     restart: on-failure
     command: vsftpd /etc/vsftpd_ssl.conf
 
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/files/prepare-ROP-files.sh b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/files/prepare-ROP-files.sh
deleted file mode 100755
index 4c7c506..0000000
--- a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/files/prepare-ROP-files.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-echo "Creating ROP files"
-set -x
-mkdir -p onap
-
-dd if=/dev/urandom of=./onap/0.5MB.tar.gz bs=1k count=512
-dd if=/dev/urandom of=./onap/1MB.tar.gz bs=1M count=1
-dd if=/dev/urandom of=./onap/5MB.tar.gz bs=1M count=5
-dd if=/dev/urandom of=./onap/10MB.tar.gz bs=1M count=10
\ No newline at end of file
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/simulator.sh b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/simulator.sh
index 4fb725f..bed64b0 100755
--- a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/simulator.sh
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/simulator.sh
@@ -27,7 +27,7 @@
         "start")
             start $COMPOSE_FILE_NAME;;
         "stop")
-            stop;;
+            stop $2;;
         "run-simulator")
             run_simulator;;
         "trigger-simulator")
@@ -74,9 +74,7 @@
 	docker-compose -f docker-compose-temporary.yml config > docker-compose.yml
 	rm docker-compose-temporary.yml
 
-	cd files
-	./prepare-ROP-files.sh
-	cd -
+	./ROP_file_creator.sh $I &
 
 	set_vsftpd_file_owner
 
@@ -126,6 +124,8 @@
 
 function stop(){
 	get_pnfsim_ip
+    kill $(ps -a | grep "[.]/ROP_file_creator.sh $1" | awk '{print $1}')
+
     if [[ $(running_containers) ]]; then
         docker-compose -f $RUNNING_COMPOSE_CONFIG down
         docker-compose -f $RUNNING_COMPOSE_CONFIG rm
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/templates/file_template.xml.gz b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/templates/file_template.xml.gz
new file mode 100644
index 0000000..0e6624a
--- /dev/null
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/templates/file_template.xml.gz
Binary files differ