[ROBOT] ADD BULKPM test cases that use helm based component services

Signed-off-by: Krzysztof Kuzmicki <krzysztof.kuzmicki@nokia.com>
Issue-ID: INT-1895
Change-Id: I32389f4f0cd0d2e9fb7b73b99554a4722c4687d0
diff --git a/robot/resources/usecases/5gbulkpm_helm_interface.robot b/robot/resources/usecases/5gbulkpm_helm_interface.robot
new file mode 100644
index 0000000..6707767
--- /dev/null
+++ b/robot/resources/usecases/5gbulkpm_helm_interface.robot
@@ -0,0 +1,237 @@
+*** Settings ***
+Documentation	  The main interface for interacting with 5G Bulkpm.
+Library 	      RequestsLibrary
+Library           OperatingSystem
+Library           String
+Library           JSONLibrary
+Resource          ../mr_interface.robot
+Resource          ../dr_interface.robot
+Resource          ../consul_interface.robot
+Resource          ../chart_museum.robot
+
+*** Variables ***
+${INVENTORY_SERVER}                                 ${GLOBAL_INVENTORY_SERVER_PROTOCOL}://${GLOBAL_INVENTORY_SERVER_NAME}:${GLOBAL_INVENTORY_SERVER_PORT}
+${DEPLOYMENT_SERVER}                                ${GLOBAL_DEPLOYMENT_HANDLER_SERVER_PROTOCOL}://${GLOBAL_DEPLOYMENT_HANDLER_SERVER_NAME}:${GLOBAL_DEPLOYMENT_HANDLER_SERVER_PORT}
+${DR_ENDPOINT}                                      ${GLOBAL_DMAAP_DR_PROV_SERVER_PROTOCOL}://${GLOBAL_INJECTED_DMAAP_DR_PROV_IP_ADDR}:${GLOBAL_DMAAP_DR_PROV_SERVER_PORT}
+${DMAAP_BC_SERVER}                                  ${GLOBAL_BC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_BC_IP_ADDR}:${GLOBAL_BC_HTTPS_SERVER_PORT}
+${VES_HEALTH_CHECK_PATH}                            ${GLOBAL_DCAE_VES_HTTPS_PROTOCOL}://${GLOBAL_INJECTED_DCAE_VES_HOST}:${GLOBAL_DCAE_VES_HTTPS_SERVER_PORT}
+${MR_PUBLISH_TEMPLATE}                              mr/mr_publish.jinja
+${INVENTORY_ENDPOINT}                               /dcae-service-types
+${XNF_SFTP_BLUEPRINT_PATH}                          ${EXECDIR}/robot/assets/usecases/5gbulkpm/k8s-sftp.yaml
+${XNF_HTTPS_BLUEPRINT_PATH}                          ${EXECDIR}/robot/assets/usecases/5gbulkpm/k8s-https.yaml
+${BLUEPRINT_TEMPLATE_PATH}                          ${EXECDIR}/robot/assets/usecases/5gbulkpm/blueprintTemplate.json
+${DEPLOYMENT_ENDPOINT}                              dcae-deployments
+${MR_TOPIC_CHECK_PATH}                              /topics
+${DR_SUB_CHECK_PATH}                                /internal/prov
+${MR_TOPIC_URL_PATH}                                /events/org.onap.dmaap.mr.PERFORMANCE_MEASUREMENTS/CG1/C1
+${MR_TOPIC_URL_PATH_FOR_POST}                       /events/org.onap.dmaap.mr.PERFORMANCE_MEASUREMENTS
+${DMAAP_BC_MR_CLIENT_PATH}                          /webapi/mr_clients
+${DMAAP_BC_MR_CLUSTER_PATH}                         /webapi/mr_clusters
+${PMMAPPER_HEALTH_CHECK_PATH}                       /healthcheck
+${JSON_DATA_FILE}                                   ${EXECDIR}/robot/assets/usecases/5gbulkpm/Notification.json
+${VES_LISTENER_PATH}                                /eventListener/v7
+${PMMAPPER_SUB_ROLE_DATA}                           ${EXECDIR}/robot/assets/usecases/5gbulkpm/sub.json
+${PMMAPPER_MR_CLUSTER_DATA}                         ${EXECDIR}/robot/assets/usecases/5gbulkpm/mr_clusters.json
+${NEXUS3}                                           ${GLOBAL_INJECTED_NEXUS_DOCKER_REPO}
+${SET_KNOWN_HOSTS_FILE_PATH}                        kubectl set env deployment/$(kubectl get deployment -n onap | grep datafile | awk '{print $1}') KNOWN_HOSTS_FILE_PATH=/home/datafile/.ssh/known_hosts -n onap
+${CHECK_ENV_SET}                                    kubectl set env pod/$(kubectl get pod -n onap | grep datafile | awk '{print $1}') --list -n onap
+${COPY_RSA_KEY}                                     kubectl cp /tmp/known_hosts $(kubectl get pod -n onap | grep datafile | awk '{print $1}'):/home/datafile/.ssh/known_hosts -n onap
+${CHECK_DFC_LOGS}                                   kubectl logs $(kubectl get pod -n onap | grep datafile | awk '{print $1}') -n onap --tail=4
+${EXPECTED_PRINT}                                   StrictHostKeyChecking is enabled but environment variable KNOWN_HOSTS_FILE_PATH is not set or points to not existing file
+${MONGO_BLUEPRINT_PATH}                             ${EXECDIR}/robot/assets/cmpv2/k8s-mongo.yaml
+${PNF_SIMULATOR_BLUEPRINT_PATH}                     ${EXECDIR}/robot/assets/cmpv2/k8s-pnf-simulator.yaml
+${MONGO_VES_CLIENT_BLUEPRINT_PATH}                  ${EXECDIR}/robot/assets/cmpv2/k8s-mongo-ves-client.yaml
+${VES_CLIENT_BLUEPRINT_PATH}                        ${EXECDIR}/robot/assets/cmpv2/k8s-ves-client.yaml
+${VES_INPUTS}                                       deployment/VesTlsCmpv2Inputs.jinja
+${pm_notification_event}                            dfc/notification.jinja
+${consul_change_event}                              dfc/consul.jinja
+${ves_client_single_event}=                         ves/pnf_simulator_single_event.jinja
+${SFTP_HELM_CHARTS}                                 ${EXECDIR}/robot/assets/helm/sftp
+${HELM_RELEASE}                                     kubectl --namespace onap get pods | sed 's/ .*//' | grep robot | sed 's/-.*//'
+
+*** Keywords ***
+
+xNF PM File Validate
+    [Documentation]
+    ...  This keyword gathers all events from message router topic and validates if in recived data is present an expected string: "${expected_pm_str}" .
+    [Arguments]                 ${expected_pm_str}
+    ${timestamp}=               Get Time                        epoch
+    ${resp}=                    Run MR Auth Get Request         ${MR_TOPIC_URL_PATH}            ${GLOBAL_DCAE_USERNAME}         ${GLOBAL_DCAE_PASSWORD}
+    Should Contain              ${resp.text}                  ${expected_pm_str}
+
+Topic Validate
+    [Arguments]                         ${value}
+    ${timestamp}=                       Get Current Date
+    ${dict}=                            Create Dictionary                           timestamp=${timestamp}
+    Templating.Create Environment       mr                                          ${GLOBAL_TEMPLATE_FOLDER}
+    ${data}=                            Templating.Apply Template                   mr                                  ${MR_PUBLISH_TEMPLATE}              ${dict}
+    ${resp}=                            Run MR Auth Post Request (User And Pass)    ${MR_TOPIC_URL_PATH_FOR_POST}       ${GLOBAL_DCAE_USERNAME}             ${GLOBAL_DCAE_PASSWORD}       ${data}
+    Should Be Equal As Strings          ${resp.status_code}                         200
+    ${resp}=                            Run MR Auth Get Request                     ${MR_TOPIC_URL_PATH}                ${GLOBAL_DCAE_USERNAME}             ${GLOBAL_DCAE_PASSWORD}
+    Should Contain                      ${resp.text}                                ${value}
+
+Send File Ready Event to VES Collector and Deploy all DCAE Applications
+    [Arguments]                                 ${pm_file}              ${file_format_type}             ${file_format_version}
+    Disable Warnings
+    Setting Global Variables
+    Send File Ready Event to VES Collector      ${pm_file}              ${file_format_type}             ${file_format_version}
+    Add chart repository                        chart-museum                  http://chart-museum:80      onapinitializer      demo123456!
+    Log To Console                              Deploying Data File Collector
+    Deploying Data File Collector
+    Log To Console                              Deploying 3GPP PM Mapper
+    Deploying 3GPP PM Mapper
+    Log To Console                              Deploying SFTP Server As xNF
+    Deploying SFTP Server As xNF
+    Checking PERFORMANCE_MEASUREMENTS Topic In Message Router
+    DR Bulk PM Feed Check
+    DR PM Mapper Subscriber Check
+
+Usecase Teardown
+    Disable Warnings
+    Uninstall helm charts               ${ONAP_HELM_RELEASE}-dfc
+    Uninstall helm charts               ${ONAP_HELM_RELEASE}-pmmapper
+    Uninstall helm charts               ${ONAP_HELM_RELEASE}-sftp
+
+Setting Global Variables
+    ${test_variables} =  Create Dictionary
+    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
+    Set Global Variable   ${GLOBAL_TEST_VARIABLES}  ${test_variables}
+    ${command_output} =                 Run And Return Rc And Output        ${HELM_RELEASE}
+    Should Be Equal As Integers         ${command_output[0]}                0
+    Set Global Variable   ${ONAP_HELM_RELEASE}   ${command_output[1]}
+
+Send File Ready Event to VES Collector
+    [Arguments]                         ${pm_file}                          ${file_format_type}             ${file_format_version}
+    Disable Warnings
+    ${headers}=                         Create Dictionary                   content-type=application/json
+    ${fileready}=                       OperatingSystem.Get File            ${JSON_DATA_FILE}
+    ${auth}=                            Create List                         ${GLOBAL_DCAE_VES_USERNAME}     ${GLOBAL_DCAE_VES_PASSWORD}
+    ${session}=                         Create Session                      ves                             ${VES_HEALTH_CHECK_PATH}      auth=${auth}
+    ${resp}=                            Post Request                        ves                             ${VES_LISTENER_PATH}          data=${fileready}   headers=${headers}
+    Should Be Equal As Strings          ${resp.status_code}                 202
+    ${VES_FILE_READY_NOTIFICATION}      Set Variable                        {"event":{"commonEventHeader":{"version":"4.0.1","vesEventListenerVersion":"7.0.1","domain":"notification","eventName":"Noti_RnNode-Ericsson_FileReady","eventId":"FileReady_1797490e-10ae-4d48-9ea7-3d7d790b25e1","lastEpochMicrosec":8745745764578,"priority":"Normal","reportingEntityName":"otenb5309","sequence":0,"sourceName":"oteNB5309","startEpochMicrosec":8745745764578,"timeZoneOffset":"UTC+05.30"},"notificationFields":{"changeIdentifier":"PM_MEAS_FILES","changeType":"FileReady","notificationFieldsVersion":"2.0","arrayOfNamedHashMap":[{"name":"${pm_file}","hashMap":{"location":"sftp://bulkpm:bulkpm@${ONAP_HELM_RELEASE}-sftp:22/upload/${pm_file}","compression":"gzip","fileFormatType":"${file_format_type}","fileFormatVersion":"${file_format_version}"}}]}}}
+    ${resp}=                            Post Request                        ves                             ${VES_LISTENER_PATH}          data=${VES_FILE_READY_NOTIFICATION}   headers=${headers}
+    Should Be Equal As Strings          ${resp.status_code}                 202
+
+Upload PM Files to xNF SFTP Server
+    [Arguments]                         ${pm_file_path}
+    Open Connection                     ${ONAP_HELM_RELEASE}-sftp
+    Login                               bulkpm                             bulkpm
+    ${epoch}=                           Get Current Date                   result_format=epoch
+    ${pm_file}=                         Set Variable                        A${epoch}.xml.gz
+    Put File                            ${pm_file_path}                    upload/${pm_file}
+    [Return]  ${pm_file}
+
+Upload PM Files to xNF HTTPS Server
+    [Arguments]                         ${pm_file_path}                     ${https_server}
+    ${epoch}=                           Get Current Date                    result_format=epoch
+    Set Variable                       A${epoch}.xml.gz
+    Copy File                           ${pm_file_path}                     tmp/${pm_file}
+    ${fileData}=                        Get Binary File                     tmp/${pm_file}
+    ${file_part}=                       Create List                         ${pm_file}                         ${fileData}                   application/octet-stream
+    ${fileParts}=                       Create Dictionary
+    Set to Dictionary                   ${fileParts}                        uploaded_file=${file_part}
+    ${auth}=                            Create List                         demo                                demo123456!
+    ${session}=                         Create Session                      https                               http://${https_server}:80   auth=${auth}
+    ${resp}=                            Post Request                        https                               /upload.php                 files=${fileParts}
+    Should Be Equal As Strings          ${resp.status_code}                 200
+    [Return]                            ${pm_file}
+
+Check Given Print In DFC Log
+    [Arguments]                         ${check_dfc_logs}
+    ${dfc_logs}=                        Run Given Command On DFC Container                                      ${CHECK_DFC_LOGS}
+    Should Contain                      ${dfc_logs}                                                             HostKey has been changed
+
+Run Given Command On DFC Container
+    [Arguments]                         ${user_command}
+    ${run_command} =                    Run And Return Rc And Output        ${user_command}
+    ${command_output} =                 Set Variable                        ${run_command[1]}
+    ${regexp_matches} =                 Get Regexp Matches                  ${command_output}                   .*(\\s|\\[)+(.+-datafile-collector).*  2
+    ${dfc_container_name} =             Set Variable                        ${regexp_matches[0]}
+    ${new_command} =                    Set Variable                        ${user_command} ${dfc_container_name}
+    ${command_output} =                 Run And Return Rc And Output        ${new_command}
+    Should Be Equal As Integers         ${command_output[0]}                0
+    ${log} =                            Set Variable                        ${command_output[1]}
+    [Return]                            ${log}
+
+Check Known Hosts In Env
+    [Arguments]                         ${CHECK_KNOWN_HOSTS}
+    ${check} =                          Run And Return Rc And Output        ${CHECK_KNOWN_HOSTS}
+    Should Be Equal As Integers         ${check[0]}                         0
+    ${env} =                            Set Variable                        ${check[1]}
+    ${string_matches} =                 Get Lines Containing String         ${env}                              KNOWN_HOSTS_FILE_PATH=/home/datafile/.ssh/known_host  case_insensitive=True
+    ${output} =                         Should Not Be Empty                 ${string_matches}
+    [Return]                            ${output}
+
+Deploying Data File Collector
+    Install helm charts                 chart-museum                       dcae-datafile-collector         ${ONAP_HELM_RELEASE}-dfc          3 min
+
+Deploying 3GPP PM Mapper
+    Install helm charts                 chart-museum                       dcae-pm-mapper         ${ONAP_HELM_RELEASE}-pmmapper             3 min
+
+Deploying SFTP Server As xNF
+    ${override} =                       Set Variable                       --set fullnameOverride=${ONAP_HELM_RELEASE}-sftp
+    Install helm charts from folder     ${SFTP_HELM_CHARTS}                ${ONAP_HELM_RELEASE}-sftp                 set_values_override=${override}
+
+Checking PERFORMANCE_MEASUREMENTS Topic In Message Router
+    ${headers}=                         Create Dictionary                  content-type=application/json
+    ${subdata}=                         OperatingSystem.Get File           ${PMMAPPER_SUB_ROLE_DATA}
+    ${session}=                         Create Session                     dmaapbc                          ${DMAAP_BC_SERVER}
+    ${resp}=                            Post Request                       dmaapbc                          ${DMAAP_BC_MR_CLIENT_PATH}      data=${subdata}        headers=${headers}
+    Wait Until Keyword Succeeds         5 minute                           5 sec                            Topic Validate                  success
+    ${resp}=                            Run MR Get Request                 ${MR_TOPIC_CHECK_PATH}
+    Should Be Equal As Strings          ${resp.status_code}                200
+    ${topics}=                          Set Variable                       ${resp.json().get('topics')}
+    List Should Contain Value           ${topics}                          org.onap.dmaap.mr.PERFORMANCE_MEASUREMENTS
+    ${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
+
+DR Bulk PM Feed Check
+    ${resp}=                            Run DR Get Request                  ${DR_SUB_CHECK_PATH}
+    Should Contain                      ${resp.text}                        bulk_pm_feed
+
+DR PM Mapper Subscriber Check
+    ${resp}=                            Run DR Get Request                  ${DR_SUB_CHECK_PATH}
+    Should Contain                      ${resp.text}                        https://dcae-pm-mapper:8443/delivery
+
+Setting KNOWN_HOSTS_FILE_PATH Environment Variable in DFC
+    ${rc}=                             Run and Return RC                   ${SET_KNOWN_HOSTS_FILE_PATH}
+    Should Be Equal As Integers        ${rc}                               0
+    Wait Until Keyword Succeeds        5 min                               10s               Check Known Hosts In Env             ${CHECK_ENV_SET}
+    ${GET_RSA_KEY}=                    Set Variable                        kubectl exec $(kubectl get pod -n onap | grep ${ONAP_HELM_RELEASE}-sftp | awk '{print $1}') -n onap -- ssh-keyscan -t rsa ${ONAP_HELM_RELEASE}-sftp > /tmp/known_hosts
+    ${rc}=                             Run and Return RC                   ${GET_RSA_KEY}
+    Should Be Equal As Integers        ${rc}                               0
+    ${rc}=                             Run and Return RC                   ${COPY_RSA_KEY}
+    Should Be Equal As Integers        ${rc}                               0
+
+Uploading PM Files to xNF SFTP Server
+    ${pm_file}=                         Upload PM Files to xNF SFTP Server      ${GLOBAL_TEST_VARIABLES["PM_FILE_PATH"]}
+    Set Global Variable                 ${PM_FILE}                              ${pm_file}
+
+Sending File Ready Event to VES Collector
+    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
+    Wait Until Keyword Succeeds         2 min                            5 sec            xNF PM File Validate   ${GLOBAL_TEST_VARIABLES["EXPECTED_PM_STR"]}
+
+Changing SFTP Server RSA Key in DFC
+    ${get_known_hosts_file}=          OperatingSystem.Get File  /tmp/known_hosts
+    ${change_rsa_key}=                Replace String            ${get_known_hosts_file}        A  a
+    Create File                       /tmp/known_hosts          ${change_rsa_key}
+    ${rc}=                            Run and Return RC         ${COPY_RSA_KEY}
+    Should Be Equal As Integers       ${rc}                     0
+
+Checking DFC Logs After KNOWN_HOSTS_FILE_PATH Env Variable Added
+    ${dfc_logs}=                     Run Given Command On DFC Container      ${CHECK_DFC_LOGS}
+    Should Not Contain               ${dfc_logs}                             ${EXPECTED_PRINT}
+
+Checking DFC Logs After SFTP Server RSA Key Changed
+    Wait Until Keyword Succeeds         5 min  30 sec            Check Given Print In DFC LOG  ${CHECK_DFC_LOGS}
+
+Check DFC logs
+    [Arguments]  ${DFC_LOG_CHECK}
+    ${rc} =                                    Run and Return RC                   ${DFC_LOG_CHECK}
+    Should Be Equal As Integers                ${rc}                               0
diff --git a/robot/resources/usecases/5gbulkpm_interface.robot b/robot/resources/usecases/5gbulkpm_interface.robot
deleted file mode 100644
index 00d7306..0000000
--- a/robot/resources/usecases/5gbulkpm_interface.robot
+++ /dev/null
@@ -1,454 +0,0 @@
-*** Settings ***
-Documentation	  The main interface for interacting with 5G Bulkpm.
-Library 	      RequestsLibrary
-Library           OperatingSystem
-Library           String
-Library           JSONLibrary
-Resource          ../dcae/deployment.robot
-Resource          ../dcae/inventory.robot
-Resource          ../mr_interface.robot
-Resource          ../dr_interface.robot
-Resource          ../consul_interface.robot
-
-*** Variables ***
-${INVENTORY_SERVER}                                 ${GLOBAL_INVENTORY_SERVER_PROTOCOL}://${GLOBAL_INVENTORY_SERVER_NAME}:${GLOBAL_INVENTORY_SERVER_PORT}
-${DEPLOYMENT_SERVER}                                ${GLOBAL_DEPLOYMENT_HANDLER_SERVER_PROTOCOL}://${GLOBAL_DEPLOYMENT_HANDLER_SERVER_NAME}:${GLOBAL_DEPLOYMENT_HANDLER_SERVER_PORT}
-${DR_ENDPOINT}                                      ${GLOBAL_DMAAP_DR_PROV_SERVER_PROTOCOL}://${GLOBAL_INJECTED_DMAAP_DR_PROV_IP_ADDR}:${GLOBAL_DMAAP_DR_PROV_SERVER_PORT}
-${DMAAP_BC_SERVER}                                  ${GLOBAL_BC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_BC_IP_ADDR}:${GLOBAL_BC_HTTPS_SERVER_PORT}
-${VES_HEALTH_CHECK_PATH}                            ${GLOBAL_DCAE_VES_HTTPS_PROTOCOL}://${GLOBAL_INJECTED_DCAE_VES_HOST}:${GLOBAL_DCAE_VES_HTTPS_SERVER_PORT}
-${MR_PUBLISH_TEMPLATE}                              mr/mr_publish.jinja
-${INVENTORY_ENDPOINT}                               /dcae-service-types
-${XNF_SFTP_BLUEPRINT_PATH}                          ${EXECDIR}/robot/assets/usecases/5gbulkpm/k8s-sftp.yaml
-${XNF_HTTPS_BLUEPRINT_PATH}                          ${EXECDIR}/robot/assets/usecases/5gbulkpm/k8s-https.yaml
-${BLUEPRINT_TEMPLATE_PATH}                          ${EXECDIR}/robot/assets/usecases/5gbulkpm/blueprintTemplate.json
-${DEPLOYMENT_ENDPOINT}                              dcae-deployments
-${MR_TOPIC_CHECK_PATH}                              /topics
-${DR_SUB_CHECK_PATH}                                /internal/prov
-${MR_TOPIC_URL_PATH}                                /events/org.onap.dmaap.mr.PERFORMANCE_MEASUREMENTS/CG1/C1
-${MR_TOPIC_URL_PATH_FOR_POST}                       /events/org.onap.dmaap.mr.PERFORMANCE_MEASUREMENTS
-${DMAAP_BC_MR_CLIENT_PATH}                          /webapi/mr_clients
-${DMAAP_BC_MR_CLUSTER_PATH}                         /webapi/mr_clusters
-${PMMAPPER_HEALTH_CHECK_PATH}                       /healthcheck
-${JSON_DATA_FILE}                                   ${EXECDIR}/robot/assets/usecases/5gbulkpm/Notification.json
-${VES_LISTENER_PATH}                                /eventListener/v7
-${PMMAPPER_SUB_ROLE_DATA}                           ${EXECDIR}/robot/assets/usecases/5gbulkpm/sub.json
-${PMMAPPER_MR_CLUSTER_DATA}                         ${EXECDIR}/robot/assets/usecases/5gbulkpm/mr_clusters.json
-${NEXUS3}                                           ${GLOBAL_INJECTED_NEXUS_DOCKER_REPO}
-${SET_KNOWN_HOSTS_FILE_PATH}                        kubectl set env deployment/$(kubectl get deployment -n onap | grep datafile | awk '{print $1}') KNOWN_HOSTS_FILE_PATH=/home/datafile/.ssh/known_hosts -n onap
-${CHECK_ENV_SET}                                    kubectl set env pod/$(kubectl get pod -n onap | grep datafile | awk '{print $1}') --list -n onap
-${GET_RSA_KEY}                                      kubectl exec $(kubectl get pod -n onap | grep sftpserver | awk '{print $1}') -n onap -- ssh-keyscan -t rsa sftpserver > /tmp/known_hosts
-${COPY_RSA_KEY}                                     kubectl cp /tmp/known_hosts $(kubectl get pod -n onap | grep datafile | awk '{print $1}'):/home/datafile/.ssh/known_hosts -n onap
-${CHECK_DFC_LOGS}                                   kubectl logs $(kubectl get pod -n onap | grep datafile | awk '{print $1}') -n onap --tail=4
-${EXPECTED_PRINT}                                   StrictHostKeyChecking is enabled but environment variable KNOWN_HOSTS_FILE_PATH is not set or points to not existing file
-${MONGO_BLUEPRINT_PATH}                             ${EXECDIR}/robot/assets/cmpv2/k8s-mongo.yaml
-${PNF_SIMULATOR_BLUEPRINT_PATH}                     ${EXECDIR}/robot/assets/cmpv2/k8s-pnf-simulator.yaml
-${MONGO_VES_CLIENT_BLUEPRINT_PATH}                  ${EXECDIR}/robot/assets/cmpv2/k8s-mongo-ves-client.yaml
-${VES_CLIENT_BLUEPRINT_PATH}                        ${EXECDIR}/robot/assets/cmpv2/k8s-ves-client.yaml
-${VES_INPUTS}                                       deployment/VesTlsCmpv2Inputs.jinja
-${pm_notification_event}                            dfc/notification.jinja
-${consul_change_event}                              dfc/consul.jinja
-${ves_client_single_event}=                         ves/pnf_simulator_single_event.jinja
-
-
-
-
-*** Keywords ***
-
-
-Check Next Event From Topic
-    [Documentation]
-    ...  This keyword checks if on MR topic there is no existing messageses.
-    ...  If there is no more messageses then it reports success and finish "Wait Until Keyword Succeeds  2 min  1 s  Check Next Event From Topic" step from "xNF PM File Validate" keyword
-    ...  In other case it triggers "Get Next Event From Topic".
-    ...  NOTE: Keyword "Get Next Event From Topic" will always fails in order to not finsh "Wait Until Keyword Succeeds  2 min  1 s  Check Next Event From Topic" step from "xNF PM File Validate" keyword
-    ${resp}=        Run MR Auth Get Request         ${MR_TOPIC_URL_PATH}     ${GLOBAL_DCAE_USERNAME}      ${GLOBAL_DCAE_PASSWORD}
-    Run keyword If  ${resp.text} == @{EMPTY}        Log                         Event is empty! There is no more events on topic!
-    ...     ELSE    Get Next Event From Topic       ${resp}
-
-Get Next Event From Topic
-    [Documentation]
-    ...  This keyword adds new events from MR topic to list ${all_event_json_list} in a recursive way and sets ${all_event_json_list} as a suite variable in order to be able to add new items/evnts in a next iteration
-    ...  NOTE: Keyword "Get Next Event From Topic" will always fails in order to not finish "Wait Until Keyword Succeeds  2 min  1 s  Check Next Event From Topic" step from "xNF PM File Validate" keyword
-    [Arguments]                 ${resp}
-    ${resp_list}=               Set Variable        ${resp.json()}
-    Log                         ${resp_list}
-    ${combained_list}=          Combine Lists       ${all_event_json_list}      ${resp_list}
-    ${all_event_json_list}=     Set Variable        ${combained_list}
-    Set Suite Variable 	        ${all_event_json_list}
-    Fail
-
-xNF PM File Validate
-    [Documentation]
-    ...  This keyword gathers all events from message router topic and validates if in recived data is present an expected string: "${expected_pm_str}" .
-    ...  Only in custom mode it saves a response as a json file "${PM_FILE}-${timestamp}.json" located in "${expected_event_json_path}"
-    [Arguments]                 ${bulk_pm_mode}                 ${expected_pm_str}              ${expected_event_json_path}
-    Run Keyword If              '${bulk_pm_mode}' == 'custom'   Set Log Level                   ${PM_LOG_LEVEL}
-    ${timestamp}=               Get Time                        epoch
-    ${resp}=                    Run MR Auth Get Request         ${MR_TOPIC_URL_PATH}            ${GLOBAL_DCAE_USERNAME}         ${GLOBAL_DCAE_PASSWORD}
-    Run keyword If              ${resp.text} == @{EMPTY}        Fail                            msg=Event is empty!
-    ${all_event_json_list}=     Set Variable                    ${resp.json()}
-    Set Suite Variable 	        ${all_event_json_list}
-    Wait Until Keyword Succeeds  2 min                          5 sec                           Check Next Event From Topic
-    ${all_event_json_string}=   Convert To String               ${all_event_json_list}
-    Should Contain              ${all_event_json_string}        ${expected_pm_str}
-    Run Keyword If              '${bulk_pm_mode}' == 'custom'   Print Evnets From Topic to JSON file        ${expected_event_json_path}     ${all_event_json_string}
-    Run Keyword If              '${bulk_pm_mode}' == 'custom'   Set Log Level                               TRACE
-
-Print Evnets From Topic to JSON file
-     [Arguments]                ${expected_event_json_path}         ${all_event_json_string}
-     ${str}=                    Replace String                      ${all_event_json_string}                '{          {
-     ${str2}=                   Replace String                      ${str}                                  }'          }
-     ${all_event_json_string}=  Replace String                      ${str2}                                 u{          {
-     ${json}=                   To Json                             ${all_event_json_string}                pretty_print=True
-     ${timestamp}=              Get Time                            epoch
-     Create File                ${expected_event_json_path}/${PM_FILE}-${timestamp}.json                    ${json}
-
-Topic Validate
-    [Arguments]                         ${value}
-    ${timestamp}=                       Get Current Date
-    ${dict}=                            Create Dictionary                           timestamp=${timestamp}
-    Templating.Create Environment       mr                                          ${GLOBAL_TEMPLATE_FOLDER}
-    ${data}=                            Templating.Apply Template                   mr                                  ${MR_PUBLISH_TEMPLATE}              ${dict}
-    ${resp}=                            Run MR Auth Post Request (User And Pass)    ${MR_TOPIC_URL_PATH_FOR_POST}       ${GLOBAL_DCAE_USERNAME}             ${GLOBAL_DCAE_PASSWORD}       ${data}
-    Should Be Equal As Strings          ${resp.status_code}                         200
-    ${resp}=                            Run MR Auth Get Request                     ${MR_TOPIC_URL_PATH}                ${GLOBAL_DCAE_USERNAME}             ${GLOBAL_DCAE_PASSWORD}
-    Should Contain                      ${resp.text}                                ${value}
-
-Send File Ready Event to VES Collector and Deploy all DCAE Applications
-    [Arguments]                                 ${pm_file}              ${file_format_type}             ${file_format_version}
-    Disable Warnings
-    Send File Ready Event to VES Collector      ${pm_file}              ${file_format_type}             ${file_format_version}
-    Setting Global Variables
-    Log To Console                              Deploying Data File Collector
-    Deploying Data File Collector
-    Log To Console                              Deploying 3GPP PM Mapper
-    Deploying 3GPP PM Mapper
-    Log To Console                              Deploying SFTP Server As xNF
-    Deploying SFTP Server As xNF
-    Checking PERFORMANCE_MEASUREMENTS Topic In Message Router
-    DR Bulk PM Feed Check
-    DR PM Mapper Subscriber Check
-    Log To Console                              Deploying VES collector with CMPv2 for bulkpm over https
-    Deploying VES collector with CMPv2 for bulkpm over https
-    Log To Console                              Deploying HTTPS server with correct CMPv2 certificates
-    Deploying HTTPS server with correct certificates
-    Log To Console                              Deploying HTTPS server with wrong CMPv2 certificates - wrong SAN-s
-    Deploying HTTPS server with wrong certificates - wrong SAN-s
-    Log To Console                              Deploying VES Client with CMPv2 certificates
-    Deploying VES Client with correct certificates
-    Log To Console                              Checking status of deployed applictions
-    Wait Until Keyword Succeeds                 5 min                                           20 sec                             Checking Status Of Deployed Applictions
-
-Usecase Teardown
-    Disable Warnings
-    Wait Until Keyword Succeeds         2 min                      20 sec                       Undeploy Service With Check                    datafile
-    Wait Until Keyword Succeeds         2 min                      20 sec                       Undeploy Service With Check                    pmmapper
-    Wait Until Keyword Succeeds         2 min                      20 sec                       Undeploy Service With Check                   sftpserver
-    Delete Blueprint From Inventory     ${serviceTypeId-Sftp}
-    Wait Until Keyword Succeeds         2 min                      20 sec                       Undeploy Service With Check                    ves-collector-for-bulkpm-over-https
-    Wait Until Keyword Succeeds         2 min                      20 sec                       Undeploy Service With Check                    https-server-dep
-    Delete Blueprint From Inventory     ${serviceTypeId-Https}
-    Wait Until Keyword Succeeds         2 min                      20 sec                       Undeploy Service With Check                    https-server-wrong-sans-dep
-    Delete Blueprint From Inventory     ${serviceTypeId-Https-wrong-sans}
-    Wait Until Keyword Succeeds         2 min                      20 sec                       Undeploy Service With Check                    mongo-dep-5gbulkpm
-    Wait Until Keyword Succeeds         2 min                      20 sec                       Undeploy Service With Check                    ves-rest-client-dep
-    Delete Blueprint From Inventory     ${serviceTypeIdMongo}
-    Delete Blueprint From Inventory     ${serviceTypeIdVesClient}
-
-
-Undeploy Service With Check
-    [Arguments]                          ${deployment_name}
-    ${resp}                              Undeploy Service               ${deployment_name}
-    Should Not Be Equal As Strings       ${resp.status_code}            400
-
-
-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
-    ${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}
-
-
-Send File Ready Event to VES Collector
-    [Arguments]                         ${pm_file}                          ${file_format_type}             ${file_format_version}
-    Disable Warnings
-    ${headers}=                         Create Dictionary                   content-type=application/json
-    ${fileready}=                       OperatingSystem.Get File            ${JSON_DATA_FILE}
-    ${auth}=                            Create List                         ${GLOBAL_DCAE_VES_USERNAME}     ${GLOBAL_DCAE_VES_PASSWORD}
-    ${session}=                         Create Session                      ves                             ${VES_HEALTH_CHECK_PATH}      auth=${auth}
-    ${resp}=                            Post Request                        ves                             ${VES_LISTENER_PATH}          data=${fileready}   headers=${headers}
-    Should Be Equal As Strings          ${resp.status_code}                 202
-    ${VES_FILE_READY_NOTIFICATION}      Set Variable                        {"event":{"commonEventHeader":{"version":"4.0.1","vesEventListenerVersion":"7.0.1","domain":"notification","eventName":"Noti_RnNode-Ericsson_FileReady","eventId":"FileReady_1797490e-10ae-4d48-9ea7-3d7d790b25e1","lastEpochMicrosec":8745745764578,"priority":"Normal","reportingEntityName":"otenb5309","sequence":0,"sourceName":"oteNB5309","startEpochMicrosec":8745745764578,"timeZoneOffset":"UTC+05.30"},"notificationFields":{"changeIdentifier":"PM_MEAS_FILES","changeType":"FileReady","notificationFieldsVersion":"2.0","arrayOfNamedHashMap":[{"name":"${pm_file}","hashMap":{"location":"sftp://bulkpm:bulkpm@sftpserver:22/upload/${pm_file}","compression":"gzip","fileFormatType":"${file_format_type}","fileFormatVersion":"${file_format_version}"}}]}}}
-    ${resp}=                            Post Request                        ves                             ${VES_LISTENER_PATH}          data=${VES_FILE_READY_NOTIFICATION}   headers=${headers}
-    Should Be Equal As Strings          ${resp.status_code}                 202
-
-Send File Ready Event to VES Collector Over VES Client
-    [Arguments]                     ${pm_file}                  ${file_format_type}             ${file_format_version}    ${https_server_host}   ${http_reposnse_code}
-    Disable Warnings
-    ${pm_event}                     Create Dictionary           https_server_host=${https_server_host}  pm_file=${pm_file}   fileFormatType=${file_format_type}   fileFormatVersion=${file_format_version}
-    Templating.Create Environment   pm                          ${GLOBAL_TEMPLATE_FOLDER}
-    ${event}=                       Templating.Apply Template   pm                              ${pm_notification_event}   ${pm_event}
-    ${ves_client_endpoint}=         Set Variable                http://ves-client:5000
-    ${ves_url}=                     Set Variable                ${GLOBAL_DCAE_VES_HTTPS_PROTOCOL}://dcae-ves-collector-for-bulkpm-over-https:${GLOBAL_DCAE_VES_HTTPS_SERVER_PORT}/eventListener/v7
-    ${single_event}=                Create Dictionary           event=${event}                  ves_url=${ves_url}
-    Templating.Create Environment   ves                         ${GLOBAL_TEMPLATE_FOLDER}
-    ${data}=                        Templating.Apply Template   ves                             ${ves_client_single_event}   ${single_event}
-    ${session}=                     Create Session              ves_client                      ${ves_client_endpoint}
-    ${headers}=                     Create Dictionary           Accept=application/json         Content-Type=application/json
-    ${post_resp}=                   Post Request                ves_client                      /simulator/event      data=${data}        headers=${headers}
-    Log                             PM notification ${data}
-    Should Be Equal As Strings      ${post_resp.status_code}    ${http_reposnse_code}
-
-Upload PM Files to xNF SFTP Server
-    [Arguments]                         ${pm_file_path}                   ${bulk_pm_mode}
-    Open Connection                     sftpserver
-    Login                               bulkpm                             bulkpm
-    ${epoch}=                           Get Current Date                   result_format=epoch
-    ${pm_file} =  Run Keyword If        "${bulk_pm_mode}" == "custom"      Fetch From Right                   ${pm_file_path}               marker=/
-    ...                     ELSE                                           Set Variable                        A${epoch}.xml.gz
-    Put File                            ${pm_file_path}                    upload/${pm_file}
-    [Return]  ${pm_file}
-
-Upload PM Files to xNF HTTPS Server
-    [Arguments]                         ${pm_file_path}                     ${bulk_pm_mode}                     ${https_server}
-    ${epoch}=                           Get Current Date                    result_format=epoch
-    ${pm_file} =  Run Keyword If        "${bulk_pm_mode}" == "custom"       Fetch From Right                   ${pm_file_path}               marker=/
-    ...                     ELSE                                            Set Variable                       A${epoch}.xml.gz
-    Copy File                           ${pm_file_path}                     tmp/${pm_file}
-    ${fileData}=                        Get Binary File                     tmp/${pm_file}
-    ${file_part}=                       Create List                         ${pm_file}                         ${fileData}                   application/octet-stream
-    ${fileParts}=                       Create Dictionary
-    Set to Dictionary                   ${fileParts}                        uploaded_file=${file_part}
-    ${auth}=                            Create List                         demo                                demo123456!
-    ${session}=                         Create Session                      https                               http://${https_server}:80   auth=${auth}
-    ${resp}=                            Post Request                        https                               /upload.php                 files=${fileParts}
-    Should Be Equal As Strings          ${resp.status_code}                 200
-    [Return]                            ${pm_file}
-
-Check Given Print In DFC Log
-    [Arguments]                         ${check_dfc_logs}
-    ${dfc_logs}=                        Run Given Command On DFC Container                                      ${CHECK_DFC_LOGS}
-    Should Contain                      ${dfc_logs}                                                             HostKey has been changed
-
-Run Given Command On DFC Container
-    [Arguments]                         ${user_command}
-    ${run_command} =                    Run And Return Rc And Output        ${user_command}
-    ${command_output} =                 Set Variable                        ${run_command[1]}
-    ${regexp_matches} =                 Get Regexp Matches                  ${command_output}                   .*(\\s|\\[)+(.+-datafile-collector).*  2
-    ${dfc_container_name} =             Set Variable                        ${regexp_matches[0]}
-    ${new_command} =                    Set Variable                        ${user_command} ${dfc_container_name}
-    ${command_output} =                 Run And Return Rc And Output        ${new_command}
-    Should Be Equal As Integers         ${command_output[0]}                0
-    ${log} =                            Set Variable                        ${command_output[1]}
-    [Return]                            ${log}
-
-Check Known Hosts In Env
-    [Arguments]                         ${CHECK_KNOWN_HOSTS}
-    ${check} =                          Run And Return Rc And Output        ${CHECK_KNOWN_HOSTS}
-    Should Be Equal As Integers         ${check[0]}                         0
-    ${env} =                            Set Variable                        ${check[1]}
-    ${string_matches} =                 Get Lines Containing String         ${env}                              KNOWN_HOSTS_FILE_PATH=/home/datafile/.ssh/known_host  case_insensitive=True
-    ${output} =                         Should Not Be Empty                 ${string_matches}
-    [Return]                            ${output}
-
-Deploying Data File Collector
-    ${resp}=                            Get Blueprint From Inventory       k8s-datafile
-    ${json}=                            Set Variable                       ${resp.json()}
-    ${serviceTypeId-Dfc}                Set Variable                       ${json['items'][0]['typeId']}
-    ${image}                            Get Regexp Matches                 ${json['items'][0]['blueprintTemplate']}             nexus3(.)*?(?=\\")
-    ${image}                            Replace String                     ${image}[0]      nexus3.onap.org:10001               ${NEXUS3}
-    ${deployment_data}=                 Set Variable                       {"serviceTypeId": "${serviceTypeId-Dfc}", "inputs": {"tag_version": "${image}", "external_cert_use_external_tls": true}}
-    Deploy Service                      ${deployment_data}                 datafile                                            4 minutes
-
-Deploying 3GPP PM Mapper
-    ${clusterdata}=                     OperatingSystem.Get File           ${PMMAPPER_MR_CLUSTER_DATA}
-    ${headers}=                         Create Dictionary                  content-type=application/json
-    ${session}=                         Create Session                     dmaapbc                          ${DMAAP_BC_SERVER}
-    ${resp}=                            Post Request                       dmaapbc                          ${DMAAP_BC_MR_CLUSTER_PATH}          data=${clusterdata}   headers=${headers}
-    ${resp}=                            Get Blueprint From Inventory       k8s-pm-mapper
-    ${json}=                            Set Variable                       ${resp.json()}
-    ${serviceTypeId-Pmmapper}           Set Variable                       ${json['items'][0]['typeId']}
-    ${image}                            Get Regexp Matches                 ${json['items'][0]['blueprintTemplate']}             nexus3(.)*?(?=\')
-    ${image}                            Replace String                     ${image}[0]      nexus3.onap.org:10001               ${NEXUS3}
-    ${deployment_data}=                 Set Variable                       {"inputs":{"client_password": "${GLOBAL_DCAE_PASSWORD}", "tag_version": "${image}"},"serviceTypeId": "${serviceTypeId-Pmmapper}"}
-    ${pmMapperOperationId}=             Deploy Service                      ${deployment_data}                 pmmapper                        check_deployment_status=false
-    Set Global Variable                 ${pmMapperOperationId}
-
-Deploying SFTP Server As xNF
-    ${serviceTypeId-Sftp}               Load Blueprint To Inventory        ${XNF_SFTP_BLUEPRINT_PATH}              sftp
-    Set Global Variable                 ${serviceTypeId-Sftp}
-    ${deployment_data}=                 Set Variable                       {"serviceTypeId": "${serviceTypeId-Sftp}"}
-    ${sftpServerOperationId}=           Deploy Service                      ${deployment_data}                 sftpserver                        check_deployment_status=false
-    Set Global Variable                 ${sftpServerOperationId}
-
-Deploying HTTPS server with correct certificates
-    ${serviceTypeId-Https}              Load Blueprint To Inventory        ${XNF_HTTPS_BLUEPRINT_PATH}              https
-    Set Global Variable                 ${serviceTypeId-Https}
-    ${deployment_data}=                 Set Variable                       {"serviceTypeId": "${serviceTypeId-Https}"}
-    ${resp}=                            Get Blueprint From Inventory       https
-    ${json}=                            Set Variable                       ${resp.json()}
-    ${image}                            Get Regexp Matches                 ${json['items'][0]['blueprintTemplate']}               nexus3(.)*?(?=\')
-    ${image}                            Replace String                     ${image}[0]      nexus3.onap.org:10001                 ${NEXUS3}
-    ${deployment_data}=                 Set Variable                       {"serviceTypeId": "${serviceTypeId-Https}", "inputs": {"tag_version": "${image}", "service_component_type": "https-server", "service_component_name_override": "https-server", "external_cert_sans": "https-server"}}
-    ${httpsServerOperationId}=          Deploy Service                      ${deployment_data}                 https-server-dep                  check_deployment_status=false
-    Set Global Variable                 ${httpsServerOperationId}
-
-Deploying HTTPS server with wrong certificates - wrong SAN-s
-    ${serviceTypeId-Https-wrong-sans}              Load Blueprint To Inventory        ${XNF_HTTPS_BLUEPRINT_PATH}              https-wrong-sans
-    Set Global Variable                 ${serviceTypeId-Https-wrong-sans}
-    ${deployment_data}=                 Set Variable                       {"serviceTypeId": "${serviceTypeId-Https-wrong-sans}"}
-    ${resp}=                            Get Blueprint From Inventory       https-wrong-sans
-    ${json}=                            Set Variable                       ${resp.json()}
-    ${image}                            Get Regexp Matches                 ${json['items'][0]['blueprintTemplate']}               nexus3(.)*?(?=\')
-    ${image}                            Replace String                     ${image}[0]      nexus3.onap.org:10001                 ${NEXUS3}
-    ${deployment_data}=                 Set Variable                       {"serviceTypeId": "${serviceTypeId-Https-wrong-sans}", "inputs": {"tag_version": "${image}", "service_component_type": "https-server-wrong-sans", "service_component_name_override": "https-server-wrong-sans", "external_cert_sans": "wrong-cert"}}
-    ${httpsServerWrongSansOperationId}=        Deploy Service                      ${deployment_data}                 https-server-wrong-sans-dep                   check_deployment_status=false
-    Set Global Variable                 ${httpsServerWrongSansOperationId}
-
-Deploying VES Client with correct certificates
-    ${serviceTypeIdMongo}               Load Blueprint To Inventory        ${MONGO_VES_CLIENT_BLUEPRINT_PATH}   mongo-5g-bulk-pm
-    ${serviceTypeIdVesClient}           Load Blueprint To Inventory        ${VES_CLIENT_BLUEPRINT_PATH}         ves-rest-client
-    Set Suite Variable                  ${serviceTypeIdMongo}
-    Set Suite Variable                  ${serviceTypeIdVesClient}
-    ${deployment_data}=                 Set Variable                       {"serviceTypeId": "${serviceTypeIdMongo}", "inputs": {"service_component_type": "mongo-ves-client", "service_component_name_override": "mongo-ves-client"}}
-    Deploy Service                      ${deployment_data}                 mongo-dep-5gbulkpm                             2 minutes
-    ${resp}=                            Get Blueprint From Inventory       ves-rest-client
-    ${json}=                            Set Variable                       ${resp.json()}
-    ${image}                            Get Regexp Matches                 ${json['items'][0]['blueprintTemplate']}               nexus3(.)*?(?=\')
-    ${image}                            Replace String                     ${image}[0]      nexus3.onap.org:10001                 ${NEXUS3}
-    ${deployment_data}=                 Set Variable                       {"serviceTypeId": "${serviceTypeIdVesClient}", "inputs": {"tag_version": "${image}", "service_component_type": "ves-client", "service_component_name_override": "ves-client"}}
-    ${vesRestClientOperationId}=        Deploy Service                      ${deployment_data}                 ves-rest-client-dep                   check_deployment_status=false
-    Set Global Variable                 ${vesRestClientOperationId}
-
-Deploying VES collector with CMPv2 for bulkpm over https
-    ${resp}=                            Get Blueprint From Inventory       k8s-ves
-    ${json}=                            Set Variable                       ${resp.json()}
-    ${serviceTypeIdVes}                 Set Variable                       ${json['items'][0]['typeId']}
-    ${image}                            Get Regexp Matches                 ${json['items'][0]['blueprintTemplate']}             nexus3(.)*?(?=\")
-    ${image}                            Replace String                     ${image}[0]      nexus3.onap.org:10001               ${NEXUS3}
-    ${arguments}=                       Create Dictionary                  serviceTypeId=${serviceTypeIdVes}
-    Set To Dictionary                   ${arguments}                       image                                                ${image}
-    Set To Dictionary                   ${arguments}                       external_port_tls                                    32419
-    Set To Dictionary                   ${arguments}                       service_component_name_override                      dcae-ves-collector-for-bulkpm-over-https
-    Set To Dictionary                   ${arguments}                       external_cert_sans                                   dcae-ves-collector-for-bulkpm-over-https,ves-collector-cmpv2-cert,ves-cmpv2-cert
-    Templating.Create Environment       deployment                         ${GLOBAL_TEMPLATE_FOLDER}
-    ${deployment_data}=                 Templating.Apply Template          deployment                                           ${VES_INPUTS}            ${arguments}
-    ${vesCollectorForBulkpmOverHttpsOperationId}=  Deploy Service                      ${deployment_data}                 ves-collector-for-bulkpm-over-https                  check_deployment_status=false
-    Set Global Variable                 ${vesCollectorForBulkpmOverHttpsOperationId}
-
-
-Checking Status Of Deployed Applictions
-    ${statusDict}=                          Create Dictionary
-    ${status} 	                            ${value} =          Run Keyword And Ignore Error 	        Deployment Status                   pmmapper                                            ${pmMapperOperationId}
-    Set To Dictionary                       ${statusDict}       pmmapper                                ${status}
-    ${status} 	                            ${value} =          Run Keyword And Ignore Error 	        Deployment Status                   ves-rest-client-dep                                 ${vesRestClientOperationId}
-    Set To Dictionary                       ${statusDict}       ves-rest-client-dep                     ${status}
-    ${status} 	                            ${value} =          Run Keyword And Ignore Error 	        Deployment Status                   ves-collector-for-bulkpm-over-https                 ${vesCollectorForBulkpmOverHttpsOperationId}
-    Set To Dictionary                       ${statusDict}       ves-collector-for-bulkpm-over-https     ${status}
-    ${status} 	                            ${value} =          Run Keyword And Ignore Error 	        Deployment Status                   https-server-dep                                    ${httpsServerOperationId}
-    Set To Dictionary                       ${statusDict}       https-server-dep                        ${status}
-    ${status} 	                            ${value} =          Run Keyword And Ignore Error 	        Deployment Status                   https-server-wrong-sans-dep                         ${httpsServerWrongSansOperationId}
-    Set To Dictionary                       ${statusDict}       https-server-wrong-sans-dep             ${status}
-    Dictionary Should Not Contain Value     ${statusDict}       FAIL
-
-Checking PERFORMANCE_MEASUREMENTS Topic In Message Router
-    ${headers}=                         Create Dictionary                  content-type=application/json
-    ${subdata}=                         OperatingSystem.Get File           ${PMMAPPER_SUB_ROLE_DATA}
-    ${session}=                         Create Session                     dmaapbc                          ${DMAAP_BC_SERVER}
-    ${resp}=                            Post Request                       dmaapbc                          ${DMAAP_BC_MR_CLIENT_PATH}      data=${subdata}        headers=${headers}
-    Wait Until Keyword Succeeds         5 minute                           5 sec                            Topic Validate                  success
-    ${resp}=                            Run MR Get Request                 ${MR_TOPIC_CHECK_PATH}
-    Should Be Equal As Strings          ${resp.status_code}                200
-    ${topics}=                          Set Variable                       ${resp.json().get('topics')}
-    List Should Contain Value           ${topics}                          org.onap.dmaap.mr.PERFORMANCE_MEASUREMENTS
-    ${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
-
-DR Bulk PM Feed Check
-    ${resp}=                            Run DR Get Request                  ${DR_SUB_CHECK_PATH}
-    Should Contain                      ${resp.text}                        bulk_pm_feed
-
-DR PM Mapper Subscriber Check
-    ${resp}=                            Run DR Get Request                  ${DR_SUB_CHECK_PATH}
-    Should Contain                      ${resp.text}                        https://dcae-pm-mapper:8443/delivery
-
-Setting KNOWN_HOSTS_FILE_PATH Environment Variable in DFC
-    ${rc}=                             Run and Return RC                   ${SET_KNOWN_HOSTS_FILE_PATH}
-    Should Be Equal As Integers        ${rc}                               0
-    Wait Until Keyword Succeeds        5 min                               10s               Check Known Hosts In Env             ${CHECK_ENV_SET}
-    ${rc}=                             Run and Return RC                   ${GET_RSA_KEY}
-    Should Be Equal As Integers        ${rc}                               0
-    ${rc}=                             Run and Return RC                   ${COPY_RSA_KEY}
-    Should Be Equal As Integers        ${rc}                               0
-
-Uploading PM Files to xNF SFTP Server
-    ${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}
-
-Uploading PM Files to xNF HTTPS Server
-    [Arguments]                         ${https-server_host}
-    ${pm_file}=                         Upload PM Files to xNF HTTPS Server     ${GLOBAL_TEST_VARIABLES["PM_FILE_PATH"]}    ${BULK_PM_MODE}     ${https-server_host}
-    Set Global Variable                 ${PM_FILE}                              ${pm_file}
-
-Sending File Ready Event to VES Collector
-    Send File Ready Event to VES Collector  ${PM_FILE}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_TYPE"]}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_VERSION"]}
-
-Sending File Ready Event to VES Collector Over VES Client
-    [Arguments]  ${https-server_host}
-    Send File Ready Event to VES Collector Over VES Client  ${PM_FILE}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_TYPE"]}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_VERSION"]}    ${https-server_host}   202
-
-Verifying 3GPP Perf VES Content On PERFORMANCE_MEASUREMENTS Topic
-    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"]}
-
-Changing SFTP Server RSA Key in DFC
-    ${get_known_hosts_file}=          OperatingSystem.Get File  /tmp/known_hosts
-    ${change_rsa_key}=                Replace String            ${get_known_hosts_file}        A  a
-    Create File                       /tmp/known_hosts          ${change_rsa_key}
-    ${rc}=                            Run and Return RC         ${COPY_RSA_KEY}
-    Should Be Equal As Integers       ${rc}                     0
-
-Checking DFC Logs After KNOWN_HOSTS_FILE_PATH Env Variable Added
-    ${dfc_logs}=                     Run Given Command On DFC Container      ${CHECK_DFC_LOGS}
-    Should Not Contain               ${dfc_logs}                             ${EXPECTED_PRINT}
-
-Checking DFC Logs After SFTP Server RSA Key Changed
-    Wait Until Keyword Succeeds         5 min  30 sec            Check Given Print In DFC LOG  ${CHECK_DFC_LOGS}
-
-Check DFC logs
-    [Arguments]  ${DFC_LOG_CHECK}
-    ${rc} =                                    Run and Return RC                   ${DFC_LOG_CHECK}
-    Should Be Equal As Integers                ${rc}                               0
-
-Change DFC httpsHostnameVerify configuration in Consul
-    [Documentation]     Changes DFC httpsHostnameVerify config.
-    [Arguments]                     ${httpsHostnameVerify}
-    ${httpsHostnameVerify_conf}     Create Dictionary               httpsHostnameVerify=${httpsHostnameVerify}
-    Templating.Create Environment   pm                              ${GLOBAL_TEMPLATE_FOLDER}
-    ${event}=                       Templating.Apply Template       pm                              ${consul_change_event}      ${httpsHostnameVerify_conf}
-    ${rc} 	${container_name} = 	Run and Return RC and Output 	kubectl get pods -n onap | grep datafile-collector | awk '{print $1}' | grep -v NAME | awk -F'-' '{print $2}'
-    Should Be Equal As Integers 	${rc} 	                        0
-    ${resp}=                        Run Consul Put Request          /v1/kv/${container_name}-datafile-collector?dc=dc1          ${event}
-    Should Be Equal As Strings      ${resp.status_code}             200
-    ${rc} = 	                    Run and Return RC 	            kubectl delete pods -n onap $(kubectl get pods -n onap | grep datafile-collector | awk '{print $1}' | grep -v NAME)
-    Should Be Equal As Integers 	${rc} 	                        0
-    Wait Until Keyword Succeeds         60 sec          5 sec       Check DFC logs                  kubectl logs -n onap $(kubectl get pods -n onap | grep datafile-collector | awk '{print $1}' | grep -v NAME) ${container_name}-datafile-collector
-