summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--robot/assets/templates/mr_put_acl.template7
-rw-r--r--robot/resources/mr_interface.robot61
-rw-r--r--robot/resources/pomba_interface.robot6
-rw-r--r--robot/testsuites/post-install-tests.robot16
4 files changed, 86 insertions, 4 deletions
diff --git a/robot/assets/templates/mr_put_acl.template b/robot/assets/templates/mr_put_acl.template
new file mode 100644
index 00000000..62c96e8c
--- /dev/null
+++ b/robot/assets/templates/mr_put_acl.template
@@ -0,0 +1,7 @@
+{
+ "topicName":"${TOPIC_NAME}",
+ "topicDescription":"This is a TestTopic",
+ "partitionCount":"1",
+ "replicationCount":"3",
+ "transactionEnabled":"true"
+}
diff --git a/robot/resources/mr_interface.robot b/robot/resources/mr_interface.robot
index 29e9dd3e..0c194c10 100644
--- a/robot/resources/mr_interface.robot
+++ b/robot/resources/mr_interface.robot
@@ -1,17 +1,24 @@
*** 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 RequestsClientCert
-Library RequestsLibrary
+Library RequestsLibrary
Library UUID
+Library DateTime
+Library Process
+Library JSONUtils
Resource global_properties.robot
+Resource ../resources/json_templater.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} robot/assets/templates/mr_publish.template
+${MR_PUT_ACL_TEMPLATE} robot/assets/templates/mr_put_acl.template
*** Keywords ***
@@ -37,6 +44,58 @@ Run MR PubSub Health Check
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
+ ${data}= Fill JSON Template File ${MR_PUT_ACL_TEMPLATE} ${dict}
+ #Log To Console ${\n}Create TEST_TOPIC_ACL
+ ${resp}= Run MR Auth Post Request ${MR_CREATE_TOPIC_PATH} iPIxkpAMI8qTcQj8 Ehq3WyT4bkif4zwgEbvshGal ${data}
+ #Log To Console 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 Get Request
[Documentation] Runs MR Get request
[Arguments] ${data_path}
diff --git a/robot/resources/pomba_interface.robot b/robot/resources/pomba_interface.robot
index ddea52a6..35161188 100644
--- a/robot/resources/pomba_interface.robot
+++ b/robot/resources/pomba_interface.robot
@@ -1,7 +1,7 @@
*** Settings ***
Documentation Tests the health of the POMBA containers: aai-context-builder, sdc-context-builder,
-Documentation network-discovery-micro-service, Context-Aggregator, pomba-kibana, pomba-elasticsearch,
-Documentation service-decomposition, sdnc-context-builder and network-discovery-context-builder.
+... network-discovery-micro-service, Context-Aggregator, pomba-kibana, pomba-elasticsearch,
+... service-decomposition, sdnc-context-builder and network-discovery-context-builder.
Library Collections
Library String
Library RequestsLibrary
@@ -154,4 +154,4 @@ Run Pomba Context Aggregator Get Request
${session}= Create Session pomba-contextaggregator ${POMBA_CONTEXTAGGREGATOR_ENDPOINT}
${resp}= Get Request pomba-contextaggregator ${data_path}
Log Received response from pomba-contextaggregator ${resp.text}
- [Return] ${resp} \ No newline at end of file
+ [Return] ${resp}
diff --git a/robot/testsuites/post-install-tests.robot b/robot/testsuites/post-install-tests.robot
new file mode 100644
index 00000000..a30cb8d9
--- /dev/null
+++ b/robot/testsuites/post-install-tests.robot
@@ -0,0 +1,16 @@
+*** Settings ***
+Documentation Testing Installation
+... Tests that confirm an installation is valid and not meant as recurring health test
+...
+
+Test Timeout 10 second
+
+Resource ../resources/mr_interface.robot
+
+*** Test Cases ***
+
+Basic DMAAP Message Router ACL Update Test
+ [Tags] dmaapacl postinstall
+ [Timeout] 30
+ Run MR Update Topic Acl
+