Documentation Test suite for entity ownership service and openflowplugin. Makes changes on controller side (isolating cluster node)
Suite Setup Start Suite
Suite Teardown End Suite
+Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
Test Template Isolating Node Scenario
Library SSHLibrary
Library RequestsLibrary
Library XML
+Resource ${CURDIR}/../../../libraries/SetupUtils.robot
Resource ${CURDIR}/../../../libraries/Utils.robot
+Resource ${CURDIR}/../../../libraries/FlowLib.robot
Resource ${CURDIR}/../../../libraries/OvsManager.robot
Resource ${CURDIR}/../../../libraries/ClusterManagement.robot
Resource ${CURDIR}/../../../libraries/ClusterOpenFlow.robot
*** Variables ***
${SWITCHES} 1
-# this is for mininet 2.2.1 ${START_CMD} sudo mn --controller=remote,ip=${ODL_SYSTEM_1_IP} --controller=remote,ip=${ODL_SYSTEM_2_IP} --controller=remote,ip=${ODL_SYSTEM_3_IP} --topo linear,${SWITCHES} --switch ovsk,protocols=OpenFlow13
-${START_CMD} sudo mn --topo linear,${SWITCHES} --switch ovsk,protocols=OpenFlow13
+${START_CMD} sudo mn --topo linear,${SWITCHES}
@{CONTROLLER_NODES} ${ODL_SYSTEM_1_IP} ${ODL_SYSTEM_2_IP} ${ODL_SYSTEM_3_IP}
@{cntls_idx_list} ${1} ${2} ${3}
\ Collections.Append To List ${switch_list} s${sid}
BuiltIn.Set Suite Variable ${active_member} 1
OvsManager.Setup Clustered Controller For Switches ${switch_list} ${cntls_list}
- BuiltIn.Wait Until Keyword Succeeds 15s 1s Are Switches Connected Topo
+ BuiltIn.Wait Until Keyword Succeeds 15s 1s ClusterOpenFlow.Verify Switch Connections Running On Member ${SWITCHES} 1
Switches To Be Connected To All Nodes
[Documentation] Initial check for correct connected topology.
Stop Mininet And Verify No Owners
[Template] NONE
- Utils.Stop Suite
- BuiltIn.Wait Until Keyword Succeeds 15x 1s Check No Owners In Controller
+ Utils.Stop Mininet
+ BuiltIn.Wait Until Keyword Succeeds 15x 1s Check No Device Owners In Controller
[Teardown] Report_Failure_Due_To_Bug 6177
*** Keywords ***
Start Suite
- ClusterManagement.ClusterManagement Setup
+ SetupUtils.Setup_Utils_For_Setup_And_Teardown
End Suite
ClusterManagement.Flush Iptables From List Or All
RequestsLibrary.Delete All Sessions
-Are Switches Connected Topo
- [Documentation] Checks wheather switches are connected to controller
- ${resp}= ClusterManagement.Get From Member ${OPERATIONAL_TOPO_API}/topology/flow:1 ${active_member} access=${ACCEPT_XML}
- BuiltIn.Log ${resp}
- ${count}= XML.Get Element Count ${resp} xpath=node
- BuiltIn.Should Be Equal As Numbers ${count} ${SWITCHES}
-
Check All Switches Connected To All Cluster Nodes
[Documentation] Verifies all switches are connected to all cluster nodes
OvsManager.Get Ovsdb Data
Isolating Node Scenario
[Arguments] ${switch_name}
[Documentation] Disconnect and connect owner and successor and check switch data to be consistent
+ BuiltIn.Set Test Variable ${isol_node} ${Empty}
${idx}= BuiltIn.Evaluate str("${switch_name}"[1:])
BuiltIn.Set Test Variable ${idx}
Isolate Switchs Old Owner ${switch_name}
Isolate Switchs Old Owner
[Arguments] ${switch_name}
- BuiltIn.Set Test Variable ${isol_node} ${Empty}
${old_owner} ${old_successors}= ClusterOpenFlow.Get OpenFlow Entity Owner Status For One Device openflow:${idx} ${active_member}
${old_master}= BuiltIn.Set Variable ${ODL_SYSTEM_${old_owner}_IP}
${active_member}= Collections.Get From List ${old_successors} 0
ClusterOpenFlow.Check OpenFlow Shards Status After Cluster Event
${new_owner} ${new_successors}= BuiltIn.Wait Until Keyword Succeeds 6x 10s ClusterOpenFlow.Get OpenFlow Entity Owner Status For One Device openflow:${idx}
... ${active_member}
- BuiltIn.Should Be Equal ${owner} ${new_owner}
Isolate Switchs Successor
[Arguments] ${switch_name}
${old_successor}= Collections.Get From List ${old_successors} 0
${old_slave}= BuiltIn.Set Variable ${ODL_SYSTEM_${old_successor}_IP}
Isolate Controller From The Cluster ${old_successor}
- BuiltIn.Set Test Variable ${isol_cntl} ${old_slave}
+ BuiltIn.Set Test Variable ${isol_node} ${old_successor}
${tmp_candidates}= BuiltIn.Create List @{ClusterManagement__member_index_list}
Collections.Remove Values From List ${tmp_candidates} ${old_successor}
ClusterOpenFlow.Check OpenFlow Shards Status After Cluster Event ${tmp_candidates}
${owner} ${successors}= ClusterOpenFlow.Get OpenFlow Entity Owner Status For One Device openflow:${idx} ${active_member} ${tmp_candidates}
BuiltIn.Should Be Equal ${owner} ${old_owner}
- BuiltIn.Should Be Equal As Strings ${new_master} ${ODL_SYSTEM_${owner}_IP}
BuiltIn.Set Test Variable ${old_owner}
BuiltIn.Set Test Variable ${old_successors}
BuiltIn.Set Test Variable ${old_successor}
ClusterOpenFlow.Check OpenFlow Shards Status After Cluster Event
${new_owner} ${new_successors}= BuiltIn.Wait Until Keyword Succeeds 6x 10s ClusterOpenFlow.Get OpenFlow Entity Owner Status For One Device openflow:${idx}
... ${active_member}
- BuiltIn.Should Be Equal ${old_owner} ${new_owner}
Rejoin Controller To The Cluster
[Arguments] ${isolated_node}
ClusterManagement.Isolate Member From List Or All ${isolated_node}
[Teardown] SSHLibrary.Switch Connection ${mininet_conn_id}
-Check No Owners In Controller
+Check No Device Owners In Controller
[Documentation] Check there is no owners in controllers
${session} = Resolve_Http_Session_For_Member member_index=${active_member}
${data} = TemplatedRequests.Get_As_Json_From_Uri uri=${ENTITY_OWNER_URI} session=${session}
- BuiltIn.Should Not Contain ${data} member
+ #ofp-topology-manager entity is introduced in the OPNFLWPLUG-1022 bug fix, and this entity will
+ #always be present in the EOS output. All 3 controller nodes will be candidate, so EOS output will
+ #contain 3 members.
+ BuiltIn.Should Contain X Times ${data} member 3
Verify New Master Controller Node
[Arguments] ${switch_name} ${old_master}