Mass-pnf-simulator publishing ports

Change-Id: If43f505967bd542c88956e11aef4cd4e52626255
Issue-ID: DCAEGEN2-1225
Signed-off-by: TamasBakai <tamas.bakai@est.tech>
diff --git a/test/mocks/mass-pnf-sim/README.md b/test/mocks/mass-pnf-sim/README.md
index 1ed90b5..ffa82c1 100644
--- a/test/mocks/mass-pnf-sim/README.md
+++ b/test/mocks/mass-pnf-sim/README.md
@@ -15,19 +15,21 @@
 For debug purposes, you can use your own IP address as VES collector, use "ip" command to determine it.
 
 Example:
-python3 ./mass-pnf-sim.py  --bootstrap 2 --ipves http://10.148.95.??:10000 --ipstart 10.11.0.16
+./mass-pnf-sim.py  --bootstrap 2 --ipves http://10.148.95.??:10000 --ipfileserver 10.148.95.??? --ipstart 10.11.0.16
 
 ###Replacing VES for test purposes
-`nc -l 10000`
+`sudo nc -vv -l -k -p 10000`
 
 ###Start
 Define the amount of simulators to be launched
-python3 ./mass-pnf-sim.py  --start 2
+./mass-pnf-sim.py  --start 2
 
+###Trigger 
+./mass-pnf-sim.py  --trigger 2
 
 ###Stop and clean
-python3 ./mass-pnf-sim.py  --stop 2
-python3 ./mass-pnf-sim.py  --clean
+./mass-pnf-sim.py  --stop 2
+./mass-pnf-sim.py  --clean
 
 ###Cleaning and recovery after incorrect configuration
 docker stop $(docker ps -aq); docker rm $(docker ps -aq)
diff --git a/test/mocks/mass-pnf-sim/mass-pnf-sim.py b/test/mocks/mass-pnf-sim/mass-pnf-sim.py
index ba05986..898cd65 100755
--- a/test/mocks/mass-pnf-sim/mass-pnf-sim.py
+++ b/test/mocks/mass-pnf-sim/mass-pnf-sim.py
@@ -14,11 +14,21 @@
 )
 
 parser.add_argument(
+    '--trigger',
+    help='Trigger one single VES event from each simulator',
+)
+
+parser.add_argument(
     '--ipves',
     help='IP of the VES collector',
 )
 
 parser.add_argument(
+    '--ipfileserver',
+    help='Visible IP of the file server (SFTP/FTPS) to be included in the VES event',
+)
+
+parser.add_argument(
     '--ipstart',
     help='IP address range beginning',
 )
@@ -49,6 +59,8 @@
 if args.bootstrap and args.ipstart and args.ipves:
     print("Bootstrap:")
 
+    start_port=2000
+
     for i in range(int(args.bootstrap)):
         print("PNF simulator instance: " + str(i) + ".")
 
@@ -63,9 +75,15 @@
         IpPnfSim = ipaddress.ip_address(args.ipstart) + int(2 + (i * 16))
         print("\tIp Pnf SIM:" + str(IpPnfSim))
 
+        IpFileServer = args.ipfileserver
+
+        
+        PortSftp=start_port +1
+        PortFtps=start_port +2 
+        start_port +=2
         IpFtps = ipaddress.ip_address(args.ipstart) + int(3 + (i * 16))
         print("\tIp Ftps: " + str(IpFtps))
-
+ 
         IpSftp = ipaddress.ip_address(args.ipstart) + int(4 + (i * 16))
         print("\tIp Sftp:" + str(IpSftp))
 
@@ -84,6 +102,9 @@
             str(i) + " " +\
             str(args.ipves) + " " +\
             str(IpPnfSim) + " " +\
+            str(IpFileServer) + " " +\
+            str(PortSftp) + " " +\
+            str(PortFtps) + " " +\
             str(IpFtps) + " " +\
             str(IpSftp)
 
@@ -139,6 +160,20 @@
             shell=True)
         print('Stopping:', completed.stdout)
 
+
+if args.trigger:
+    print("Triggering VES sending:")
+
+    for i in range(int(args.trigger)):
+        foldername = "pnf-sim-lw-" + str(i)
+
+        completed = subprocess.run(
+            'cd ' +
+            foldername +
+            "; ./simulator.sh trigger-simulator",
+            shell=True)
+        print('Status:', completed.stdout)
+
 else:
     print("No instruction was defined")
     sys.exit()
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/README.md b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/README.md
index 2b20d26..2940b65 100644
--- a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/README.md
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/README.md
@@ -1,6 +1,6 @@
 ##Local development shortcuts:
 ####To start listening on port 10000 for test purposes
-`nc -l 10000`
+`nc -l -k -p 10000`
 ####Test the command above: 
 `echo "Hello World" | nc localhost  10000`
 
@@ -27,10 +27,12 @@
 ```
 
 ```javascript
