*** Variables ***
# TODO: Introduce ${tree_size} and use instead of 1 in the next line.
-${start} sudo mn --controller=remote,ip=${CONTROLLER} --topo tree,1 --switch ovsk,protocols=OpenFlow13
+${start} sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --topo tree,1 --switch ovsk,protocols=OpenFlow13
*** Keywords ***
Start Suite
- [Arguments] ${system}=${MININET} ${user}=${MININET_USER} ${password}=${MININET_PASSWORD} ${prompt}=${DEFAULT_LINUX_PROMPT} ${timeout}=30s
+ [Arguments] ${system}=${TOOLS_SYSTEM_IP} ${user}=${TOOLS_SYSTEM_USER} ${password}=${TOOLS_SYSTEM_PASSWORD} ${prompt}=${DEFAULT_LINUX_PROMPT} ${timeout}=30s
[Documentation] Basic setup/cleanup work that can be done safely before any system
... is run.
Log Start the test on the base edition
Clean Mininet System
- ${mininet_conn_id}= Open Connection ${system} prompt=${DEFAULT_LINUX_PROMPT} timeout=${timeout}
+ ${mininet_conn_id}= Open Connection ${system} prompt=${prompt} timeout=${timeout}
Set Suite Variable ${mininet_conn_id}
Flexible Mininet Login user=${user} password=${password}
Execute Command sudo ovs-vsctl set-manager ptcp:6644
Read Until mininet>
Start Mininet
- [Arguments] ${system}=${MININET} ${cmd}=${start} ${custom}= ${user}=${MININET_USER} ${password}=${MININET_PASSWORD} ${prompt}=${DEFAULT_LINUX_PROMPT}
+ [Arguments] ${system}=${TOOLS_SYSTEM_IP} ${cmd}=${start} ${custom}= ${user}=${TOOLS_SYSTEM_USER} ${password}=${TOOLS_SYSTEM_PASSWORD} ${prompt}=${DEFAULT_LINUX_PROMPT}
... ${prompt_timeout}=30s
[Documentation] Basic setup to start mininet with custom topology
Log Start the test on the base edition
Run Command On Mininet ${system} sudo ps -elf | egrep 'usr/local/bin/mn' | egrep python | awk '{print "sudo kill -9",$4}' | sh
Clean Up Ovs
- [Arguments] ${system}=${MININET}
+ [Arguments] ${system}=${TOOLS_SYSTEM_IP}
[Documentation] Cleans up the OVS instance and remove any existing common known bridges.
${output}= Run Command On Mininet ${system} sudo ovs-vsctl list-br
Log ${output}
[Return] ${value}
Get Process ID Based On Regex On Remote System
- [Arguments] ${system} ${regex_string_to_match_on} ${user}=${MININET_USER} ${password}=${EMPTY} ${prompt}=${DEFAULT_LINUX_PROMPT} ${prompt_timeout}=30s
+ [Arguments] ${system} ${regex_string_to_match_on} ${user}=${TOOLS_SYSTEM_USER} ${password}=${EMPTY} ${prompt}=${DEFAULT_LINUX_PROMPT} ${prompt_timeout}=30s
[Documentation] Uses ps to find a process that matches the supplied regex. Returns the PID of that process
... The ${regex_string_to_match_on} should produce a unique process otherwise the PID returned may not be
... the expected PID
[Return] ${pid}
Get Process Thread Count On Remote System
- [Arguments] ${system} ${pid} ${user}=${MININET_USER} ${password}=${EMPTY} ${prompt}=${DEFAULT_LINUX_PROMPT} ${prompt_timeout}=30s
+ [Arguments] ${system} ${pid} ${user}=${TOOLS_SYSTEM_USER} ${password}=${EMPTY} ${prompt}=${DEFAULT_LINUX_PROMPT} ${prompt_timeout}=30s
[Documentation] Executes the ps command to retrieve the lightweight process (aka thread) count.
${cmd}= Set Variable ps --no-headers -o nlwp ${pid}
${output}= Run Command On Remote System ${system} ${cmd} user=${user} password=${password} prompt=${prompt}
BuiltIn.Run Keyword And Return Run Command On Remote System ${system} ${cmd} ${user} ${password} prompt=${prompt}
Verify File Exists On Remote System
- [Arguments] ${system} ${file} ${user}=${MININET_USER} ${password}=${MININET_PASSWORD} ${prompt}=${DEFAULT_LINUX_PROMPT} ${prompt_timeout}=5s
+ [Arguments] ${system} ${file} ${user}=${TOOLS_SYSTEM_USER} ${password}=${TOOLS_SYSTEM_PASSWORD} ${prompt}=${DEFAULT_LINUX_PROMPT} ${prompt_timeout}=5s
[Documentation] Will create connection with public key and will PASS if the given ${file} exists,
... otherwise will FAIL
${conn_id}= Open Connection ${system} prompt=${prompt} timeout=${prompt_timeout}
Close Connection
Verify Controller Is Not Dead
- [Arguments] ${controller_ip}=${CONTROLLER}
+ [Arguments] ${controller_ip}=${ODL_SYSTEM_IP}
[Documentation] Will execute any tests to verify the controller is not dead. Some checks are
... Out Of Memory Execptions.
Check Karaf Log File Does Not Have Messages ${controller_ip} java.lang.OutOfMemoryError
# TODO: Should Verify Controller * keywords also accept user, password, prompt and karaf_log arguments?
Verify Controller Has No Null Pointer Exceptions
- [Arguments] ${controller_ip}=${CONTROLLER}
+ [Arguments] ${controller_ip}=${ODL_SYSTEM_IP}
[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
[Arguments] ${uri}
${resp} RequestsLibrary.Delete Request session ${uri}
Should Be Equal As Strings ${resp.status_code} 200
- ${resp} RequestsLibrary.Get session ${uri}
+ ${resp} RequestsLibrary.Get Request session ${uri}
Should Be Equal As Strings ${resp.status_code} 404
Add Elements To URI From File
[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}]
+
+Post Log Check
+ [Arguments] ${uri} ${body} ${status_code}=200
+ [Documentation] Post body to ${uri}, log response content, and check status
+ ${resp}= RequestsLibrary.Post Request session ${uri} ${body}
+ Log ${resp.content}
+ Should Be Equal As Strings ${resp.status_code} ${status_code}
+ [Return] ${resp}