diff options
Diffstat (limited to 'testcases/Controllers/ODL/CI/libraries/Utils.txt')
-rw-r--r-- | testcases/Controllers/ODL/CI/libraries/Utils.txt | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/testcases/Controllers/ODL/CI/libraries/Utils.txt b/testcases/Controllers/ODL/CI/libraries/Utils.txt new file mode 100644 index 00000000..913ba22c --- /dev/null +++ b/testcases/Controllers/ODL/CI/libraries/Utils.txt @@ -0,0 +1,106 @@ +*** Settings *** +Library SSHLibrary +Library ./UtilLibrary.py + +*** Variables *** +${start} sudo mn --controller=remote,ip=${CONTROLLER} --topo tree,1 --switch ovsk,protocols=OpenFlow13 +${linux_prompt} > + +*** Keywords *** +Start Suite + [Documentation] Basic setup/cleanup work that can be done safely before any system + ... is run. + Log Start the test on the base edition + ${mininet_conn_id}= Open Connection ${MININET} prompt=${linux_prompt} timeout=30s + Set Suite Variable ${mininet_conn_id} + Login With Public Key ${MININET_USER} ${USER_HOME}/.ssh/id_rsa any + Write sudo ovs-vsctl set-manager ptcp:6644 + Read Until ${linux_prompt} + Write sudo mn -c + Read Until ${linux_prompt} + Write ${start} + Read Until mininet> + Sleep 6 + +Stop Suite + [Documentation] Cleanup/Shutdown work that should be done at the completion of all + ... tests + Log Stop the test on the base edition + Switch Connection ${mininet_conn_id} + Read + Write exit + Read Until ${linux_prompt} + Close Connection + +Ensure All Nodes Are In Response + [Arguments] ${URI} ${node_list} + [Documentation] A GET is made to the supplied ${URI} and every item in the ${node_list} + ... is verified to exist in the repsonse. This keyword currently implies that it's node + ... specific but any list of strings can be given in ${node_list}. Refactoring of this + ... to make it more generic should be done. (see keyword "Check For Elements At URI") + : FOR ${node} IN @{node_list} + \ ${resp} RequestsLibrary.Get session ${URI} + \ Should Be Equal As Strings ${resp.status_code} 200 + \ Should Contain ${resp.content} ${node} + +Check Nodes Stats + [Arguments] ${node} + [Documentation] A GET on the /node/${node} API is made and specific flow stat + ... strings are checked for existence. + ${resp} RequestsLibrary.Get session ${REST_CONTEXT}/node/${node} + Should Be Equal As Strings ${resp.status_code} 200 + Should Contain ${resp.content} flow-capable-node-connector-statistics + Should Contain ${resp.content} flow-table-statistics + +Check That Port Count Is Ok + [Arguments] ${node} ${count} + [Documentation] A GET on the /port API is made and the specified port ${count} is + ... verified. A more generic Keyword "Check For Specific Number Of Elements At URI" + ... also does this work and further consolidation should be done. + ${resp} RequestsLibrary.Get session ${REST_CONTEXT}/${CONTAINER}/port + Log ${resp.content} + Should Be Equal As Strings ${resp.status_code} 200 + Should Contain X Times ${resp.content} ${node} ${count} + +Check For Specific Number Of Elements At URI + [Arguments] ${uri} ${element} ${expected_count} + [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 session ${uri} + Log ${resp.content} + Should Be Equal As Strings ${resp.status_code} 200 + Should Contain X Times ${resp.content} ${element} ${expected_count} + +Check For Elements At URI + [Arguments] ${uri} ${elements} + [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 session ${uri} + Log ${resp.content} + Should Be Equal As Strings ${resp.status_code} 200 + : FOR ${i} IN @{elements} + \ Should Contain ${resp.content} ${i} + +Check For Elements Not At URI + [Arguments] ${uri} ${elements} + [Documentation] A GET is made at the supplied ${URI} and every item in the list of + ... ${elements} is verified to NOT exist in the response + ${resp} RequestsLibrary.Get session ${uri} + Log ${resp.content} + Should Be Equal As Strings ${resp.status_code} 200 + : FOR ${i} IN @{elements} + \ Should Not Contain ${resp.content} ${i} + +Extract Value From Content + [Arguments] ${content} ${index} ${strip}=nostrip + [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} + [Return] ${value} + +Strip Quotes + [Arguments] ${string_to_strip} + [Documentation] Will strip ALL quotes from given string and return the new string + ${string_to_return}= Replace String ${string_to_strip} " \ count=-1 + [Return] ${string_to_return} |