[VES] Fix ves-collector test in ServiceMesh
[testsuite.git] / robot / resources / dcae / ves_interface.robot
1 Documentation     The main interface for interacting with VES Collector
2 Library               RequestsLibrary
3 Library           OperatingSystem
4 Library           String
5
6 *** Variables ***
7 ${INVENTORY_SERVER}                                 ${GLOBAL_INVENTORY_SERVER_PROTOCOL}://${GLOBAL_INVENTORY_SERVER_NAME}:${GLOBAL_INVENTORY_SERVER_PORT}
8 ${DEPLOYMENT_SERVER}                                ${GLOBAL_DEPLOYMENT_HANDLER_SERVER_PROTOCOL}://${GLOBAL_DEPLOYMENT_HANDLER_SERVER_NAME}:${GLOBAL_DEPLOYMENT_HANDLER_SERVER_PORT}
9 ${DR_ENDPOINT}                                      ${GLOBAL_DMAAP_DR_PROV_SERVER_PROTOCOL}://${GLOBAL_INJECTED_DMAAP_DR_PROV_IP_ADDR}:${GLOBAL_DMAAP_DR_PROV_SERVER_PORT}
10 ${DMAAP_BC_SERVER}                                  ${GLOBAL_BC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_BC_IP_ADDR}:${GLOBAL_BC_HTTPS_SERVER_PORT}
11 ${VES_HEALTH_CHECK_PATH}                            ${GLOBAL_DCAE_VES_HTTPS_PROTOCOL}://${GLOBAL_INJECTED_DCAE_VES_HOST}:${GLOBAL_DCAE_VES_HTTPS_SERVER_PORT}
12 ${MR_PUBLISH_TEMPLATE}                              mr/mr_publish.jinja
13 ${ves7_valid_json}                                  ${EXECDIR}/robot/assets/dcae/ves7_valid.json
14 ${FaultSupervision_json}                            ${EXECDIR}/robot/assets/dcae/ves_stdnDefined_3GPP-FaultSupervision.json
15 ${Heartbeat_json}                                   ${EXECDIR}/robot/assets/dcae/ves_stdnDefined_3GPP-Heartbeat.json
16 ${PerformanceAssurance_json}                        ${EXECDIR}/robot/assets/dcae/ves_stdnDefined_3GPP-PerformanceAssurance.json
17 ${Provisioning_json}                                ${EXECDIR}/robot/assets/dcae/ves_stdnDefined_3GPP-Provisioning.json
18 ${MR_TOPIC_CHECK_PATH}                              /topics
19 ${DR_SUB_CHECK_PATH}                                /internal/prov
20 ${MR_TOPIC_URL_PATH}                                /events/unauthenticated.SEC_FAULT_OUTPUT/CG1/C1
21 ${MR_FAULTSUPERVISION_TOPIC_URL_PATH}               /events/unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT/CG1/C1
22 ${MR_HEARTBEAT_TOPIC_URL_PATH}                      /events/unauthenticated.SEC_3GPP_HEARTBEAT_OUTPUT/CG1/C1
23 ${MR_PERFORMANCEASSURANCE_TOPIC_URL_PATH}           /events/unauthenticated.SEC_3GPP_PERFORMANCEASSURANCE_OUTPUT/CG1/C1
24 ${MR_PROVISIONING_TOPIC_URL_PATH}                   /events/unauthenticated.SEC_3GPP_PROVISIONING_OUTPUT/CG1/C1
25 ${DMAAP_BC_MR_CLIENT_PATH}                          /webapi/mr_clients
26 ${DMAAP_BC_MR_CLUSTER_PATH}                         /webapi/mr_clusters
27 ${VES_LISTENER_PATH}                                /eventListener/v7
28
29 *** Keywords ***
30
31
32 Send Event to VES Collector
33     [Documentation]  keyword wich is used to send events through VES Collector Event Listener path
34     [Arguments]                         ${event}
35     ${headers}=                         Create Dictionary                   content-type=application/json
36     ${event_from_file}=                 OperatingSystem.Get File            ${event}
37     ${auth}=                            Create List                         ${GLOBAL_DCAE_VES_USERNAME}     ${GLOBAL_DCAE_VES_PASSWORD}
38     ${session}=                         Create Session                      ves                             ${VES_HEALTH_CHECK_PATH}      auth=${auth}
39     ${resp}=                            Post Request                        ves                             ${VES_LISTENER_PATH}          data=${event_from_file}   headers=${headers}
40     Should Be Equal As Strings          ${resp.status_code}                 202
41
42 Topic Validate
43     [Documentation]   Keyword checks content of DMAAP topic and evaluate it's content with desired value
44     [Arguments]                         ${topic_name}   ${expected_text}
45     ${timestamp}=                       Get Current Date
46     ${dict}=                            Create Dictionary                           timestamp=${timestamp}
47     Templating.Create Environment       mr                                          ${GLOBAL_TEMPLATE_FOLDER}
48     ${data}=                            Templating.Apply Template                   mr                                  ${MR_PUBLISH_TEMPLATE}              ${dict}
49     ${resp}=                            Run MR Get Request                          ${topic_name}
50     Should Contain                      ${resp.text}                                ${expected_text}
51
52 Send Event to VES & Validate Topic
53     [Documentation]   Keyword is a test template which alows to send event through VES Collector and check if ivent is routed to proper DMAAP topic
54     [Arguments]                         ${event}   ${topic_name}   ${expected_text}
55     Send Event to VES Collector         ${event}
56     Wait Until Keyword Succeeds  10x  1s   Topic Validate    ${topic_name}   ${expected_text}
57
58 Activate DMAAP Topics
59     [Documentation]   Currently first event routed to empty DMAAP topic is gone, so there is need to "activate" topics for testing pourposes
60     Wait Until Keyword Succeeds  10x  5s   Send Event to VES & Validate Topic      ${ves7_valid_json}   ${MR_TOPIC_URL_PATH}   Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion
61     Wait Until Keyword Succeeds  10x  5s   Send Event to VES & Validate Topic      ${FaultSupervision_json}   ${MR_FAULTSUPERVISION_TOPIC_URL_PATH}   ves_stdnDefined_3GPP-FaultSupervision
62     Wait Until Keyword Succeeds  10x  5s   Send Event to VES & Validate Topic      ${Heartbeat_json}   ${MR_HEARTBEAT_TOPIC_URL_PATH}   ves_stdnDefined_3GPP-Heartbeat
63     Wait Until Keyword Succeeds  10x  5s   Send Event to VES & Validate Topic      ${PerformanceAssurance_json}   ${MR_PERFORMANCEASSURANCE_TOPIC_URL_PATH}   ves_stdnDefined_3GPP-PerformanceAssurance
64     Wait Until Keyword Succeeds  10x  5s   Send Event to VES & Validate Topic      ${Provisioning_json}   ${MR_PROVISIONING_TOPIC_URL_PATH}   ves_stdnDefined_3GPP-Provisioning
65     Sleep   10s