-{"commonEventHeader":{"startEpochMicrosec":"1551865758690","sourceId":"val13","eventId":"registration_51865758",
+{"event":{"commonEventHeader":{"startEpochMicrosec":"1551865758690","sourceId":"val13","eventId":"registration_51865758",
 "nfcNamingCode":"oam","internalHeaderFields":{},"priority":"Normal","version":"4.0.1","reportingEntityName":"NOK6061ZW3",
-"sequence":"0","domain":"notification","lastEpochMicrosec":"1551865758690","eventName":"pnfRegistration_Nokia_5gDu","vesEventListenerVersion":"7.0.1",
-"sourceName":"NOK6061ZW3","nfNamingCode":"gNB"},"notificationFields":{"notificationFieldsVersion":"2.0","changeType":"FileReady",
-"changeIdentifier":"PM_MEAS_FILES","arrayOfNamedHashMap":{"name":"10MB.tar.gz",
-"hashMap":{"location":"10.11.0.68/10MB.tar.gz","fileFormatType":"org.3GPP.32.435#measCollec","fileFormatVersion":"V10","compression":"gzip"}}}}
+"sequence":"0","domain":"notification","lastEpochMicrosec":"1551865758690","eventName":"pnfRegistration_Nokia_5gDu",
+"vesEventListenerVersion":"7.0.1","sourceName":"NOK6061ZW3","nfNamingCode":"gNB"},
+"notificationFields":{"notificationFieldsVersion":"2.0","changeType":"FileReady","changeIdentifier":"PM_MEAS_FILES",
+"arrayOfNamedHashMap":[{"name":"10MB.tar.gz","hashMap":{
+"location":"ftpes://10.11.0.68/10MB.tar.gz","fileFormatType":"org.3GPP.32.435#measCollec",
+"fileFormatVersion":"V10","compression":"gzip"}}]}}}
 ```
\ No newline at end of file
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 f532268..aa0261c 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
@@ -29,6 +29,8 @@
     networks:
       front-${I}:
         ipv4_address: "${IPSFTP}"
+    ports:
+      - "${PORTSFTP}:22"
     volumes:
       - ./files/onap/:/home/onap/
     restart: on-failure
@@ -40,6 +42,8 @@
     networks:
       front-${I}:
         ipv4_address: "${IPFTPS}"
+    ports:
+         - "${PORTFTPS}:21"
     environment:
       FTP_USER: onap
       FTP_PASSWORD: pano
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 bed64b0..86f15a8 100755
--- a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/simulator.sh
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/simulator.sh
@@ -20,8 +20,8 @@
 
     case $COMMAND in
     	"compose")
-            compose $2 $3 $4 $5 $6 $7 $8;;
-             #IPGW, #IPSUBNET, #I, #IPVES, #IPPNFSIM, #IPFTP, #IPSFTP,
+            compose $2 $3 $4 $5 $6 $7 $8 $9 "${10}" "${11}" ;;
+             #IPGW, #IPSUBNET, #I, #IPVES, #IPPNFSIM, #IPFILESERVER, #PORTSFTP, #PORTFTPS, #IPFTPS, #IPSFTP
         "build")
             build_image;;
         "start")
@@ -64,8 +64,11 @@
 	export I=$3
 	export IPVES=$4
 	export IPPNFSIM=$5
-	export IPFTPS=$6
-	export IPSFTP=$7
+	export IPFILESERVER=$6
+	export PORTSFTP=$7
+	export PORTFTPS=$8
+	export IPFTPS=$9
+	export IPSFTP=${10}
 
 	#will insert $I to distinguish containers, networks properly
 	#docker compose cannot substitute these, as they are keys, not values.
@@ -78,7 +81,7 @@
 
 	set_vsftpd_file_owner
 
-	write_config $IPVES $IPFTPS $IPSFTP $IPPNFSIM
+	write_config $IPVES $IPFILESERVER $PORTSFTP $PORTFTPS $IPPNFSIM
 
 }
 
@@ -99,9 +102,9 @@
 function write_config(){
 	#building a YML file for usage in Java
 	echo "vesip: $1" > config/config.yml
-	echo "ipftps: $2" >> config/config.yml
-	echo "ipsftp: $3" >> config/config.yml
-	echo "ippnfsim: $4" >> config/config.yml
+	echo "ipsftp: $2:$3" >> config/config.yml
+	echo "ipftps: $2:$4" >> config/config.yml
+	echo "ippnfsim: $5" >> config/config.yml
 }
 
 function start(){
diff --git a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/message/MessageProvider.java b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/message/MessageProvider.java
index d59e829..839d402 100644
--- a/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/message/MessageProvider.java
+++ b/test/mocks/mass-pnf-sim/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/message/MessageProvider.java
@@ -114,24 +114,6 @@
         JSONArray jsonArrayOfNamedHashMap = new JSONArray();
         jsonArrayOfNamedHashMap.put(jsonHashMap);
 
-
-
-        // // notification.put("name", "NAME_DUMMY");
-        // JSONObject notification = new JSONObject();
-        //
-        // notificationParams.ifPresent(jsonObject -> {
-        // copyParametersToFields(notification, notificationFields);
-        // commonEventHeader.put(DOMAIN, DOMAIN_NOTIFICATION);
-        // event.put(NOTIFICATION_FIELDS, notificationFields);
-        // });
-
-
-        // notificationParams.ifPresent(jsonObject -> {
-        // copyParametersToFields(jsonObject.toMap(), notificationFields);
-        // commonEventHeader.put(DOMAIN, DOMAIN_NOTIFICATION);
-        // event.put(NOTIFICATION_FIELDS, notificationFields);
-        // });
-
         event.put(COMMON_EVENT_HEADER, commonEventHeader);
         JSONObject root = new JSONObject();
         root.put(EVENT, event);
@@ -141,7 +123,6 @@
 
     public JSONObject createOneVesEvent(String xnfUrl, String fileName) {
 
-        String notificationFields;
         JSONObject nof = new JSONObject();
 
         nof.put("notificationFieldsVersion", "2.0");
@@ -150,20 +131,20 @@
         nof.put("changeIdentifier", "PM_MEAS_FILES");
 
         JSONObject hm = new JSONObject();
-        hm.put("location", xnfUrl.concat(fileName));
+        hm.put("location", "ftpes://".concat(xnfUrl).concat(fileName));
         hm.put("fileFormatType", "org.3GPP.32.435#measCollec");
         hm.put("fileFormatVersion", "V10");
         hm.put("compression", "gzip");
 
-        JSONObject aonh = new JSONObject();
-        aonh.put("name", fileName);
+        JSONObject aonhElement = new JSONObject();
+        aonhElement.put("name", fileName);
+        aonhElement.put("hashMap", hm);
 
-        aonh.put("hashMap", hm);
+        JSONArray aonh = new JSONArray();
+        aonh.put(aonhElement);
 
         nof.put("arrayOfNamedHashMap", aonh);
 
-        String nofString = nof.toString();
-
         JSONObject ceh = new JSONObject(); // commonEventHandler
         ceh.put("startEpochMicrosec", "1551865758690");
         ceh.put("sourceId", "val13");
@@ -183,18 +164,23 @@
         JSONObject ihf = new JSONObject(); // internalHeaderFields
         ceh.put("internalHeaderFields", ihf);
 
-        JSONObject event = new JSONObject();
-        event.put("commonEventHeader", ceh);
-        event.put("notificationFields", nof);
+        JSONObject eventContent = new JSONObject();
+        eventContent.put("commonEventHeader", ceh);
+        eventContent.put("notificationFields", nof);
 
-        System.out.println("event: ");
+
+        JSONObject event = new JSONObject();
+        event.put("event", eventContent);
+
+        System.out.println("VES messages to be sent: ");
         System.out.println(event.toString());
 
         return event;
 
      // @formatter:off
         /*
-        {
+    {
+        "event": {
             "commonEventHeader": {                          <== "ceh"
                 "startEpochMicrosec": "1551865758690",
                 "sourceId": "val13",
@@ -217,21 +203,21 @@
                 "notificationFieldsVersion": "2.0",
                 "changeType": "FileReady",
                 "changeIdentifier": "PM_MEAS_FILES",
-                "arrayOfNamedHashMap": {                    <== "aonh"
-                    "name": "A20161224.1030-1045.bin.gz",
-                    "hashMap": {                            <== "hm"
-                        "location": "ftpes://192.169.0.1:22/ftp/rop/A20161224.1030-1045.bin.gz",
-                        "fileFormatType": "org.3GPP.32.435#measCollec",
-                        "fileFormatVersion": "V10",
-                        "compression": "gzip"
+                "arrayOfNamedHashMap": [                    <== "aonh"
+                    {                                       <== "aonhElement"
+                        "name": "A20161224.1030-1045.bin.gz",
+                        "hashMap": {                            <== "hm"
+                            "location": "ftpes://192.169.0.1:22/ftp/rop/A20161224.1030-1045.bin.gz",
+                            "fileFormatType": "org.3GPP.32.435#measCollec",
+                            "fileFormatVersion": "V10",
+                            "compression": "gzip"
+                         }
                     }
-                }
+                ]
             }
         }
-
-        */
-     // @formatter:on
-
     }
-
+    */
+     // @formatter:on
+    }
 }
diff --git a/test/mocks/pnf-onboarding/unsecureAcmePnf.csar b/test/mocks/pnf-onboarding/unsecureAcmePnf.csar
index 92ff8fc..37e4733 100644
--- a/test/mocks/pnf-onboarding/unsecureAcmePnf.csar
+++ b/test/mocks/pnf-onboarding/unsecureAcmePnf.csar
Binary files differ