Extend 5g bulk pm test suite in order to have possibility to test custom PM FILES

Issue-ID: INT-1801
Signed-off-by: Krzysztof Kuzmicki <krzysztof.kuzmicki@nokia.com>
Change-Id: I613da97a673b7c90c876b4a0d04374bf2865c22b
diff --git a/robot/testsuites/usecases/5gbulkpm.robot b/robot/testsuites/usecases/5gbulkpm.robot
index 07ea3b7..483dd03 100644
--- a/robot/testsuites/usecases/5gbulkpm.robot
+++ b/robot/testsuites/usecases/5gbulkpm.robot
@@ -14,16 +14,13 @@
 Resource          ../../resources/usecases/5gbulkpm_interface.robot
 Resource          ../../resources/mr_interface.robot
 Resource          ../../resources/dr_interface.robot
-Suite Setup       Send File Ready Event to VES Collector   test
+Suite Setup       Send File Ready Event to VES Collector   test  org.3GPP.32.435#measCollec  V10
 Suite Teardown    Usecase Teardown
 
-
-
 *** Variables ***
 ${INVENTORY_ENDPOINT}               /dcae-service-types
 ${XNF_SFTP_BLUEPRINT_PATH}          ${EXECDIR}/robot/assets/usecases/5gbulkpm/k8s-sftp.yaml
 ${BLUEPRINT_TEMPLATE_PATH}          ${EXECDIR}/robot/assets/usecases/5gbulkpm/blueprintTemplate.json
-${FTP_FILE_PATH}                    ${EXECDIR}/robot/assets/usecases/5gbulkpm/pmfiles/A20181002.0000-1000-0015-1000_5G.xml.gz
 ${DEPLOYMENT_ENDPOINT}              dcae-deployments
 ${MR_TOPIC_CHECK_PATH}              /topics
 ${DR_SUB_CHECK_PATH}                /internal/prov
@@ -46,6 +43,33 @@
 
 *** Test Cases ***
 
+Setting Global Variables
+    [Documentation]
+    ...  This test case checks suite if it is working in default or custom mode and sets proper variables depended on used mode.
+    ...  Default mode is based on a previous version of 5gbulkpm test case which it test PM file available in robot image.
+    ...  Custom mode is used only in xtesing. Can be executed only as k8s job described in https://gerrit.onap.org/r/gitweb?p=integration/xtesting.git;a=blob_plain;f=smoke-usecases-robot/README.md;hb=refs/heads/master
+    ...  Custom mode is used to validate custom PM files. All details how to provide custom PM files are described in documentation above.
+    ...  By default in custom mode all PM details are not logged to robot log files, so they are not send to community name: TEST_DB_URL http://testresults.opnfv.org/onap/api/v1/results
+    [Tags]                              5gbulkpm                           5gbulkpm_checking_sftp_rsa_key
+    ${env_variables} =  Get Environment Variables
+    ${bulk_pm_mode}=   Get Variable Value  ${env_variables["BULK_PM_MODE"]}  default
+    ${pm_log_level}=   Get Variable Value  ${env_variables["PM_LOG_LEVEL"]}  NONE
+    ${test_variables} =  Create Dictionary
+    Run Keyword If   "${bulk_pm_mode}" == "custom"  Set To Dictionary  ${test_variables}   FILE_FORMAT_TYPE=${env_variables["FILE_FORMAT_TYPE"]}
+    ...                                                                                    FILE_FORMAT_VERSION=${env_variables["FILE_FORMAT_VERSION"]}
+    ...                                                                                    PM_FILE_PATH=${env_variables["PM_FILE_PATH"]}
+    ...                                                                                    EXPECTED_PM_STR=${env_variables["EXPECTED_PM_STR"]}
+    ...                                                                                    EXPECTED_EVENT_JSON_PATH=${env_variables["EXPECTED_EVENT_JSON_PATH"]}
+    ...        ELSE                                 Set To Dictionary  ${test_variables}   FILE_FORMAT_TYPE=org.3GPP.32.435#measCollec
+    ...                                                                                    FILE_FORMAT_VERSION=V10
+    ...                                                                                    PM_FILE_PATH=${EXECDIR}/robot/assets/usecases/5gbulkpm/pmfiles/A20181002.0000-1000-0015-1000_5G.xml.gz
+    ...                                                                                    EXPECTED_PM_STR=perf3gpp_RnNode-Ericsson_pmMeasResult
+    ...                                                                                    EXPECTED_EVENT_JSON_PATH=none
+    Set Global Variable   ${GLOBAL_TEST_VARIABLES}  ${test_variables}
+    Set Global Variable  ${BULK_PM_MODE}  ${bulk_pm_mode}
+    Set Global Variable  ${PM_LOG_LEVEL}  ${pm_log_level}
+
+
 Deploying Data File Collector
     [Tags]                              5gbulkpm                           5gbulkpm_checking_sftp_rsa_key
     ${headers}=                         Create Dictionary                  content-type=application/json
