blob: 04e7e5d2f5819602823326b2d90a3bc60ecc5d62 [file] [log] [blame]
marekpl503647c2018-10-24 14:33:25 +02001*** Settings ***
marekplc78a7e42019-08-06 18:08:00 +02002Documentation Template contains stuff for HV-VES use case.
3Library OperatingSystem
4Library RequestsLibrary
5Library BuiltIn
6Library Collections
7Library ONAPLibrary.Utilities
DR695H27426332019-05-21 11:26:28 -04008Library String
DR695H02293ad2019-06-13 17:24:01 -04009Library ONAPLibrary.Kafka
DR695H27426332019-05-21 11:26:28 -040010Resource ../mr_interface.robot
marekpl503647c2018-10-24 14:33:25 +020011
12*** Variables ***
DR695H9d810d02019-06-18 17:16:25 -040013${HVVES_MESSAGE} \xaa\x01\x00\x00\x00\x00\x00\x01\x00\x00\x01'\n\x94\x02\n\x0esample-version\x12\x08perf3gpp\x18\x01 \x01*\nperf3GPP222\x11sample-event-name:\x11sample-event-type@\xf1\x9a\xfd\xdd\x05H\xf1\x9a\xfd\xdd\x05R\x15sample-nf-naming-codeZ\x16sample-nfc-naming-codeb\x15sample-nf-vendor-namej\x1asample-reporting-entity-idr\x1csample-reporting-entity-namez\x10sample-source-id\x82\x01\x0fsample-xnf-name\x8a\x01\tUTC+02:00\x92\x01\x057.0.2\x12\x0etest test test
marekplc78a7e42019-08-06 18:08:00 +020014${CA_CERT} /tmp/ca.pem
15${CLIENT_CERT} /tmp/client.pem
16${CLIENT_KEY} /tmp/client.key
marekpl503647c2018-10-24 14:33:25 +020017
Joanna Jeremiczd97e97c2021-09-01 16:03:41 +020018${PREV_CM_FILE} /tmp/prevCm.json
Krzysztof Kuzmicki359e3632022-05-05 12:10:40 +020019${CURRENT_CONFIG_FILE} /tmp/xz.yaml
Joanna Jeremicz9ffedfe2021-09-07 12:53:46 +020020${COPY_CURRENT_CONFIG} kubectl -n onap cp $(kubectl -n onap get --no-headers pods -l app.kubernetes.io/name=dcae-hv-ves-collector --field-selector status.phase=Running -o custom-columns=NAME:.metadata.name):/app-config-input/..data/application_config.yaml ${CURRENT_CONFIG_FILE}
Joanna Jeremiczd97e97c2021-09-01 16:03:41 +020021${GET_TRUSTSTORE_PASS_PATH} cat ${CURRENT_CONFIG_FILE} | grep security.keys.trustStorePasswordFile
Joanna Jeremicz9ffedfe2021-09-07 12:53:46 +020022${TEST_TRUSTSTORE_PASS_PATH} security.keys.trustStorePasswordFile: /dev/null
Joanna Jeremiczd97e97c2021-09-01 16:03:41 +020023${TEST_CONFIG_YAML_PATH} ${EXECDIR}/robot/assets/dcae/hvves_test_config.yaml
Joanna Jeremicz109764d2021-09-13 08:03:43 +020024${GET_CM_NAME} kubectl -n onap get --no-headers cm -l app.kubernetes.io/name=dcae-hv-ves-collector -o custom-columns=NAME:.metadata.name | grep application-config-configmap
Krzysztof Kuzmicki359e3632022-05-05 12:10:40 +020025${KAFKA_GET_PASSWORD} kubectl -n onap get secret strimzi-kafka-admin -o jsonpath="{.data.password}" | base64 --decode
Joanna Jeremiczd97e97c2021-09-01 16:03:41 +020026
marekpl503647c2018-10-24 14:33:25 +020027*** Keywords ***
marekplf9898902019-05-14 15:14:51 +020028Check Message Router Api
marekpl615214f2019-05-07 17:03:56 +020029 [Documentation] Checks message via message router API.
marekplf9898902019-05-14 15:14:51 +020030 [Arguments] ${message_router} ${message_router_port} ${topic}
DR695H0ca56d12019-05-14 11:48:20 -040031 ${session}= Create Session session http://${message_router}:${message_router_port}/events
32 ${resp}= Get Request session /${topic}/1/1
33 Run Keyword If 400 <= ${resp.status_code} < 500 Log Topic ${topic} does not exist.
34 Run Keyword If 200 <= ${resp.status_code} < 300 Log Topic ${topic} exists.
marekpl503647c2018-10-24 14:33:25 +020035
marekpl62c91a92018-10-29 12:13:58 +010036Check If Topic Exists
37 [Documentation] Checks if specific topic exists on kafka.
marekpl615214f2019-05-07 17:03:56 +020038 [Arguments] ${message_router} ${message_router_port} ${topic}
DR695H0ca56d12019-05-14 11:48:20 -040039 ${session}= Create Session session http://${message_router}:${message_router_port}/topics
40 ${resp}= Get Request session /
mrichomme3256fa22020-03-09 11:23:35 +010041 ${value}= Catenate ${resp.json()['topics']}
marekpl615214f2019-05-07 17:03:56 +020042 Should Contain ${value} ${topic}
marekpl62c91a92018-10-29 12:13:58 +010043
marekplc78a7e42019-08-06 18:08:00 +020044Send Message
45 [Documentation] Sends message to HV-VES over TCP.
marekpl503647c2018-10-24 14:33:25 +020046 [Arguments] ${hvves_server_ip} ${hvves_server_port}
marekplfe131252019-07-22 17:06:35 +020047 ${msg}= Convert To Bytes ${HVVES_MESSAGE}
Krzysztof Kuzmicki55d91bc2022-03-17 15:00:46 +010048 Wait Until Keyword Succeeds 300 sec 15 sec Send Binary Data ${hvves_server_ip} ${hvves_server_port} ${msg}
marekpl503647c2018-10-24 14:33:25 +020049
marekplc78a7e42019-08-06 18:08:00 +020050Send Message Over Ssl
51 [Documentation] Sends message to HV-VES over TCP wih SSL enabled.
52 [Arguments] ${hvves_server_ip} ${hvves_server_port}
53 ${msg}= Convert To Bytes ${HVVES_MESSAGE}
Krzysztof Kuzmicki55d91bc2022-03-17 15:00:46 +010054 Wait Until Keyword Succeeds 300 sec 15 sec Send Binary Data ${hvves_server_ip} ${hvves_server_port} ${msg} ${TRUE} ${TRUE} ${CA_CERT} ${CLIENT_CERT} ${CLIENT_KEY}
marekplc78a7e42019-08-06 18:08:00 +020055
marekpl503647c2018-10-24 14:33:25 +020056Decode Last Message From Topic
57 [Documentation] Decode last message from Kafka topic.
DR695H9d810d02019-06-18 17:16:25 -040058 [Arguments] ${kafka_server} ${kafka_port} ${kafka_topic} ${username} ${password}
marekplc78a7e42019-08-06 18:08:00 +020059 Connect kafka ${kafka_server}:${kafka_port} ${username} ${password}
60 ${msg}= Consume kafka ${kafka_topic}
marekpl503647c2018-10-24 14:33:25 +020061 [Return] ${msg}
62
Krzysztof Kuzmicki359e3632022-05-05 12:10:40 +020063Decode Last Message From Topic STRIMZI User
64 [Documentation] Decode last message from Kafka topic using STRIMZI User.
65 [Arguments] ${kafka_server} ${kafka_topic} ${username}
66 ${command_output} = Run And Return Rc And Output ${KAFKA_GET_PASSWORD}
67 Should Be Equal As Integers ${command_output[0]} 0
68 ${password} Set Variable ${command_output[1]}
69 Connect kafka ${kafka_server} ${username} ${password} SCRAM-SHA-512
70 ${msg}= Consume kafka ${kafka_topic}
71 [Return] ${msg}
72
Joanna Jeremiczd97e97c2021-09-01 16:03:41 +020073Set Test Config
marekplc78a7e42019-08-06 18:08:00 +020074 [Documentation] Changes HV-VES config.
Krzysztof Kuzmicki5eb73232022-05-06 14:07:52 +020075 [Arguments] ${kafka_server}
76 ${SED}= Set Variable sed -i 's/placeholder/${kafka_server}/g' ${TEST_CONFIG_YAML_PATH}
77 Run ${SED}
Joanna Jeremiczd97e97c2021-09-01 16:03:41 +020078 ${TEST_CONFIG}= Get File ${TEST_CONFIG_YAML_PATH} encoding=UTF-8
Joanna Jeremicz9ffedfe2021-09-07 12:53:46 +020079 Save Configuration From Config Map
Joanna Jeremiczd97e97c2021-09-01 16:03:41 +020080 Set Environment Variable TEST_CONFIG ${TEST_CONFIG}
Joanna Jeremicz9ffedfe2021-09-07 12:53:46 +020081 ${cm_name} = Get Config Map Name
82 ${rc} = Run and Return RC kubectl -n onap patch cm ${cm_name} --type strategic -p "%{TEST_CONFIG}"
Joanna Jeremiczd97e97c2021-09-01 16:03:41 +020083 Should Be Equal As Integers ${rc} 0
84
85 Wait Until Keyword Succeeds 2 min 5 sec Check If Config Is Applied ${TEST_TRUSTSTORE_PASS_PATH}
86 Sleep 5s
87
Joanna Jeremiczd97e97c2021-09-01 16:03:41 +020088Check If Config Is Applied
89 [Documentation] Checks if the config is applied.
90 [Arguments] ${truststore_pass_path}
Joanna Jeremiczd97e97c2021-09-01 16:03:41 +020091 ${rc} = Run and Return RC ${COPY_CURRENT_CONFIG}
92 Should Be Equal As Integers ${rc} 0
Joanna Jeremiczd97e97c2021-09-01 16:03:41 +020093 ${rc} ${current_trust_pass_path} = Run and Return RC and Output ${GET_TRUSTSTORE_PASS_PATH}
94 Should Be Equal As Integers ${rc} 0
Joanna Jeremiczd97e97c2021-09-01 16:03:41 +020095 Should Be Equal As Strings ${truststore_pass_path} ${current_trust_pass_path}
96
Joanna Jeremicz9ffedfe2021-09-07 12:53:46 +020097Save Configuration From Config Map
98 [Documentation] Saves current configuration from hv-ves config map in OLD_CONFIG_YAML env
99
100 ${cm_name} = Get Config Map Name
101 ${rc} ${prev_conf} = Run and Return RC and Output kubectl -n onap get cm ${cm_name} -o json
102 Should Be Equal As Integers ${rc} 0
103 Create File ${PREV_CM_FILE} ${prev_conf}
Joanna Jeremicz9ffedfe2021-09-07 12:53:46 +0200104 ${rc} ${prev_conf_yaml} = Run and Return RC and Output kubectl -n onap get cm ${cm_name} -o jsonpath="{.data.application_config\\.yaml}"
105 Should Be Equal As Integers ${rc} 0
106 Set Environment Variable OLD_CONFIG_YAML ${prev_conf_yaml}
107
108Get Config Map Name
109 [Documentation] Retrieves HV-VES Config Map name
110
Joanna Jeremicz109764d2021-09-13 08:03:43 +0200111 ${rc} ${cm_name} = Run and Return RC and Output ${GET_CM_NAME}
Joanna Jeremicz9ffedfe2021-09-07 12:53:46 +0200112 Should Be Equal As Integers ${rc} 0
Joanna Jeremicz9ffedfe2021-09-07 12:53:46 +0200113 [Return] ${cm_name}
114
Joanna Jeremiczd97e97c2021-09-01 16:03:41 +0200115Set Old Config
116 [Documentation] Changes HV-VES config back to normal mode.
117
118 ${rc} = Run and Return RC kubectl -n onap replace --force -f ${PREV_CM_FILE}
119 Should Be Equal As Integers ${rc} 0
120
121 ${rc} ${old_trust_pass_path} = Run and Return RC and Output echo "%{OLD_CONFIG_YAML}" | grep security.keys.trustStorePasswordFile
122 Should Be Equal As Integers ${rc} 0
123
124 Remove File ${PREV_CM_FILE}
125 Remove File ${CURRENT_CONFIG_FILE}
126
127 Wait Until Keyword Succeeds 2 min 5 sec Check If Config Is Applied ${old_trust_pass_path}
128
129 Sleep 10s