Library SSHLibrary
Resource Utils.robot
Resource OVSDB.robot
+Resource ClusterManagement.robot
Variables ../variables/Variables.py
*** Keywords ***
[Return] ${mininet_conn_id}
Start Mininet Multiple Controllers
- [Arguments] ${mininet} ${controller_index_list} ${options}=--topo tree,1 --switch ovsk,protocols=OpenFlow13 ${custom}=${EMPTY} ${ofport}=6633
- [Documentation] Start Mininet with custom topology and connect to all controllers in the ${controller_index_list}.
+ [Arguments] ${mininet} ${controller_index_list}=${EMPTY} ${options}=--topo tree,1 --switch ovsk,protocols=OpenFlow13 ${custom}=${EMPTY} ${ofport}=${ODL_OF_PORT}
+ [Documentation] Start Mininet with custom topology and connect to list of controllers in ${controller_index_list} or all if no list is provided.
+ ${index_list} = ClusterManagement__Given_Or_Internal_Index_List given_list=${controller_index_list}
Log Clear any existing mininet
Utils.Clean Mininet System ${mininet}
${mininet_conn_id}= SSHLibrary.Open Connection ${mininet} prompt=${TOOLS_SYSTEM_PROMPT} timeout=${DEFAULT_TIMEOUT}
SSHLibrary.Read Until mininet>
Log Create controller configuration
${controller_opt}= Set Variable
- : FOR ${index} IN @{controller_index_list}
+ : FOR ${index} IN @{index_list}
\ ${controller_opt}= Catenate ${controller_opt} ${SPACE}tcp:${ODL_SYSTEM_${index}_IP}:${ofport}
\ Log ${controller_opt}
Log Find Number of OVS bridges
\ MininetKeywords.Stop Mininet And Exit ${mininet_conn_id}
Verify Aggregate Flow From Mininet Session
- [Arguments] ${mininet_conn_id} ${switch_count} ${flow_count} ${time_out}
+ [Arguments] ${mininet_conn_id} ${flow_count} ${time_out}
[Documentation] Verify flow count per switch
- Wait Until Keyword Succeeds ${time_out} 2s MininetKeywords.Mininet Sync Status ${mininet_conn_id} ${switch_count} ${flow_count}
+ Wait Until Keyword Succeeds ${time_out} 2s MininetKeywords.Mininet Sync Status ${mininet_conn_id} ${flow_count}
Mininet Sync Status
- [Arguments] ${mininet_id} ${switch_count} ${flow_count}
+ [Arguments] ${mininet_id} ${flow_count}
[Documentation] Sync with mininet to match exact number of flows
- Set Test Variable &{dictionary} flow_count\=${flow_count}=${switch_count}
${cmd} = Set Variable dpctl dump-aggregate -O OpenFlow13
${output}= MininetKeywords.Send Mininet Command ${mininet_id} ${cmd}
- Utils.Check Item Occurrence ${output} ${dictionary}
+ ${flows}= String.Get RegExp Matches ${output} (?<=flow_count\=).*?(?=\r)
+ ${total_flows}= BuiltIn.Evaluate sum(map(int, ${flows}))
+ Should Be Equal As Numbers ${total_flows} ${flow_count}