summaryrefslogtreecommitdiffstats
path: root/robot/resources/dmaap
diff options
context:
space:
mode:
authorefiacor <fiachra.corcoran@est.tech>2022-12-21 08:56:10 +0000
committerAndreas Geissler <andreas-geissler@telekom.de>2023-01-31 16:25:13 +0000
commit723a2af2407651d5176984321a462bfd8ede2c11 (patch)
treedec50cc42bf1c3ebe7ee7f6e4ceaadeb17c5f303 /robot/resources/dmaap
parent99507033a51c4dfbabc6372c29f43300947be5d6 (diff)
[DMAAP] Fix dmaap interface endpoints
Signed-off-by: efiacor <fiachra.corcoran@est.tech> Change-Id: I6ed81e4eebdeb4825926a3552b5dec2cd50129f2 Issue-ID: DMAAP-1573
Diffstat (limited to 'robot/resources/dmaap')
-rw-r--r--robot/resources/dmaap/bc_interface.robot35
-rwxr-xr-xrobot/resources/dmaap/dr_interface.robot23
-rw-r--r--robot/resources/dmaap/mr_interface.robot154
3 files changed, 212 insertions, 0 deletions
diff --git a/robot/resources/dmaap/bc_interface.robot b/robot/resources/dmaap/bc_interface.robot
new file mode 100644
index 00000000..b57c67d5
--- /dev/null
+++ b/robot/resources/dmaap/bc_interface.robot
@@ -0,0 +1,35 @@
+*** Settings ***
+Documentation The main interface for interacting with Bus Controller.
+Library RequestsLibrary
+
+Resource global_properties.robot
+
+*** Variables ***
+${BC_HEALTH_CHECK_PATH} /webapi/dmaap
+${DMAAP_BC_ENDPOINT} ${GLOBAL_BC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_BC_IP_ADDR}:${GLOBAL_BC_HTTPS_SERVER_PORT}
+
+
+*** Keywords ***
+Run BC Health Check With Basic Auth
+ [Documentation] Runs dmaap details check
+ ${resp}= Return dmaap details with basic auth ${BC_HEALTH_CHECK_PATH}
+ Should Be Equal As Strings ${resp.status_code} 200
+
+
+Return dmaap details with basic auth
+ [Documentation] Runs Bus Controller get details request with basic authentication
+ [Arguments] ${data_path}
+ ${auth}= Create List ${GLOBAL_BC_USERNAME} ${GLOBAL_BC_PASSWORD}
+ ${session}= Create Session bs ${DMAAP_BC_ENDPOINT} auth=${auth}
+ ${resp}= Get Request bs ${data_path}
+ Log Received response from bus controller ${resp.text}
+ [Return] ${resp}
+
+Delete MR topic
+ [Documentation] Runs Bus Controller to remove topic
+ [Arguments] ${data_path}
+ ${auth}= Create List ${GLOBAL_BC_USERNAME} ${GLOBAL_BC_PASSWORD}
+ ${session}= Create Session bs ${DMAAP_BC_ENDPOINT} auth=${auth}
+ ${resp}= Delete Request bs ${data_path}
+ Log Received response from bus controller ${resp.status_code}
+ [Return] ${resp} \ No newline at end of file
diff --git a/robot/resources/dmaap/dr_interface.robot b/robot/resources/dmaap/dr_interface.robot
new file mode 100755
index 00000000..b368ce94
--- /dev/null
+++ b/robot/resources/dmaap/dr_interface.robot
@@ -0,0 +1,23 @@
+*** Settings ***
+Documentation The main interface for interacting with Data-Router.
+Library RequestsLibrary
+
+Resource global_properties.robot
+
+*** Variables ***
+${DR_HEALTH_CHECK_PATH} /internal/fetchProv
+${DR_ENDPOINT} ${GLOBAL_DMAAP_DR_NODE_SERVER_PROTOCOL}://${GLOBAL_INJECTED_DMAAP_DR_NODE_IP_ADDR}:${GLOBAL_DMAAP_DR_NODE_SERVER_PORT}
+
+
+*** Keywords ***
+Run DR Health Check
+ [Documentation] Runs DR Health check
+ ${resp}= Run DR Get Request ${DR_HEALTH_CHECK_PATH}
+ Should Be Equal As Strings ${resp.status_code} 204
+
+Run DR Get Request
+ [Documentation] Runs DR Get request
+ [Arguments] ${data_path}
+ ${session}= Create Session session ${DR_ENDPOINT}
+ ${resp}= Get Request session ${data_path}
+ [Return] ${resp}
diff --git a/robot/resources/dmaap/mr_interface.robot b/robot/resources/dmaap/mr_interface.robot
new file mode 100644
index 00000000..f4c57cd2
--- /dev/null
+++ b/robot/resources/dmaap/mr_interface.robot
@@ -0,0 +1,154 @@
+*** Settings ***
+Documentation The main interface for interacting with Message router. It handles low level stuff like managing the http request library and message router required fields
+Library RequestsLibrary
+Library DateTime
+Library Process
+Library ONAPLibrary.JSON
+Library ONAPLibrary.Utilities
+Library ONAPLibrary.Templating WITH NAME Templating
+
+Resource global_properties.robot
+
+*** Variables ***
+${MR_HEALTH_CHECK_PATH} /topics
+${MR_PUB_HEALTH_CHECK_PATH} /events/TEST_TOPIC
+${MR_SUB_HEALTH_CHECK_PATH} /events/TEST_TOPIC/g1/c4?timeout=5000
+${MR_CREATE_TOPIC_PATH} /topics/create
+${MR_UPDATE_ACL_TOPIC_PATH} /topics/TEST_TOPIC_ACL/producers
+${MR_ENDPOINT} ${GLOBAL_MR_SERVER_PROTOCOL}://${GLOBAL_INJECTED_MR_IP_ADDR}:${GLOBAL_MR_SERVER_PORT}
+${MR_PUBLISH_TEMPLATE} mr/mr_publish.jinja
+${MR_PUT_ACL_TEMPLATE} mr/mr_put_acl.jinja
+
+
+*** Keywords ***
+Run MR Health Check
+ [Documentation] Runs MR Health check
+ ${resp}= Run MR Get Request ${MR_HEALTH_CHECK_PATH}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Should Contain ${resp.json()} topics
+
+Run MR PubSub Health Check
+ [Documentation] Runs MR PubSub Health check
+ #${resp}= Run MR Get Request ${MR_SUB_HEALTH_CHECK_PATH}
+ # topic may not be created which is a 400 error
+
+ ${resp}= Run MR Post Request ${MR_PUB_HEALTH_CHECK_PATH}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Should Contain ${resp.json()} serverTimeMs Failed to Write Data
+ ${resp}= Run MR Get Request ${MR_SUB_HEALTH_CHECK_PATH}
+ # Always Write twice to catch lost first message
+ ${resp}= Run MR Post Request ${MR_PUB_HEALTH_CHECK_PATH}
+ ${resp}= Run MR Get Request ${MR_SUB_HEALTH_CHECK_PATH}
+ # ${resp} is an array
+ Should Be Equal As Strings ${resp.status_code} 200
+ Should Contain ${resp.json()[0]} timestamp Failed to Read Data
+
+
+Run MR Update Topic Acl
+ [Documentation] Runs MR create topic and update producer credentials
+ #
+ # Testing to Delete a Topic:
+ # /opt/kafka/bin/kafka-topics.sh --zookeeper message-router-zookeeper:2181 --delete --topic <topic_name>
+ # /opt/kafka/bin/kafka-topics.sh --zookeeper message-router-zookeeper:2181 --delete --topic TEST_TOPIC_ACL
+ #
+ # Appears to not care if topic already exists with the POST / PUT method
+ #
+ ${dict}= Create Dictionary TOPIC_NAME=TEST_TOPIC_ACL
+ Templating.Create Environment mr ${GLOBAL_TEMPLATE_FOLDER}
+ ${data}= Templating.Apply Template mr ${MR_PUT_ACL_TEMPLATE} ${dict}
+ ${resp}= Run MR Auth Post Request ${MR_CREATE_TOPIC_PATH} iPIxkpAMI8qTcQj8 Ehq3WyT4bkif4zwgEbvshGal ${data}
+ #Log Update Owner for TEST_TOPIC_ACL
+ ${resp}= Run MR Auth Put Request ${MR_UPDATE_ACL_TOPIC_PATH}/iPIxkpAMI8qTcQj8 iPIxkpAMI8qTcQj8 Ehq3WyT4bkif4zwgEbvshGal ${data}
+ Should Be Equal As Strings ${resp.status_code} 200
+
+Run MR Auth Post Request
+ [Documentation] Runs MR Authenticated Post Request
+ [Arguments] ${data_path} ${id_key} ${secret_key} ${data}
+ ${current_time}= Get Time
+ ${time}= Evaluate datetime.datetime.today().replace(tzinfo=pytz.UTC).replace(microsecond=0).isoformat() modules=datetime,pytz
+ ${command}= Set Variable /bin/echo -n "${time}" | /usr/bin/openssl sha1 -hmac "${secret_key}" -binary | /usr/bin/openssl base64
+ ${result}= Run Process ${command} shell=True
+ ${signature}= Set Variable ${result.stdout}
+ ${xAuth}= Set Variable ${id_key}:${signature}
+ ${headers}= Create Dictionary Content-Type=application/json X-CambriaAuth=${xAuth} X-CambriaDate=${time}
+ ${session}= Create Session mr ${MR_ENDPOINT}
+ ${resp}= Post Request mr ${data_path} headers=${headers} data=${data}
+ ${status_string}= Convert To String ${resp.status_code}
+ Should Match Regexp ${status_string} ^(204|200)$
+ Log Received response from message router ${resp.text}
+ [Return] ${resp}
+
+
+Run MR Auth Put Request
+ [Documentation] Runs MR Authenticated Put Request
+ [Arguments] ${data_path} ${id_key} ${secret_key} ${data}
+ ${current_time}= Get Time
+ ${time}= Evaluate datetime.datetime.today().replace(tzinfo=pytz.UTC).replace(microsecond=0).isoformat() modules=datetime,pytz
+ ${command}= Set Variable /bin/echo -n "${time}" | /usr/bin/openssl sha1 -hmac "${secret_key}" -binary | /usr/bin/openssl base64
+ ${result}= Run Process ${command} shell=True
+ ${signature}= Set Variable ${result.stdout}
+ ${xAuth}= Set Variable ${id_key}:${signature}
+ ${headers}= Create Dictionary Content-Type=application/json X-CambriaAuth=${xAuth} X-CambriaDate=${time}
+ ${session}= Create Session mr ${MR_ENDPOINT}
+ ${resp}= Put Request mr ${data_path} headers=${headers} data=${data}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Log Received response from message router ${resp.text}
+ [Return] ${resp}
+
+Run MR Auth Get Request
+ [Documentation] Runs MR Authenticated Put Request
+ [Arguments] ${data_path} ${username} ${password}
+ ${auth}= Create List ${username} ${password}
+ ${session}= Create Session mr ${MR_ENDPOINT} auth=${auth}
+ ${uuid}= Generate UUID4
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
+ ${resp}= Get Request mr ${data_path} headers=${headers}
+ Log Received response from message router ${resp.text}
+ [Return] ${resp}
+
+Run MR Auth Post Request (User And Pass)
+ [Documentation] Runs MR Authenticated Post Request
+ [Arguments] ${data_path} ${username} ${password} ${data}
+ ${auth}= Create List ${username} ${password}
+ ${session}= Create Session mr ${MR_ENDPOINT} auth=${auth}
+ ${uuid}= Generate UUID4
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}
+ ${resp}= Post Request mr ${data_path} headers=${headers} data=${data}
+ ${status_string}= Convert To String ${resp.status_code}
+ Should Match Regexp ${status_string} ^(204|200)$
+ Log Received response from message router ${resp.text}
+ [Return] ${resp}
+
+Run MR Get Request
+ [Documentation] Runs MR Get request
+ [Arguments] ${data_path}
+ ${session}= Create Session mr ${MR_ENDPOINT}
+ ${uuid}= Generate UUID4
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
+ ${resp}= Get Request mr ${data_path} headers=${headers}
+ Log Received response from message router ${resp.text}
+ [Return] ${resp}
+
+Run MR Post Request
+ [Documentation] Runs MR Post request
+ [Arguments] ${data_path}
+ ${session}= Create Session mr ${MR_ENDPOINT}
+ ${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}
+ ${uuid}= Generate UUID4
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
+ ${resp}= Post Request mr ${data_path} data=${data} headers=${headers}
+ Log Received response from message router ${resp.text}
+ [Return] ${resp}
+
+Run MR Delete Request
+ [Documentation] Runs MR Delete request
+ [Arguments] ${data_path}
+ ${session}= Create Session mr ${MR_ENDPOINT}
+ ${uuid}= Generate UUID4
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
+ ${resp}= Delete Request mr ${data_path} headers=${headers}
+ Log Received response from message router ${resp.status_code}
+ [Return] ${resp} \ No newline at end of file