@@ -117,10 +141,10 @@
     ${resp}=                            Run MR Auth Get Request            ${MR_TOPIC_URL_PATH}            ${GLOBAL_DCAE_USERNAME}         ${GLOBAL_DCAE_PASSWORD}
     Should Be Equal As Strings          ${resp.status_code}                200
 
-Upload PM Files to xNF SFTP Server After Services Deployed
+Uploading PM Files to xNF SFTP Server After Services Deployed
     [Tags]                              5gbulkpm                           5gbulkpm_checking_sftp_rsa_key
-    Upload PM Files to xNF SFTP Server  ${FTP_FILE_PATH}
-    Set Global Variable                 ${epoch}
+    ${pm_file}=  Upload PM Files to xNF SFTP Server  ${GLOBAL_TEST_VARIABLES["PM_FILE_PATH"]}  ${BULK_PM_MODE}
+    Set Global Variable  ${PM_FILE}  ${pm_file}
 
 DR Bulk PM Feed Check
     [Tags]                              5gbulkpm                            5gbulkpm_checking_sftp_rsa_key
@@ -134,13 +158,14 @@
 
 Sending File Ready Event to VES Collector After Services Deployed
     [Tags]                              5gbulkpm                 5gbulkpm_checking_sftp_rsa_key
-    Send File Ready Event to VES Collector  ${epoch}
+    Send File Ready Event to VES Collector  ${PM_FILE}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_TYPE"]}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_VERSION"]}
 
 Verifying 3GPP Perf VES Content On PERFORMANCE_MEASUREMENTS Topic After Services Deployed
     [Tags]                              5gbulkpm                            5gbulkpm_checking_sftp_rsa_key
-    Wait Until Keyword Succeeds         5 minute                            5 sec            xNF PM File Validate      perf3gpp_RnNode-Ericsson_pmMeasResult
+    Wait Until Keyword Succeeds         2 min                            5 sec            xNF PM File Validate   ${BULK_PM_MODE}   ${GLOBAL_TEST_VARIABLES["EXPECTED_PM_STR"]}  ${GLOBAL_TEST_VARIABLES["EXPECTED_EVENT_JSON_PATH"]}
 
-Setting Known_Hosts Environment Set
+
+Setting KNOWN_HOSTS_FILE_PATH Environment Variable
     [Tags]                             5gbulkpm_checking_sftp_rsa_key
     ${rc}=                             Run and Return RC                   ${SET_KNOWN_HOSTS_FILE_PATH}
     Should Be Equal As Integers        ${rc}                               0
@@ -150,25 +175,25 @@
     ${rc}=                             Run and Return RC                   ${COPY_RSA_KEY}
     Should Be Equal As Integers        ${rc}                               0
 
-Uploading PM Files to xNF SFTP Server After Known_Host Set
+Uploading PM Files to xNF SFTP Server After KNOWN_HOSTS_FILE_PATH Env Variable Added
     [Tags]                              5gbulkpm_checking_sftp_rsa_key
