X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=test%2Fcsit%2Flibraries%2FUtils.txt;h=eaf62b630f99fe764168d025249c43a9a59f754f;hb=ecd995b857a1589866e4dccee72b7d86472af52d;hp=0d2a6d8b5615e674f5353086ed85ff285368ac54;hpb=69106c9488f3084d5711a2bf2c6dc8e871bf21b3;p=integration.git diff --git a/test/csit/libraries/Utils.txt b/test/csit/libraries/Utils.txt index 0d2a6d8b..eaf62b63 100644 --- a/test/csit/libraries/Utils.txt +++ b/test/csit/libraries/Utils.txt @@ -1,24 +1,23 @@ *** Settings *** Library SSHLibrary +Library String Library ./UtilLibrary.py Resource KarafKeywords.txt *** Variables *** ${start} sudo mn --controller=remote,ip=${CONTROLLER} --topo tree,1 --switch ovsk,protocols=OpenFlow13 -${linux_prompt} > +${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} + ${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} + Execute Command sudo ovs-vsctl set-manager ptcp:6644 + Execute Command sudo mn -c Write ${start} Read Until mininet> Sleep 6 @@ -27,7 +26,7 @@ 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} + Switch Connection ${mininet_conn_id} Read Write exit Read Until ${linux_prompt} @@ -48,7 +47,7 @@ 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} + ${resp} RequestsLibrary.Get session ${OPERATIONAL_NODES_API}/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 @@ -92,6 +91,11 @@ Check For Elements Not At URI : FOR ${i} IN @{elements} \ Should Not Contain ${resp.content} ${i} +Clean Mininet System + [Arguments] ${mininet_system}=${MININET} + Run Command On Remote System ${mininet_system} sudo mn -c + Run Command On Remote System ${mininet_system} sudo ps -elf | egrep 'usr/local/bin/mn' | egrep python | awk '{print "sudo kill -9",$4}' | sh + 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 @@ -100,6 +104,25 @@ Extract Value From Content ${value}= Run Keyword If '${strip}' == 'strip' Strip Quotes ${value} [Return] ${value} +Get Process ID Based On Regex On Remote System + [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 + [Arguments] ${remote_system} ${regex_string_to_match_on} + # doing the extra -v grep in this command to exclude the grep process itself from the output + ${output}= Run Command On Remote System ${remote_system} ps -elf | grep -v grep | grep ${regex_string_to_match_on} | awk '{print $4}' + # ${output} contains the system prompt and all we want is the value of the number + ${pid}= Fetch From Left ${output} \r + [Return] ${pid} + +Get Process Thread Count On Remote System + [Documentation] Executes the ps command to retrieve the lightweight process (aka thread) count. + [Arguments] ${remote_system} ${pid} + ${output}= Run Command On Remote System ${remote_system} ps --no-headers -o nlwp ${pid} + # ${output} contains the system prompt and all we want is the value of the number + ${thread_count}= Fetch From Left ${output} \r + [Return] ${thread_count} + Strip Quotes [Arguments] ${string_to_strip} [Documentation] Will strip ALL quotes from given string and return the new string @@ -107,28 +130,29 @@ Strip Quotes [Return] ${string_to_return} Run Command On Remote System - [Arguments] ${remote_system} ${cmd} ${user}=${MININET_USER} ${prompt}=${LINUX_PROMPT} ${prompt_timeout}=30s - [Documentation] Reduces the common work of running a command on a remote system to a single higher level robot keyword, - ... taking care to log in with a public key and. The command given is written and the output returned. No test conditions - ... are checked. + [Arguments] ${remote_system} ${cmd} ${user}=${MININET_USER} ${prompt}=${LINUX_PROMPT} ${prompt_timeout}=30s + [Documentation] Reduces the common work of running a command on a remote system to a single higher level robot keyword, + ... taking care to log in with a public key and. The command given is written and the output returned. No test conditions + ... are checked. Log Attempting to execute ${cmd} on ${remote_system} - ${conn_id}= Open Connection ${remote_system} prompt=${prompt} timeout=${prompt_timeout} + ${conn_id}= SSHLibrary.Open Connection ${remote_system} prompt=${prompt} timeout=${prompt_timeout} Login With Public Key ${user} ${USER_HOME}/.ssh/id_rsa any - Write ${cmd} - ${output}= Read Until ${linux_prompt} - Close Connection + SSHLibrary.Write ${cmd} + ${output}= SSHLibrary.Read Until ${linux_prompt} + SSHLibrary.Close Connection + Log ${output} [Return] ${output} Verify File Exists On Remote System - [Arguments] ${remote_system} ${file} ${user}=${MININET_USER} ${prompt}=${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 ${remote_system} prompt=${prompt} timeout=${prompt_timeout} + [Arguments] ${remote_system} ${file} ${user}=${MININET_USER} ${prompt}=${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 ${remote_system} prompt=${prompt} timeout=${prompt_timeout} Login With Public Key ${user} ${USER_HOME}/.ssh/id_rsa any - SSHLibrary.File Should Exist ${file} + SSHLibrary.File Should Exist ${file} Close Connection Verify Controller Is Not Dead - [Arguments] ${controller_ip}=${CONTROLLER} - [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 + [Arguments] ${controller_ip}=${CONTROLLER} + [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