*** Settings ***
-Documentation Template contains stuff for HV-VES use case.
-Library OperatingSystem
-Library RequestsLibrary
-Library Rammbock
-Library BuiltIn
-Library Collections
+Documentation Template contains stuff for HV-VES use case.
+Library OperatingSystem
+Library RequestsLibrary
+Library BuiltIn
+Library Collections
+Library ONAPLibrary.Utilities
+Library String
+Library ONAPLibrary.Kafka
+Resource ../mr_interface.robot
+Resource ../consul_interface.robot
*** Variables ***
-${hvves_message} 0x0a94020a0e73616d706c652d76657273696f6e12087065726633677070180120012a0a70657266334750503232321173616d706c652d6576656e742d6e616d653a1173616d706c652d6576656e742d7479706540f19afddd0548f19afddd05521573616d706c652d6e662d6e616d696e672d636f64655a1673616d706c652d6e66632d6e616d696e672d636f6465621573616d706c652d6e662d76656e646f722d6e616d656a1a73616d706c652d7265706f7274696e672d656e746974792d6964721c73616d706c652d7265706f7274696e672d656e746974792d6e616d657a1073616d706c652d736f757263652d696482010f73616d706c652d786e662d6e616d658a01095554432b30323a3030920105372e302e32120e7465737420746573742074657374
-${hvves_kafka_topic} HV_VES_PERF3GPP
-${security_protocol} SASL_PLAINTEXT
-${sasl_mechanisms} PLAIN
+${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
+${HVVES_CONFIG_SSL} {"security.sslDisable": false, "logLevel": "INFO", "security.keys.trustStoreFile": "/tmp/ca.p12", "server.listenPort": 6061, "server.idleTimeoutSec": 300, "cbs.requestIntervalSec": 5, "streams_publishes": {"perf3gpp": {"type": "kafka", "aaf_credentials": {"username": "admin", "password": "admin_secret"}, "kafka_info": {"bootstrap_servers": "message-router-kafka:9092", "topic_name": "HV_VES_PERF3GPP_SSL"}}}, "security.keys.keyStoreFile": "/tmp/server.p12", "security.keys.trustStorePasswordFile": "/dev/null", "security.keys.keyStorePasswordFile": "/dev/null"}
+${HVVES_CONFIG} {"security.sslDisable": true, "logLevel": "INFO", "security.keys.trustStoreFile": "/tmp/ca.p12", "server.listenPort": 6061, "server.idleTimeoutSec": 300, "cbs.requestIntervalSec": 5, "streams_publishes": {"perf3gpp": {"type": "kafka", "aaf_credentials": {"username": "admin", "password": "admin_secret"}, "kafka_info": {"bootstrap_servers": "message-router-kafka:9092", "topic_name": "HV_VES_PERF3GPP"}}}, "security.keys.keyStoreFile": "/tmp/server.p12", "security.keys.trustStorePasswordFile": "/dev/null", "security.keys.keyStorePasswordFile": "/dev/null"}
+${CA_CERT} /tmp/ca.pem
+${CLIENT_CERT} /tmp/client.pem
+${CLIENT_KEY} /tmp/client.key
*** Keywords ***
Check Message Router Api
[Arguments] ${message_router} ${message_router_port} ${topic}
${session}= Create Session session http://${message_router}:${message_router_port}/topics
${resp}= Get Request session /
- ${value}= Catenate ${resp.json()['topics']}
+ ${value}= Catenate ${resp.json()['topics']}
Should Contain ${value} ${topic}
-Define WTP Protocol
- [Documentation] Defines Wire Transfer Protocol.
- New Protocol WireTransferProtocol
- u8 magic 0xAA
- u8 versionMajor 0x01
- u8 versionMinor 0x00
- u24 reserved 0x000000
- u16 payloadId 0x0001
- u32 payloadLength 0x00000127
- uint 295 payload ${hvves_message}
- End Protocol
+Send Message
+ [Documentation] Sends message to HV-VES over TCP.
+ [Arguments] ${hvves_server_ip} ${hvves_server_port}
+ ${msg}= Convert To Bytes ${HVVES_MESSAGE}
+ Send Binary Data ${hvves_server_ip} ${hvves_server_port} ${msg}
-Start HV-VES TCP Client And Send Message
- [Documentation] Starts HV-VES TCP client sends message to the collector.
+Send Message Over Ssl
+ [Documentation] Sends message to HV-VES over TCP wih SSL enabled.
[Arguments] ${hvves_server_ip} ${hvves_server_port}
- Start Tcp Client timeout=5 protocol=WireTransferProtocol
- Connect ${hvves_server_ip} ${hvves_server_port}
- New Message HvVesMessage protocol=WireTransferProtocol
- Client Sends Message
+ ${msg}= Convert To Bytes ${HVVES_MESSAGE}
+ Send Binary Data ${hvves_server_ip} ${hvves_server_port} ${msg} ${TRUE} ${TRUE} ${CA_CERT} ${CLIENT_CERT} ${CLIENT_KEY}
Decode Last Message From Topic
[Documentation] Decode last message from Kafka topic.
- [Arguments] ${kafka_server} ${kafka_port} ${kafka_topic} ${sec_protocol} ${mechanisms} ${username} ${password}
- ${msg}= Run kafkacat -C -b ${kafka_server}:${kafka_port} -t ${kafka_topic} -X security.protocol=${sec_protocol} -X sasl.mechanisms=${mechanisms} -X sasl.username=${username} -X sasl.password=${password} -D "" -o -1 -c 1 | protoc --decode_raw
+ [Arguments] ${kafka_server} ${kafka_port} ${kafka_topic} ${username} ${password}
+ Connect kafka ${kafka_server}:${kafka_port} ${username} ${password}
+ ${msg}= Consume kafka ${kafka_topic}
[Return] ${msg}
+Mode
+ [Documentation] Changes HV-VES config.
+ [Arguments] ${config}
+ ${resp}= Run Consul Put Request /v1/kv/dcae-hv-ves-collector?dc=dc1 ${config}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Sleep 10s