Added functional CSIT tests for DFC
New test case for single file download and publish
Minor refactoring of Management interface test
Issue-ID: DCAEGEN2-1313
Change-Id: I2436db42a5884a7d828dbefcf9678aa9cdf064e3
Signed-off-by: BjornMagnussonXA <bjorn.magnusson@est.tech>
diff --git a/plans/dcaegen2-collectors-datafile/Functional-suite/setup.sh b/plans/dcaegen2-collectors-datafile/Functional-suite/setup.sh
new file mode 100644
index 0000000..e494028
--- /dev/null
+++ b/plans/dcaegen2-collectors-datafile/Functional-suite/setup.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+#Stop all running containers
+docker kill "$(docker ps -q -a)"
+docker rm "$(docker ps -q -a)"
+
+# Clone Simulators for DFC from integration repo.
+mkdir -p $WORKSPACE/archives/dfc
+cd $WORKSPACE/archives/dfc
+git clone --depth 1 https://gerrit.onap.org/r/integration -b master #How to make this version controlled for Dublin, El Alto etc etc
+
+#Location of all individual simulators for DFC
+SIM_ROOT=$WORKSPACE/archives/dfc/integration/test/mocks/datafilecollector-testharness
+#Location of the above simulators when run as a group. For start+config and stop.
+SIMGROUP_ROOT=$SIM_ROOT/simulator-group
+
+#Default IP for all containers
+SIM_IP="127.0.0.1"
+#Location of script to start and stop dfc
+DFC_ROOT=$WORKSPACE/scripts/dcaegen2-collectors-datafile/dfc-management
+
+#Make the env vars availble to the robot scripts
+ROBOT_VARIABLES="-v SIMGROUP_ROOT:${SIMGROUP_ROOT} -v SIM_IP:${SIM_IP} -v DFC_ROOT:${DFC_ROOT}"
+
+#Build needed simulator images. DR and MR simulators
+
+cd $SIM_ROOT/mr-sim
+
+docker build -t mrsim:latest .
+
+cd $SIM_ROOT/dr-sim
+
+docker build -t drsim_common:latest .
+
+#Prepare the ftp simulator files.
+
+cd $SIMGROUP_ROOT
+
+#Copy ftp config for the ftp servers
+cp -r ../ftps-sftp-server/configuration .
+cp -r ../ftps-sftp-server/tls .
+
+#All containers will be started and stopped via the robot tests.
+
diff --git a/plans/dcaegen2-collectors-datafile/Functional-suite/teardown.sh b/plans/dcaegen2-collectors-datafile/Functional-suite/teardown.sh
new file mode 100644
index 0000000..1a0ec6e
--- /dev/null
+++ b/plans/dcaegen2-collectors-datafile/Functional-suite/teardown.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+
+#Stop dfc
+
+kill-instance.sh dfc_app
+
+#Stop all simulators
+
+kill-instance.sh dfc_dr-sim
+kill-instance.sh dfc_dr-redir-sim
+kill-instance.sh dfc_mr-sim
+kill-instance.sh dfc_sftp-server
+kill-instance.sh dfc_ftpes-server-vsftpd
\ No newline at end of file
diff --git a/plans/dcaegen2-collectors-datafile/Functional-suite/testplan.txt b/plans/dcaegen2-collectors-datafile/Functional-suite/testplan.txt
new file mode 100755
index 0000000..30d7a2d
--- /dev/null
+++ b/plans/dcaegen2-collectors-datafile/Functional-suite/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [integration/csit.git]/tests/.
+# Place the suites in run order.
+dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite
diff --git a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/setup.sh b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/setup.sh
index af24717..8f50d00 100644
--- a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/setup.sh
+++ b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/setup.sh
@@ -1,21 +1,8 @@
#!/usr/bin/env bash
-docker-compose up -d
-
-
-DFC=$(docker ps -a -q --filter="name=dfc")
-
-# Wait for initialization of Docker contaienr for DFC
-for i in {1..10}; do
-if [ $(docker inspect --format '{{ .State.Running }}' $DFC) ]
-then
- echo "DFC Container Running"
- break
-else
- echo sleep $i
- sleep $i
-fi
-done
+DFC_ROOT=$WORKSPACE/scripts/dcaegen2-collectors-datafile/dfc-management
+cd $DFC_ROOT
+source dfc-start.sh
#Wait for initialization of the DFC service
for i in {1..10}; do
diff --git a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/teardown.sh b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/teardown.sh
index bb0ac92..97ef403 100644
--- a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/teardown.sh
+++ b/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/teardown.sh
@@ -1,3 +1,3 @@
#!/usr/bin/env bash
-kill-instance.sh dfc
\ No newline at end of file
+kill-instance.sh dfc_app
\ No newline at end of file
diff --git a/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-kill.sh b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-kill.sh
new file mode 100755
index 0000000..39f2d0d
--- /dev/null
+++ b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-kill.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+
+docker kill dfc_app
\ No newline at end of file
diff --git a/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-restart.sh b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-restart.sh
new file mode 100755
index 0000000..ebc28f4
--- /dev/null
+++ b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-restart.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+#Restart DFC app
+
+docker restart dfc_app
+
+DFC_APP="$(docker ps -q --filter='name=dfc_app')"
+
+
+#Wait for initialization of docker containers for dfc app and all simulators
+for i in {1..10}; do
+if [ $(docker inspect --format '{{ .State.Running }}' $DFC_APP) ]
+ then
+ echo "DFC app Running"
+ break
+ else
+ echo sleep $i
+ sleep $i
+ fi
+done
\ No newline at end of file
diff --git a/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-start.sh b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-start.sh
new file mode 100755
index 0000000..4bec4ff
--- /dev/null
+++ b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-start.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+#Start DFC app
+
+docker-compose up -d
+
+DFC_APP="$(docker ps -q --filter='name=dfc_app')"
+
+#Wait for initialization of docker containers for dfc app and all simulators
+for i in {1..10}; do
+if [ $(docker inspect --format '{{ .State.Running }}' $DFC_APP) ]
+ then
+ echo "DFC app Running"
+ break
+ else
+ echo sleep $i
+ sleep $i
+ fi
+done
+
diff --git a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/docker-compose.yml b/scripts/dcaegen2-collectors-datafile/dfc-management/docker-compose.yml
similarity index 77%
rename from plans/dcaegen2-collectors-datafile/ManagementInterface-suite/docker-compose.yml
rename to scripts/dcaegen2-collectors-datafile/dfc-management/docker-compose.yml
index b95842b..28dfbbf 100644
--- a/plans/dcaegen2-collectors-datafile/ManagementInterface-suite/docker-compose.yml
+++ b/scripts/dcaegen2-collectors-datafile/dfc-management/docker-compose.yml
@@ -1,8 +1,9 @@
version: '2'
services:
dfc:
+ network_mode: "host"
image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:latest
- container_name: dfc
+ container_name: dfc_app
ports:
- "8100:8100"
- "8433:8433"
diff --git a/tests/dcaegen2-collectors-datafile/resources/common-keywords.robot b/tests/dcaegen2-collectors-datafile/resources/common-keywords.robot
new file mode 100644
index 0000000..a113537
--- /dev/null
+++ b/tests/dcaegen2-collectors-datafile/resources/common-keywords.robot
@@ -0,0 +1,18 @@
+*** Settings ***
+Library OperatingSystem
+Library RequestsLibrary
+Library Process
+
+*** Variables ***
+
+${CLI_MRSIM_CTR_REQUESTS} curl http://${SIM_IP}:2222/ctr_requests
+${CLI_MRSIM_CTR_RESPONSES} curl http://${SIM_IP}:2222/ctr_responses
+${CLI_MRSIM_CTR_FILES} curl http://${SIM_IP}:2222/ctr_unique_files
+
+*** Keywords ***
+
+MR Sim Emitted Files Equal
+ [Documentation] Verify that the number of emitted unique files are equal to a target value
+ [Arguments] ${target_ctr_value}
+ ${resp}= Run Process ${CLI_MRSIM_CTR_FILES} shell=yes
+ Should Be Equal As Strings ${resp.stdout} ${target_ctr_value}
\ No newline at end of file
diff --git a/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/FuncSingleFile.robot b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/FuncSingleFile.robot
new file mode 100755
index 0000000..a59fec6
--- /dev/null
+++ b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/FuncSingleFile.robot
@@ -0,0 +1,89 @@
+*** Settings ***
+Library OperatingSystem
+Library RequestsLibrary
+Library Process
+
+Resource ../../resources/common-keywords.robot
+
+*** Variables ***
+
+
+*** Test Cases ***
+
+######### Single file, SFTP
+
+Verify single event with single 1MB SFTP file. From event poll to published file
+ [TAGS] DFC_FUNCTIONAL_1
+ [Documentation] Verify single event with single SFTP 1MB file from event poll to published file.
+ Set Environment Variable MR_TC --tc100
+ ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT}
+ MR Sim Emitted Files Equal 0 #Verify 0 file emitted from MR sim
+ ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT}
+ Wait Until Keyword Succeeds 1 minute 10 sec MR Sim Emitted Files Equal 1 #Verify 1 file emitted from MR sim
+ ${cli_cmd_output}= Run Process ${SIMGROUP_ROOT}/simulators-kill.sh
+ ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-kill.sh
+
+Verify single event with single 5MB SFTP file. From event poll to published file
+ [TAGS] DFC_FUNCTIONAL_2
+ [Documentation] Verify single event with single SFTP 5MB file from event poll to published file.
+ Set Environment Variable MR_TC --tc101
+ ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT}
+ MR Sim Emitted Files Equal 0 #Verify 0 file emitted from MR sim
+ ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT}
+ Wait Until Keyword Succeeds 1 minute 10 sec MR Sim Emitted Files Equal 1 #Verify 1 file emitted from MR sim
+ ${cli_cmd_output}= Run Process ${SIMGROUP_ROOT}/simulators-kill.sh
+ ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-kill.sh
+
+Verify single event with single 50MB SFTP file. From event poll to published file
+ [TAGS] DFC_FUNCTIONAL_3
+ [Documentation] Verify single event with single SFTP 50MB file from event poll to published file.
+ Set Environment Variable MR_TC --tc102
+ ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT}
+ MR Sim Emitted Files Equal 0 #Verify 0 file emitted from MR sim
+ ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT}
+ Wait Until Keyword Succeeds 1 minute 10 sec MR Sim Emitted Files Equal 1 #Verify 1 file emitted from MR sim
+ ${cli_cmd_output}= Run Process ${SIMGROUP_ROOT}/simulators-kill.sh
+ ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-kill.sh
+
+
+######### Single file, FTPS
+
+Verify single event with single 1MB FTPS file. From event poll to published file
+ [TAGS] DFC_FUNCTIONAL_10
+ [Documentation] Verify single event with single FTPS 1MB file from event poll to published file.
+ Set Environment Variable MR_TC --tc200
+ ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT}
+ MR Sim Emitted Files Equal 0 #Verify 0 file emitted from MR sim
+ ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT}
+ Wait Until Keyword Succeeds 1 minute 10 sec MR Sim Emitted Files Equal 1 #Verify 1 file emitted from MR sim
+ ${cli_cmd_output}= Run Process ${SIMGROUP_ROOT}/simulators-kill.sh
+ ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-kill.sh
+
+Verify single event with single 5MB FTPS file. From event poll to published file
+ [TAGS] DFC_FUNCTIONAL_11
+ [Documentation] Verify single event with single FTPS 5MB file from event poll to published file.
+ Set Environment Variable MR_TC --tc201
+ ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT}
+ MR Sim Emitted Files Equal 0 #Verify 0 file emitted from MR sim
+ ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT}
+ Wait Until Keyword Succeeds 1 minute 10 sec MR Sim Emitted Files Equal 1 #Verify 1 file emitted from MR sim
+ ${cli_cmd_output}= Run Process ${SIMGROUP_ROOT}/simulators-kill.sh
+ ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-kill.sh
+
+Verify single event with single 50MB FTPS file. From event poll to published file
+ [TAGS] DFC_FUNCTIONAL_12
+ [Documentation] Verify single event with single FTPS 50MB file from event poll to published file.
+ Set Environment Variable MR_TC --tc202
+ ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT}
+ MR Sim Emitted Files Equal 0 #Verify 0 file emitted from MR sim
+ ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT}
+ Wait Until Keyword Succeeds 1 minute 10 sec MR Sim Emitted Files Equal 1 #Verify 1 file emitted from MR sim
+ ${cli_cmd_output}= Run Process ${SIMGROUP_ROOT}/simulators-kill.sh
+ ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-kill.sh
+
+
+*** Keywords ***
+
+
+
+
diff --git a/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/__init__.robot b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/__init__.robot
new file mode 100755
index 0000000..dc2d837
--- /dev/null
+++ b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-suite/__init__.robot
@@ -0,0 +1,2 @@
+*** Settings ***
+Documentation DFC Functional test suite. Single event with single file.
diff --git a/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/MI.robot b/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/MI.robot
index 7020042..875228b 100755
--- a/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/MI.robot
+++ b/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/MI.robot
@@ -1,12 +1,14 @@
*** Settings ***
Library OperatingSystem
Library RequestsLibrary
+Library Process
*** Variables ***
*** Test Cases ***
+
Heartbeat test
[Documentation] Check DFC heartbeat
Heartbeat I'm living
diff --git a/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/__init__.robot b/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/__init__.robot
index c5ea9c6..6dc1eed 100755
--- a/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/__init__.robot
+++ b/tests/dcaegen2-collectors-datafile/testsuites/ManagementInterface-suite/__init__.robot
@@ -1,2 +1,2 @@
*** Settings ***
-Documentation Management Interface suite
+Documentation DFC Management Interface suite