From 7646f2ba514a578dbb8e1001c99afae35919f9e7 Mon Sep 17 00:00:00 2001 From: Krzysztof Gajewski Date: Mon, 1 Feb 2021 18:14:13 +0100 Subject: [PATCH] Add HTTPS to collect files from xNFs - CSIT tests Issue-ID: DCAEGEN2-2528 Signed-off-by: Krzysztof Gajewski Change-Id: I248a3866e22ee556c447ed7c7834e83e4ad42b48 --- .../Functional-suite/setup.sh | 2 +- .../Functional-suite/testplan.txt | 1 + .../dfc-management/dfc-start.sh | 10 +++ .../FuncSingleFileFtp.robot | 4 +- .../FuncSingleFileHttp.robot | 25 +++++- .../HttpsVariousConnectionTypes.robot | 95 ++++++++++++++++++++++ .../__init__.robot | 2 + .../StrictHostChecking.robot | 6 +- 8 files changed, 139 insertions(+), 6 deletions(-) create mode 100755 tests/dcaegen2-collectors-datafile/testsuites/HTTPS-Various-Connection-Types-suite/HttpsVariousConnectionTypes.robot create mode 100755 tests/dcaegen2-collectors-datafile/testsuites/HTTPS-Various-Connection-Types-suite/__init__.robot diff --git a/plans/dcaegen2-collectors-datafile/Functional-suite/setup.sh b/plans/dcaegen2-collectors-datafile/Functional-suite/setup.sh index 02572d2a..f04b2303 100644 --- a/plans/dcaegen2-collectors-datafile/Functional-suite/setup.sh +++ b/plans/dcaegen2-collectors-datafile/Functional-suite/setup.sh @@ -59,7 +59,7 @@ cd ../ftpes-sftp-server docker build -t ftpes_vsftpd:latest -f Dockerfile-ftpes . cd ../http-https-server -docker build -t http_httpd:latest -f Dockerfile-http . +docker build -t http_https_httpd:latest -f Dockerfile-http-https . #All containers will be started and stopped via the robot tests. diff --git a/plans/dcaegen2-collectors-datafile/Functional-suite/testplan.txt b/plans/dcaegen2-collectors-datafile/Functional-suite/testplan.txt index 065deb10..cb9aecf3 100755 --- a/plans/dcaegen2-collectors-datafile/Functional-suite/testplan.txt +++ b/plans/dcaegen2-collectors-datafile/Functional-suite/testplan.txt @@ -3,3 +3,4 @@ dcaegen2-collectors-datafile/testsuites/Functional-Single-File-Ftp-suite dcaegen2-collectors-datafile/testsuites/Functional-Single-File-Http-suite dcaegen2-collectors-datafile/testsuites/Strict-Host-Checking-suite +dcaegen2-collectors-datafile/testsuites/HTTPS-Various-Connection-Types-suite diff --git a/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-start.sh b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-start.sh index 38b78f2d..b7a595c1 100755 --- a/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-start.sh +++ b/scripts/dcaegen2-collectors-datafile/dfc-management/dfc-start.sh @@ -26,6 +26,16 @@ DOCKER_SIM_NWNAME="dfcnet" echo "Creating docker network $DOCKER_SIM_NWNAME, if needed" docker network ls | grep $DOCKER_SIM_NWNAME >/dev/null || docker network create $DOCKER_SIM_NWNAME +if [ $HTTP_TYPE = "HTTPS" ] + then + docker run \ + --name oom-certservice-post-processor \ + --env-file $SIMGROUP_ROOT/../certservice/merger/merge-certs.env \ + --mount type=bind,src=$SIMGROUP_ROOT/tls,dst=/opt/app/datafile/etc/cert \ + --mount type=bind,src=$SIMGROUP_ROOT/../certservice/generated-certs/dfc-p12,dst=/opt/app/datafile/etc/ \ + nexus3.onap.org:10001/onap/org.onap.oom.platform.cert-service.oom-certservice-post-processor:latest +fi + docker-compose up -d DFC_APP="$(docker ps -q --filter='name=dfc_app0')" diff --git a/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-Ftp-suite/FuncSingleFileFtp.robot b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-Ftp-suite/FuncSingleFileFtp.robot index 7d8afbbd..cecb8d11 100755 --- a/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-Ftp-suite/FuncSingleFileFtp.robot +++ b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-Ftp-suite/FuncSingleFileFtp.robot @@ -106,4 +106,6 @@ Set Default Environment Variables Set Environment Variable DR_REDIR_SIM drsim_redir Set Environment Variable SFTP_SIMS sftp-server0:22 Set Environment Variable FTPES_SIMS ftpes-server-vsftpd0:21 - Set Environment Variable HTTP_SIMS http-server0:80 + Set Environment Variable HTTP_SIMS http-https-server0:80 + Set Environment Variable HTTPS_SIMS http-https-server0:443 + Set Environment Variable HTTPS_SIMS_NO_AUTH http-https-server0:8080 diff --git a/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-Http-suite/FuncSingleFileHttp.robot b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-Http-suite/FuncSingleFileHttp.robot index e37a9106..f279391c 100755 --- a/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-Http-suite/FuncSingleFileHttp.robot +++ b/tests/dcaegen2-collectors-datafile/testsuites/Functional-Single-File-Http-suite/FuncSingleFileHttp.robot @@ -6,7 +6,7 @@ Library Process Resource ../../resources/common-keywords.robot *** Variables *** -${CONSUL_UPL_APP} /usr/bin/curl -v http://127.0.0.1:8500/v1/kv/dfc_app0?dc=dc1 -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' -H 'X-Requested-With: XMLHttpRequest' --data-binary @${SIMGROUP_ROOT}/consul/c12_feed2_PM_MEAS.json +${CONSUL_UPL_APP} /usr/bin/curl -v http://127.0.0.1:8500/v1/kv/dfc_app0?dc=dc1 -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' -H 'X-Requested-With: XMLHttpRequest' --data-binary @${SIMGROUP_ROOT}/consul/c12_feed2_PM_HTTPS.json ${CONSUL_GET_APP} /usr/bin/curl -v http://127.0.0.1:8500/v1/kv/dfc_app0?raw ${CBS_GET_MERGED_CONFIG} /usr/bin/curl -v http://127.0.0.1:10000/service_component_all/dfc_app0 @@ -32,6 +32,25 @@ Verify single event with single 50MB HTTP file. From event poll to published fil [Documentation] Verify single event with single HTTP 50MB file from event poll to published file. Verify Single Event From Event Poll To Published File 50 --tc302 HTTP +######## Single file, HTTP +Verify single event with single 1MB HTTPS (basic authentication) file. From event poll to published file + [TAGS] DFC_FUNCTIONAL_30 + [Documentation] Verify single event with single HTTPS (basic authentication) 1MB file from event poll to published file. + ${cli_cmd_output}= Run Process ${DFC_ROOT}/../dfc-containers-clean.sh stderr=STDOUT + Verify Single Event From Event Poll To Published File 1 --tc400 HTTPS + + +Verify single event with single 5MB HTTPS (basic authentication) file. From event poll to published file + [TAGS] DFC_FUNCTIONAL_31 + [Documentation] Verify single event with single HTTPS (basic authentication) 5MB file from event poll to published file. + Verify Single Event From Event Poll To Published File 5 --tc401 HTTPS + + +Verify single event with single 50MB HTTPS (basic authentication) file. From event poll to published file + [TAGS] DFC_FUNCTIONAL_32 + [Documentation] Verify single event with single HTTPS (basic authentication) 50MB file from event poll to published file. + Verify Single Event From Event Poll To Published File 50 --tc402 HTTPS + *** Keywords *** Verify Single Event From Event Poll To Published File @@ -90,4 +109,6 @@ Set Default Environment Variables Set Environment Variable DR_REDIR_SIM drsim_redir Set Environment Variable SFTP_SIMS sftp-server0:22 Set Environment Variable FTPES_SIMS ftpes-server-vsftpd0:21 - Set Environment Variable HTTP_SIMS http-server0:80 + Set Environment Variable HTTP_SIMS http-https-server0:80 + Set Environment Variable HTTPS_SIMS http-https-server0:443 + Set Environment Variable HTTPS_SIMS_NO_AUTH http-https-server0:8080 diff --git a/tests/dcaegen2-collectors-datafile/testsuites/HTTPS-Various-Connection-Types-suite/HttpsVariousConnectionTypes.robot b/tests/dcaegen2-collectors-datafile/testsuites/HTTPS-Various-Connection-Types-suite/HttpsVariousConnectionTypes.robot new file mode 100755 index 00000000..c8d09c2b --- /dev/null +++ b/tests/dcaegen2-collectors-datafile/testsuites/HTTPS-Various-Connection-Types-suite/HttpsVariousConnectionTypes.robot @@ -0,0 +1,95 @@ +*** Settings *** +Library OperatingSystem +Library RequestsLibrary +Library Process + +Resource ../../resources/common-keywords.robot + +*** Variables *** +${CONSUL_UPL_APP} /usr/bin/curl -v http://127.0.0.1:8500/v1/kv/dfc_app0?dc=dc1 -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' -H 'X-Requested-With: XMLHttpRequest' --data-binary @${SIMGROUP_ROOT}/consul/c12_feed2_PM_HTTPS.json +${CONSUL_GET_APP} /usr/bin/curl -v http://127.0.0.1:8500/v1/kv/dfc_app0?raw +${CBS_GET_MERGED_CONFIG} /usr/bin/curl -v http://127.0.0.1:10000/service_component_all/dfc_app0 + +*** Test Cases *** + +######## Single file, HTTPS with various connections +Verify single event with single 1MB file with HTTPS connection (basic authentication). From event poll to published file + [TAGS] DFC_FUNCTIONAL_40 + [Documentation] Verify single event with single HTTPS (basic authentication) 1MB file from event poll to published file. + ${cli_cmd_output}= Run Process ${DFC_ROOT}/../dfc-containers-clean.sh stderr=STDOUT + Verify Single Event From Event Poll To Published File 1 --tc400 HTTPS + + +Verify single event with single 1MB file HTTPS connection (client certificate authentication). From event poll to published file + [TAGS] DFC_FUNCTIONAL_41 + [Documentation] Verify single event with single HTTPS (basic authentication) 5MB file from event poll to published file. + Verify Single Event From Event Poll To Published File 1 --tc403 HTTPS + + +Verify single event with single 1MB file HTTPS (no authentication). From event poll to published file + [TAGS] DFC_FUNCTIONAL_42 + [Documentation] Verify single event with single HTTPS (basic authentication) 50MB file from event poll to published file. + Verify Single Event From Event Poll To Published File 1 --tc404 HTTPS + + + +*** Keywords *** +Verify Single Event From Event Poll To Published File + [Documentation] Keyword to verify single event with file with given parameters. + [Arguments] ${file_size_in_mb} ${mr_tc} ${http_type} + Set Environment Variable MR_TC ${mr_tc} + Set Environment Variable FILE_SIZE ${file_size_in_mb}MB + Set Environment Variable HTTP_TYPE ${http_type} + Set Default Environment Variables + + ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT} + Log To Console Simulator-start: + Log To Console ${cli_cmd_output.stdout} ${cli_cmd_output.stderr} + MR Sim Emitted Files Equal 0 #Verify 0 file emitted from MR sim + DR Sim Published Files Equal 0 #Verify 0 file published to DR sim + + ${cli_cmd_output}= Run Process ${CONSUL_UPL_APP} shell=yes + Log To Console Consul APP write: + Log To Console ${cli_cmd_output.stdout} ${cli_cmd_output.stderr} + + ${cli_cmd_output}= Run Process ${CONSUL_GET_APP} shell=yes + Log To Console Consul APP read: + Log To Console ${cli_cmd_output.stdout} ${cli_cmd_output.stderr} + + ${cli_cmd_output}= Run Process ${CBS_GET_MERGED_CONFIG} shell=yes + Log To Console CBS merged configuration: + Log To Console ${cli_cmd_output.stdout} ${cli_cmd_output.stderr} + + Sleep 10 + + Start DFC + + Wait Until Keyword Succeeds 1 minute 10 sec MR Sim Emitted Files Equal 1 #Verify 1 file emitted from MR sim + Wait Until Keyword Succeeds 1 minute 10 sec DR Sim Query Not Published Equal 1 #Verify 1 query response for not published files + Wait Until Keyword Succeeds 1 minute 10 sec DR Sim Published Files Equal 1 #Verify 1 file published to DR sim + DR Redir Sim Downloaded Volume Equal ${file_size_in_mb} 000 000 #Verify correct number of bytes published file data in DR redir sim + + [Teardown] Test Teardown + +Set Default Environment Variables + [Documentation] Set default environment variables for simulators setup + Set Environment Variable DR_TC --tc normal + Set Environment Variable DR_REDIR_TC --tc normal + Set Environment Variable MR_GROUPS OpenDcae-c12:PM_MEAS_FILES + Set Environment Variable MR_FILE_PREFIX_MAPPING PM_MEAS_FILES:A + Set Environment Variable DR_REDIR_FEEDS 2:A + Set Environment Variable FTP_FILE_PREFIXES A + Set Environment Variable FTP_TYPE SFTP + Set Environment Variable HTTP_FILE_PREFIXES A + Set Environment Variable NUM_FTPFILES 1 + Set Environment Variable NUM_HTTPFILES 1 + Set Environment Variable NUM_PNFS 1 + Set Environment Variable NUM_FTP_SERVERS 1 + Set Environment Variable NUM_HTTP_SERVERS 1 + Set Environment Variable DR_FEEDS 2:A + Set Environment Variable DR_REDIR_SIM drsim_redir + Set Environment Variable SFTP_SIMS sftp-server0:22 + Set Environment Variable FTPES_SIMS ftpes-server-vsftpd0:21 + Set Environment Variable HTTP_SIMS http-https-server0:80 + Set Environment Variable HTTPS_SIMS http-https-server0:443 + Set Environment Variable HTTPS_SIMS_NO_AUTH http-https-server0:8080 diff --git a/tests/dcaegen2-collectors-datafile/testsuites/HTTPS-Various-Connection-Types-suite/__init__.robot b/tests/dcaegen2-collectors-datafile/testsuites/HTTPS-Various-Connection-Types-suite/__init__.robot new file mode 100755 index 00000000..dac245f8 --- /dev/null +++ b/tests/dcaegen2-collectors-datafile/testsuites/HTTPS-Various-Connection-Types-suite/__init__.robot @@ -0,0 +1,2 @@ +*** Settings *** +Documentation DFC HTTPS various connection types test suite. Single event with single file. diff --git a/tests/dcaegen2-collectors-datafile/testsuites/Strict-Host-Checking-suite/StrictHostChecking.robot b/tests/dcaegen2-collectors-datafile/testsuites/Strict-Host-Checking-suite/StrictHostChecking.robot index 55946201..9baf11f6 100755 --- a/tests/dcaegen2-collectors-datafile/testsuites/Strict-Host-Checking-suite/StrictHostChecking.robot +++ b/tests/dcaegen2-collectors-datafile/testsuites/Strict-Host-Checking-suite/StrictHostChecking.robot @@ -90,7 +90,9 @@ Setup Strict Host Key Checking Test Set Environment Variable DR_REDIR_SIM drsim_redir Set Environment Variable SFTP_SIMS sftp-server0:22 Set Environment Variable FTPES_SIMS ftpes-server-vsftpd0:21 - Set Environment Variable HTTP_SIMS http-server0:80 + Set Environment Variable HTTP_SIMS http-https-server0:80 + Set Environment Variable HTTPS_SIMS http-https-server0:443 + Set Environment Variable HTTPS_SIMS_NO_AUTH http-https-server0:8080 ${cli_cmd_output}= Run Process ./simulators-start.sh cwd=${SIMGROUP_ROOT} Log To Console Simulator-start: @@ -112,6 +114,6 @@ Setup Strict Host Key Checking Test Sleep 10 - ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT} env:KNOWN_HOSTS=${known_hosts_file} + ${cli_cmd_output}= Run Process ${DFC_ROOT}/dfc-start.sh cwd=${DFC_ROOT} env:KNOWN_HOSTS=${known_hosts_file} env:SIMGROUP_ROOT=${SIMGROUP_ROOT} Log To Console Dfc-start: Log To Console ${cli_cmd_output.stdout} ${cli_cmd_output.stderr} -- 2.16.6