Add DMaaP Update topic ACL test 59/86859/3
authorBrian Freeman <bf1936@att.com>
Thu, 2 May 2019 20:30:02 +0000 (15:30 -0500)
committerBrian Freeman <bf1936@att.com>
Thu, 2 May 2019 22:06:29 +0000 (17:06 -0500)
fixed Pomba Documentation warning

Issue-ID: INT-1058
Change-Id: Ifda1ccf4002312d031fde2520226de719b788853
Signed-off-by: Brian Freeman <bf1936@att.com>
robot/assets/templates/mr_put_acl.template [new file with mode: 0644]
robot/resources/mr_interface.robot
robot/resources/pomba_interface.robot
robot/testsuites/post-install-tests.robot [new file with mode: 0644]

diff --git a/robot/assets/templates/mr_put_acl.template b/robot/assets/templates/mr_put_acl.template
new file mode 100644 (file)
index 0000000..62c96e8
--- /dev/null
@@ -0,0 +1,7 @@
+{
+  "topicName":"${TOPIC_NAME}",
+  "topicDescription":"This is a TestTopic",
+  "partitionCount":"1",
+  "replicationCount":"3",
+  "transactionEnabled":"true"
+}
index 29e9dd3..0c194c1 100644 (file)
@@ -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}
index ddea52a..3516118 100644 (file)
@@ -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 (file)
index 0000000..a30cb8d
--- /dev/null
@@ -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
+