X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Fsuites%2Fopenflowplugin%2FPerformance_Flow_Config%2F070_Stats_Collection_100k_WithMininetRestart.robot;h=8a6335f4c0cdf4ef6c934c6eeb033cfeade7e5c7;hb=HEAD;hp=6e0ade87c15d9c95754445ca0b18e97450368271;hpb=00773301bfc678e4139e5690f982735de3405fdc;p=integration%2Ftest.git diff --git a/csit/suites/openflowplugin/Performance_Flow_Config/070_Stats_Collection_100k_WithMininetRestart.robot b/csit/suites/openflowplugin/Performance_Flow_Config/070_Stats_Collection_100k_WithMininetRestart.robot index 6e0ade87c1..8a6335f4c0 100644 --- a/csit/suites/openflowplugin/Performance_Flow_Config/070_Stats_Collection_100k_WithMininetRestart.robot +++ b/csit/suites/openflowplugin/Performance_Flow_Config/070_Stats_Collection_100k_WithMininetRestart.robot @@ -1,36 +1,42 @@ *** Settings *** -Documentation Suite checks if StatMngr is able to collect flows correctly -Suite Setup Create Http Session And Upload Files -Suite Teardown Delete Http Session And Store Plot Data -Library OperatingSystem -Library XML -Library SSHLibrary -Library Collections -Variables ../../../variables/Variables.py -Library RequestsLibrary -Library ../../../libraries/Common.py -Library ../../../libraries/ScaleClient.py -Resource ../../../libraries/WaitForFailure.robot +Documentation Suite checks if StatMngr is able to collect flows correctly + +Library OperatingSystem +Library XML +Library SSHLibrary +Library Collections +Variables ../../../variables/Variables.py +Library RequestsLibrary +Library ../../../libraries/Common.py +Library ../../../libraries/ScaleClient.py +Resource ../../../libraries/WaitForFailure.robot +Resource ../../../variables/openflowplugin/Variables.robot + +Suite Setup Create Http Session And Upload Files +Suite Teardown Delete Http Session And Store Plot Data + *** Variables *** -${swnr} 63 -${flnr} 100000 -${fpr} 25 -${nrthreads} 5 -${swspread} linear -${tabspread} first -@{cntls} ${ODL_SYSTEM_IP} -${start_cmd} sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --topo linear,${swnr} --switch ovsk,protocols=OpenFlow13 -${getf_cmd} sh ./get-total-found.sh -${getr_cmd} sh ./get-total-reported.sh -${iperiod} 1s -${imonitor} 600s -${ichange} 450s -${outfile} flows_setup_time.csv -${setupfile} flows_install_rate.csv -${setuptime} 0 -${inittime} 0 -${restarttime} 0 +${swnr} 32 +${flnr} 100000 +${fpr} 200 +${nrthreads} 5 +${swspread} linear +${tabspread} first +@{cntls} ${ODL_SYSTEM_IP} +${start_cmd} +... sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --topo linear,${swnr} --switch ovsk,protocols=OpenFlow13 +${getf_cmd} sh ./get-total-found.sh +${getr_cmd} sh ./get-total-reported.sh +${iperiod} 1s +${imonitor} 60s +${ichange} 450s +${ratefile} stats_rate.csv +${timefile} stats_time.csv +${setuptime} 0 +${inittime} 0 +${restarttime} 0 + *** Test Cases *** Connect Mininet @@ -38,14 +44,22 @@ Connect Mininet Configure Flows [Documentation] Configuration of ${flnr} flows into config datastore - ${flows} ${notes}= Generate New Flow Details flows=${flnr} switches=${swnr} swspread=${swspread} tabspread=${tabspread} + ${flows} ${notes}= Generate New Flow Details + ... flows=${flnr} + ... switches=${swnr} + ... swspread=${swspread} + ... tabspread=${tabspread} Log ${notes} ${starttime}= Get Time epoch - ${res}= Configure Flows Bulk flow_details=${flows} controllers=@{cntls} nrthreads=${nrthreads} fpr=${fpr} + ${res}= Configure Flows Bulk + ... flow_details=${flows} + ... controllers=@{cntls} + ... nrthreads=${nrthreads} + ... fpr=${fpr} Log ${res} Set Suite Variable ${flows} - ${http204ok}= Create List ${204} - ${validation}= Validate Responses ${res} ${http204ok} + ${http201ok}= Create List ${201} + ${validation}= Validate Responses ${res} ${http201ok} Should Be True ${validation} [Teardown] Save Setup Time setuptime ${starttime} @@ -78,8 +92,7 @@ Check Flows Are Operational Again Deconfigure Flows [Documentation] Flows deconfiguration - ${resp}= Delete Request session ${CONFIG_NODES_API} - Should Be Equal As Numbers ${resp.status_code} 200 + ${resp}= DELETE On Session session url=${RFC8040_NODES_API} expected_status=204 Check No Flows In Operational Last [Documentation] Operational datastore to be without any flows @@ -89,21 +102,26 @@ Check No Flows In Operational Last Stop Mininet End Stop Switches + *** Keywords *** Connect Switches [Documentation] Starts mininet with requested number of switches (${swnr}) Log Starting mininet with ${swnr} switches - Open Connection ${TOOLS_SYSTEM_IP} prompt=${DEFAULT_LINUX_PROMPT} timeout=600 + Open Connection ${TOOLS_SYSTEM_IP} prompt=${TOOLS_SYSTEM_PROMPT} timeout=600 Login With Public Key ${TOOLS_SYSTEM_USER} ${USER_HOME}/.ssh/${SSH_KEY} any Execute Command sudo ovs-vsctl set-manager ptcp:6644 Execute Command sudo mn -c Write ${start_cmd} Read Until mininet> - Wait Until Keyword Succeeds 10s 1s Are Switches Connected Topo + Comment Below line disables switch echos + Write + ... sh x=`sudo ovs-vsctl --columns=_uuid list Controller | awk '{print $NF}'`; for i in $x; do sudo ovs-vsctl set Controller $i inactivity_probe=0; done + Read Until mininet> + Wait Until Keyword Succeeds 20s 1s Are Switches Connected Topo Create Http Session And Upload Files Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML} - Open Connection ${TOOLS_SYSTEM_IP} prompt=${DEFAULT_LINUX_PROMPT} timeout=600 + Open Connection ${TOOLS_SYSTEM_IP} prompt=${TOOLS_SYSTEM_PROMPT} timeout=600 Login With Public Key ${TOOLS_SYSTEM_USER} ${USER_HOME}/.ssh/${SSH_KEY} any Put File ${CURDIR}/../../../../tools/odl-mdsal-clustering-tests/clustering-performance-test/ovs-scripts/* ./ Close Connection @@ -113,42 +131,43 @@ Stop Switches Log Stopping mininet Read Write exit - Read Until ${DEFAULT_LINUX_PROMPT} + Read Until ${TOOLS_SYSTEM_PROMPT} Close Connection Delete Http Session And Store Plot Data Delete All Sessions - Append To File ${outfile} InitCollectionTime,AfterMininetRestartCollectionTime\n - Append To File ${outfile} ${inittime},${restarttime}\n - ${rate}= Evaluate (${flnr}/${setuptime}) - Append To File ${setupfile} FlowsSetupRate,FlowsSetupTime\n - Append To File ${setupfile} ${rate},${setuptime}\n + ${initrate}= Evaluate (${flnr}/${inittime}) + ${restartrate}= Evaluate (${flnr}/${restarttime}) + Append To File ${ratefile} Initial,AfterMininetRestart\n + Append To File ${ratefile} ${initrate},${restartrate}\n + Append To File ${timefile} Initial,AfterMininetRestart\n + Append To File ${timefile} ${inittime},${restarttime}\n Are Switches Connected Topo [Documentation] Checks wheather switches are connected to controller - ${resp}= Get Request session ${OPERATIONAL_TOPO_API}/topology/flow:1 headers=${ACCEPT_XML} + ${resp}= GET On Session session url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API} headers=${ACCEPT_XML} Log ${resp.content} ${count}= Get Element Count ${resp.content} xpath=node Should Be Equal As Numbers ${count} ${swnr} Check Flows Inventory - [Arguments] ${rswitches} ${rflows} [Documentation] Checks in inventory has required state + [Arguments] ${rswitches} ${rflows} ${sw} ${repf} ${foundf}= Flow Stats Collected controller=${ODL_SYSTEM_IP} Should Be Equal As Numbers ${rswitches} ${sw} Should Be Equal As Numbers ${rflows} ${foundf} Measure Setup Time - [Arguments] ${rswitches} ${rflows} ${note} [Documentation] This keyword is dedicated to save measured time for plotting + [Arguments] ${rswitches} ${rflows} ${note} ${starttime}= Get Time epoch Log Starting stats collection at time ${starttime} Inventory Change Reached ${rswitches} ${rflows} [Teardown] Save Setup Time ${note} ${starttime} Save Setup Time - [Arguments] ${note} ${starttime} [Documentation] Count the difference and stores it + [Arguments] ${note} ${starttime} ${endtime}= Get Time epoch Log Stats collection finished at time ${endtime} ${res}= Evaluate int(${endtime})-int(${starttime}) @@ -160,14 +179,19 @@ Save Setup Time Set Suite Variable ${setuptime} Inventory Change Reached - [Arguments] ${rswitches} ${rflows} [Documentation] This keywordwaits till inventory reaches required state + [Arguments] ${rswitches} ${rflows} Wait Until Keyword Succeeds ${ichange} ${iperiod} Check Flows Inventory ${rswitches} ${rflows} Monitor Stable State - [Arguments] ${rswitches} ${rflows} [Documentation] This keywordwaits till inventory reaches required state - Verify Keyword Does Not Fail Within Timeout ${imonitor} ${iperiod} Check Flows Inventory ${rswitches} ${rflows} + [Arguments] ${rswitches} ${rflows} + Verify Keyword Does Not Fail Within Timeout + ... ${imonitor} + ... ${iperiod} + ... Check Flows Inventory + ... ${rswitches} + ... ${rflows} Log Switch Details Write ${getf_cmd}