Migrate Get Requests invocations(libraries)
[integration/test.git] / csit / suites / openflowplugin / Performance_Flow_Config / 070_Stats_Collection_100k_WithMininetRestart.robot
index 6e0ade87c15d9c95754445ca0b18e97450368271..8a6335f4c0cdf4ef6c934c6eeb033cfeade7e5c7 100644 (file)
@@ -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}