Add module to the table URL segment in ScaleClient.py
[integration/test.git] / csit / libraries / Utils.robot
index 7a4b62c0a3fbe6f9cbbe95d3dbb584e2b619e390..1a5016b7a4309a0a57f9fdb5367c010decc16094 100644 (file)
@@ -11,6 +11,7 @@ Library           ${CURDIR}/UtilLibrary.py
 Resource          ${CURDIR}/SSHKeywords.robot
 Resource          ${CURDIR}/TemplatedRequests.robot
 Resource          ${CURDIR}/../variables/Variables.robot
+Resource          ${CURDIR}/../variables/openflowplugin/Variables.robot
 
 *** Variables ***
 # TODO: Introduce ${tree_size} and use instead of 1 in the next line.
@@ -85,7 +86,7 @@ Check Nodes Stats
     [Arguments]    ${node}    ${session}=session
     [Documentation]    A GET on the /node/${node} API is made and specific flow stat
     ...    strings are checked for existence.
-    ${resp}    RequestsLibrary.Get Request    ${session}    ${OPERATIONAL_NODES_API}/node/${node}
+    ${resp}    RequestsLibrary.Get Request    ${session}    ${RFC8040_NODES_API}/node=${node}?${RFC8040_OPERATIONAL_CONTENT}
     Should Be Equal As Strings    ${resp.status_code}    200
     Should Contain    ${resp.text}    flow-capable-node-connector-statistics
     Should Contain    ${resp.text}    flow-table-statistics
@@ -95,7 +96,7 @@ Check For Specific Number Of Elements At URI
     [Documentation]    A GET is made to the specified ${URI} and the specific count of a
     ...    given element is done (as supplied by ${element} and ${expected_count})
     ${resp}    RequestsLibrary.Get Request    ${session}    ${uri}
-    Log    ${resp.content}
+    Log    ${resp.text}
     Should Be Equal As Strings    ${resp.status_code}    200
     Should Contain X Times    ${resp.text}    ${element}    ${expected_count}
 
@@ -111,8 +112,8 @@ Check For Elements At URI
     [Documentation]    A GET is made at the supplied ${URI} and every item in the list of
     ...    ${elements} is verified to exist in the response
     ${resp}    RequestsLibrary.Get Request    ${session}    ${uri}
-    BuiltIn.Run Keyword If    "${pretty_print_json}" == "True"    Log Content    ${resp.content}
-    ...    ELSE    BuiltIn.Log    ${resp.content}
+    BuiltIn.Run Keyword If    "${pretty_print_json}" == "True"    Log Content    ${resp.text}
+    ...    ELSE    BuiltIn.Log    ${resp.text}
     Should Be Equal As Strings    ${resp.status_code}    200
     FOR    ${i}    IN    @{elements}
         Should Contain    ${resp.text}    ${i}
@@ -125,8 +126,8 @@ Check For Elements Not At URI
     ...    return of 404 is treated as empty list. From Neon onwards, an empty list is always
     ...    returned as null, giving 404 on rest call.
     ${resp}    RequestsLibrary.Get Request    ${session}    ${uri}
-    BuiltIn.Run Keyword If    "${pretty_print_json}" == "True"    Log Content    ${resp.content}
-    ...    ELSE    BuiltIn.Log    ${resp.content}
+    BuiltIn.Run Keyword If    "${pretty_print_json}" == "True"    Log Content    ${resp.text}
+    ...    ELSE    BuiltIn.Log    ${resp.text}
     BuiltIn.Run Keyword If    "${check_for_null}" == "True"    Builtin.Return From Keyword If    ${resp.status_code} == 404 or ${resp.status_code} == 409
     Should Be Equal As Strings    ${resp.status_code}    200
     FOR    ${i}    IN    @{elements}
@@ -149,11 +150,10 @@ Clean Up Ovs
     Run Command On Mininet    ${system}    sudo ovs-vsctl del-manager
 
 Extract Value From Content
-    [Arguments]    ${content}    ${index}    ${strip}=nostrip
+    [Arguments]    ${content}    ${index}
     [Documentation]    Will take the given response content and return the value at the given index as a string
-    ${value}=    Get Json Value    ${content}    ${index}
-    ${value}=    Convert To String    ${value}
-    ${value}=    Run Keyword If    '${strip}' == 'strip'    Strip Quotes    ${value}
+    ${JSON} =    Evaluate    json.loads('''${content}''')    json
+    ${value} =    Set Variable    ${JSON${index}}
     [Return]    ${value}
 
 Get Process ID Based On Regex On Remote System
@@ -271,6 +271,11 @@ Verify Controller Has No Null Pointer Exceptions
     [Documentation]    Will execute any tests to verify the controller is not having any null pointer eceptions.
     Check Karaf Log File Does Not Have Messages    ${controller_ip}    java.lang.NullPointerException
 
+Verify Controller Has No Runtime Exceptions
+    [Arguments]    ${controller_ip}=${ODL_SYSTEM_IP}
+    [Documentation]    Will execute any tests to verify the controller is not having any runtime eceptions.
+    Check Karaf Log File Does Not Have Messages    ${controller_ip}    java.lang.RuntimeException
+
 Get Epoch Time
     [Arguments]    ${time}
     [Documentation]    Get the Epoc time from MM/DD/YYYY HH:MM:SS
@@ -304,7 +309,7 @@ Post Elements To URI
     [Arguments]    ${rest_uri}    ${data}    ${headers}=${headers}    ${session}=session
     [Documentation]    Perform a POST rest operation, using the URL and data provided
     ${resp} =    RequestsLibrary.Post Request    ${session}    ${rest_uri}    data=${data}    headers=${headers}
-    Log    ${resp.content}
+    Log    ${resp.text}
     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
 
 Remove All Elements At URI
@@ -415,7 +420,7 @@ Get Index From List Of Dictionaries
     ${index}=    Set Variable    -1
     FOR    ${i}    IN RANGE    ${length}
         ${dictionary}=    Get From List    ${dictionary_list}    ${i}
-        Run Keyword If    """&{dictionary}[${key}]""" == """${value}"""    Set Test Variable    ${index}    ${i}
+        Run Keyword If    """${dictionary}[${key}]""" == """${value}"""    Set Test Variable    ${index}    ${i}
     END
     [Return]    ${index}
 
@@ -423,14 +428,14 @@ Check Item Occurrence
     [Arguments]    ${string}    ${dictionary_item_occurrence}
     [Documentation]    Check string for occurrences of items expressed in a list of dictionaries {item=occurrences}. 0 occurences means item is not present.
     FOR    ${item}    IN    @{dictionary_item_occurrence}
-        Should Contain X Times    ${string}    ${item}    &{dictionary_item_occurrence}[${item}]
+        Should Contain X Times    ${string}    ${item}    ${dictionary_item_occurrence}[${item}]
     END
 
 Post Log Check
     [Arguments]    ${uri}    ${body}    ${session}=session    ${status_codes}=200
     [Documentation]    Post body to ${uri}, log response content, and check status
     ${resp}=    RequestsLibrary.Post Request    ${session}    ${uri}    ${body}
-    Log    ${resp.content}
+    Log    ${resp.text}
     TemplatedRequests.Check Status Code    ${resp}    ${status_codes}
     [Return]    ${resp}