+++ /dev/null
-*** Settings ***
-Documentation Suite checks if StatMngr is able to collect flows correctly
-Suite Setup Create Http Session
-Suite Teardown Delete Http Session
-Library OperatingSystem
-Library Collections
-Library XML
-Library SSHLibrary
-Variables ../../../variables/Variables.py
-Library RequestsLibrary
-Library ../../../libraries/Common.py
-Library ../../../libraries/ScaleClient.py
-
-*** Variables ***
-${swnr} 16
-${flnr} 16000
-${swspread} linear
-${tabspread} linear
-@{cntls} ${CONTROLLER}
-${start_cmd} sudo mn --controller=remote,ip=${CONTROLLER} --topo linear,${swnr} --switch ovsk,protocols=OpenFlow13
-
-*** Test Cases ***
-Connect Mininet
- Connect Switches
-
-Configure Flows
- [Documentation] Configuration of 16k flows into config datastore
- ${flows} ${notes}= Generate New Flow Details flows=${flnr} switches=${swnr} swspread=${swspread} tabspread=${tabspread}
- Log ${notes}
- ${res}= Configure Flows flow_details=${flows} controllers=@{cntls} nrthreads=5
- Log ${res}
- Set Suite Variable ${flows}
-
-Are Flows Operational
- [Documentation] Operational datastore check if all flows are present there
- Wait Until Keyword Succeeds 110s 5s Check Flows Inventory ${flows} ${CONTROLLER}
-
-Deconfigure Flows
- [Documentation] Removal of 16k flows from config datastore
- ${res}= Deconfigure Flows flow_details=${flows} controllers=@{cntls} nrthreads=5
- Log ${res}
-
-Check No Flows In Operational
- [Documentation] Operational datastore to be without any flows
- ${noflows}= Create List
- Wait Until Keyword Succeeds 110s 5s Check Flows Inventory ${noflows} ${CONTROLLER}
-
-Configure Flows Again
- [Documentation] Configuration of 16k flows into config datastore again
- ${res}= Configure Flows flow_details=${flows} controllers=@{cntls} nrthreads=5
- Log ${res}
-
-Are Flows Operational Again
- [Documentation] Operational datastore check if all flows are present there
- Wait Until Keyword Succeeds 110s 5s Check Flows Inventory ${flows} ${CONTROLLER}
-
-Stop Mininet
- [Documentation] Disconnect/Stop mininet
- Stop Switches
-
-Check No Flows In Operational After Disconnect
- [Documentation] With mininet stopped no switches in operational datastore sould be found
- Wait Until Keyword Succeeds 110s 5s Check No Switches Inventory
-
-Connect Mininet Again
- [Documentation] Reconnection of the mininet
- Connect Switches
-
-Check Flows Are Operational Again
- [Documentation] All 16k switches should be present in the operational datastore after mininet reconnection
- Wait Until Keyword Succeeds 110s 5s Check Flows Inventory ${flows} ${CONTROLLER}
-
-Deconfigure Flows End
- [Documentation] Flows deconfiguration
- ${res}= Deconfigure Flows flow_details=${flows} controllers=@{cntls} nrthreads=5
- Log ${res}
-
-Check No Flows In Operational Last
- [Documentation] Operational datastore to be without any flows
- ${noflows}= Create List
- Wait Until Keyword Succeeds 110s 5s Check Flows Inventory ${noflows} ${CONTROLLER}
-
-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 ${MININET} prompt=${DEFAULT_LINUX_PROMPT} timeout=600
- Login With Public Key ${MININET_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
-
-Create Http Session
- Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML}
-
-Stop Switches
- [Documentation] Stops mininet
- Log Stopping mininet
- Read
- Write exit
- Read Until ${DEFAULT_LINUX_PROMPT}
- Close Connection
-
-Delete Http Session
- Delete All Sessions
-
-Are Switches Connected Topo
- [Documentation] Checks wheather switches are connected to controller
- ${resp}= Get session ${OPERATIONAL_TOPO_API}/topology/flow:1 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] ${fldets} ${cntl}
- ${res}= Flow Stats Collected flow_details=${fldets} controller=${cntl}
- Should Be True ${res}
-
-Check No Switches Inventory
- ${resp}= Get session ${OPERATIONAL_NODES_API}
- Log ${resp.content}
- Should Be Equal As Strings '${resp.content}' '{"nodes":{}}'