-    Upload PM Files to xNF SFTP Server  ${FTP_FILE_PATH}
-    Set Global Variable                 ${epoch}
+    ${pm_file}=  Upload PM Files to xNF SFTP Server  ${GLOBAL_TEST_VARIABLES["PM_FILE_PATH"]}  ${BULK_PM_MODE}
+    Set Global Variable  ${PM_FILE}  ${pm_file}
 
-Sending File Ready Event to VES Collector After Known_Host Set
+Sending File Ready Event to VES Collector After KNOWN_HOSTS_FILE_PATH Env Variable Added
     [Tags]                              5gbulkpm_checking_sftp_rsa_key
-    Send File Ready Event to VES Collector  ${epoch}
+    Send File Ready Event to VES Collector  ${PM_FILE}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_TYPE"]}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_VERSION"]}
 
-Verifying 3GPP Perf VES Content On PERFORMANCE_MEASUREMENTS Topic After Known_Host Set
+Verifying 3GPP Perf VES Content On PERFORMANCE_MEASUREMENTS Topic After KNOWN_HOSTS_FILE_PATH Env Variable Added
     [Tags]                              5gbulkpm_checking_sftp_rsa_key
-    Wait Until Keyword Succeeds         5 minute                            5 sec            xNF PM File Validate      perf3gpp_RnNode-Ericsson_pmMeasResult
+    Wait Until Keyword Succeeds         2 min                            5 sec             xNF PM File Validate   ${BULK_PM_MODE}   ${GLOBAL_TEST_VARIABLES["EXPECTED_PM_STR"]}  ${GLOBAL_TEST_VARIABLES["EXPECTED_EVENT_JSON_PATH"]}
 
-Checking DFC Logs After Known_Hosts Set
+Checking DFC Logs After KNOWN_HOSTS_FILE_PATH Env Variable Added
     [Tags]                           5gbulkpm_checking_sftp_rsa_key
     ${dfc_logs}=                     Run Given Command On DFC Container      ${CHECK_DFC_LOGS}
     Should Not Contain               ${dfc_logs}                             ${EXPECTED_PRINT}
 
-Changing RSA Key Known_Hosts
+Changing SFTP Server RSA Key
     [Tags]                            5gbulkpm_checking_sftp_rsa_key
     ${get_known_hosts_file}=          OperatingSystem.Get File  /tmp/known_hosts
     ${change_rsa_key}=                Replace String            ${get_known_hosts_file}        A  a
@@ -176,15 +201,15 @@
     ${rc}=                            Run and Return RC         ${COPY_RSA_KEY}
     Should Be Equal As Integers       ${rc}                     0
 
-Uploading PM Files to xNF SFTP Server After RSA Key Change
+Uploading PM Files to xNF SFTP Server After SFTP Server RSA Key Changed
     [Tags]                              5gbulkpm_checking_sftp_rsa_key
-    Upload PM Files to xNF SFTP Server  ${FTP_FILE_PATH}
-    Set Global Variable                 ${epoch}
+    ${pm_file}=  Upload PM Files to xNF SFTP Server  ${GLOBAL_TEST_VARIABLES["PM_FILE_PATH"]}  ${BULK_PM_MODE}
+    Set Global Variable  ${PM_FILE}  ${pm_file}
 
-Sending File Ready Event to VES Collector After RSA Key Change
+Sending File Ready Event to VES Collector After SFTP Server RSA Key Changed
     [Tags]                              5gbulkpm_checking_sftp_rsa_key
-    Send File Ready Event to VES Collector  ${epoch}
+    Send File Ready Event to VES Collector  ${PM_FILE}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_TYPE"]}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_VERSION"]}
 
-Checking DFC Logs After RSA Key Change
+Checking DFC Logs After SFTP Server RSA Key Changed
     [Tags]                              5gbulkpm_checking_sftp_rsa_key
-    Wait Until Keyword Succeeds         5 sec  30 sec            Check Given Print In DFC LOG  ${CHECK_DFC_LOGS}
+    Wait Until Keyword Succeeds         5 min  30 sec            Check Given Print In DFC LOG  ${CHECK_DFC_LOGS}