2 Documentation Test suite for Cluster HA - Device Owner Stop and Start
3 Suite Setup SetupUtils.Setup_Utils_For_Setup_And_Teardown
4 Suite Teardown Delete All Sessions
5 Library RequestsLibrary
6 Resource ../../../libraries/SetupUtils.robot
7 Resource ../../../libraries/ClusterOpenFlow.robot
8 Resource ../../../libraries/MininetKeywords.robot
9 Resource ../../../libraries/ClusterManagement.robot
10 Variables ../../../variables/Variables.py
13 Check Shards Status Before Stop
14 [Documentation] Check Status for all shards in OpenFlow application.
15 ClusterOpenFlow.Check OpenFlow Shards Status
17 Start Mininet Multiple Connections
18 [Documentation] Start mininet tree,2 with connection to all cluster instances.
19 ${mininet_conn_id}= MininetKeywords.Start Mininet Multiple Controllers ${TOOLS_SYSTEM_IP} ${ClusterManagement__member_index_list} --topo tree,2
20 BuiltIn.Set Suite Variable ${mininet_conn_id}
21 BuiltIn.Wait Until Keyword Succeeds 10s 1s OVSDB.Check OVS OpenFlow Connections ${TOOLS_SYSTEM_IP} 9
23 Check Entity Owner Status And Find Owner and Successor Before Stop
24 [Documentation] Check Entity Owner Status and identify owner and successor for first switch s1.
25 ${original_owner} ${original_successor_list} ClusterOpenFlow.Get OpenFlow Entity Owner Status For One Device openflow:1 1
26 ${original_successor}= Collections.Get From List ${original_successor_list} 0
27 BuiltIn.Set Suite Variable ${original_owner}
28 BuiltIn.Set Suite Variable ${original_successor_list}
29 BuiltIn.Set Suite Variable ${original_successor}
31 Reconnect Extra Switches To Successors And Check OVS Connections
32 [Documentation] Connect switches s2 and s3 to successor instances.
33 ${controller_opt} = BuiltIn.Set Variable
34 FOR ${index} IN @{original_successor_list}
35 ${controller_opt} = BuiltIn.Catenate ${controller_opt} ${SPACE}tcp:${ODL_SYSTEM_${index}_IP}:${ODL_OF_PORT}
38 OVSDB.Set Controller In OVS Bridge ${TOOLS_SYSTEM_IP} s2 ${controller_opt}
39 OVSDB.Set Controller In OVS Bridge ${TOOLS_SYSTEM_IP} s3 ${controller_opt}
40 BuiltIn.Wait Until Keyword Succeeds 10s 1s OVSDB.Check OVS OpenFlow Connections ${TOOLS_SYSTEM_IP} 7
42 Check Network Operational Information Before Stop
43 [Documentation] Check devices in operational inventory and topology in all cluster instances.
44 ClusterOpenFlow.Check OpenFlow Network Operational Information For Sample Topology
46 Add Configuration In Owner and Verify Before Stop
47 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
48 ClusterOpenFlow.Add Sample Flow and Verify ${original_owner}
50 Modify Configuration In Owner and Verify Before Stop
51 [Documentation] Modify Flow in Owner and verify it gets applied from all instances.
52 ClusterOpenFlow.Modify Sample Flow and Verify ${original_owner}
54 Delete Configuration In Owner and Verify Before Stop
55 [Documentation] Delete Flow in Owner and verify it gets applied from all instances.
56 ClusterOpenFlow.Delete Sample Flow and Verify ${original_owner}
58 Add Configuration In Successor and Verify Before Stop
59 [Documentation] Add Flow in Successor and verify it gets applied from all instances.
60 ClusterOpenFlow.Add Sample Flow and Verify ${original_successor}
62 Modify Configuration In Successor and Verify Before Stop
63 [Documentation] Modify Flow in successor and verify it gets applied from all instances.
64 ClusterOpenFlow.Modify Sample Flow and Verify ${original_successor}
66 Delete Configuration In Successor and Verify Before Stop
67 [Documentation] Delete Flow in Successor and verify it gets removed from all instances.
68 ClusterOpenFlow.Delete Sample Flow and Verify ${original_successor}
70 Send RPC Add to Owner and Verify Before Stop
71 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
72 ClusterOpenFlow.Send RPC Add Sample Flow and Verify ${original_owner}
74 Send RPC Delete to Owner and Verify Before Stop
75 [Documentation] Delete Flow in Owner and verify it gets removed from all instances.
76 ClusterOpenFlow.Send RPC Delete Sample Flow and Verify ${original_owner}
78 Send RPC Add to Successor and Verify Before Stop
79 [Documentation] Add Flow in Successor and verify it gets applied from all instances.
80 ClusterOpenFlow.Send RPC Add Sample Flow and Verify ${original_successor}
82 Send RPC Delete to Successor and Verify Before Stop
83 [Documentation] Delete Flow in Successor and verify it gets removed from all instances.
84 ClusterOpenFlow.Send RPC Delete Sample Flow and Verify ${original_successor}
86 Modify Network And Verify Before Stop
87 [Documentation] Take a link down and verify port status in all instances.
88 ClusterOpenFlow.Take OpenFlow Device Link Down and Verify
90 Restore Network And Verify Before Stop
91 [Documentation] Take the link up and verify port status in all instances.
92 ClusterOpenFlow.Take OpenFlow Device Link Up and Verify
95 [Documentation] Stop Owner Instance and verify it is dead
96 ClusterManagement.Stop Single Member ${original_owner}
97 BuiltIn.Set Suite Variable ${new_cluster_list} ${original_successor_list}
99 Check Shards Status After Stop
100 [Documentation] Create original cluster list and check Status for all shards in OpenFlow application.
101 ClusterOpenFlow.Check OpenFlow Shards Status After Cluster Event ${new_cluster_list}
103 Check Entity Owner Status And Find Owner and Successor After Stop
104 [Documentation] Check Entity Owner Status and identify owner and successor.
105 ${new_owner} ${new_successor_list} ClusterOpenFlow.Get OpenFlow Entity Owner Status For One Device openflow:1 ${original_successor} ${new_cluster_list} after_stop=True
106 ${new_successor}= Collections.Get From List ${new_successor_list} 0
107 BuiltIn.Set Suite Variable ${new_owner}
108 BuiltIn.Set Suite Variable ${new_successor}
110 Check Network Operational Information After Stop
111 [Documentation] Check devices in operational inventory and topology in all cluster instances.
112 ClusterOpenFlow.Check OpenFlow Network Operational Information For Sample Topology ${new_cluster_list}
114 Add Configuration In Owner and Verify After Stop
115 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
116 ClusterOpenFlow.Add Sample Flow and Verify ${new_owner} ${new_cluster_list}
118 Modify Configuration In Owner and Verify After Stop
119 [Documentation] Modify Flow in Owner and verify it gets applied from all instances.
120 ClusterOpenFlow.Modify Sample Flow and Verify ${new_owner} ${new_cluster_list}
122 Delete Configuration In Owner and Verify After Stop
123 [Documentation] Delete Flow in Owner and verify it gets applied from all instances.
124 ClusterOpenFlow.Delete Sample Flow and Verify ${new_owner} ${new_cluster_list}
126 Add Configuration In Successor and Verify After Stop
127 [Documentation] Add Flow in Successor and verify it gets applied from all instances.
128 ClusterOpenFlow.Add Sample Flow and Verify ${new_successor} ${new_cluster_list}
130 Modify Configuration In Successor and Verify After Stop
131 [Documentation] Modify Flow in Successor and verify it gets applied from all instances.
132 ClusterOpenFlow.Modify Sample Flow and Verify ${new_successor} ${new_cluster_list}
134 Delete Configuration In Successor and Verify After Stop
135 [Documentation] Delete Flow in Successor and verify it gets applied from all instances.
136 ClusterOpenFlow.Delete Sample Flow and Verify ${new_successor} ${new_cluster_list}
138 Send RPC Add to Owner and Verify After Stop
139 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
140 ClusterOpenFlow.Send RPC Add Sample Flow and Verify ${new_owner} ${new_cluster_list}
142 Send RPC Delete to Owner and Verify After Stop
143 [Documentation] Delete Flow in Owner and verify it gets removed from all instances.
144 ClusterOpenFlow.Send RPC Delete Sample Flow and Verify ${new_owner} ${new_cluster_list}
146 Send RPC Add to Successor and Verify After Stop
147 [Documentation] Add Flow in Successor and verify it gets applied from all instances.
148 ClusterOpenFlow.Send RPC Add Sample Flow and Verify ${new_successor} ${new_cluster_list}
150 Send RPC Delete to Successor and Verify After Stop
151 [Documentation] Delete Flow in Successor and verify it gets removed from all instances.
152 ClusterOpenFlow.Send RPC Delete Sample Flow and Verify ${new_successor} ${new_cluster_list}
154 Modify Network and Verify After Stop
155 [Documentation] Take a link down and verify port status in all instances.
156 ClusterOpenFlow.Take OpenFlow Device Link Down and Verify ${new_cluster_list}
158 Restore Network and Verify After Stop
159 [Documentation] Take the link up and verify port status in all instances.
160 ClusterOpenFlow.Take OpenFlow Device Link Up and Verify ${new_cluster_list}
162 Start Old Owner Instance
163 [Documentation] Start old Owner Instance and verify it is up
164 ClusterManagement.Start Single Member ${original_owner}
166 Check Shards Status After Start
167 [Documentation] Create original cluster list and check Status for all shards in OpenFlow application.
168 ClusterOpenFlow.Check OpenFlow Shards Status After Cluster Event
170 Check Entity Owner Status After Start
171 [Documentation] Check Entity Owner Status and identify owner and successor.
172 ${new_owner} ${new_successors_list} ClusterOpenFlow.Get OpenFlow Entity Owner Status For One Device openflow:1 1
173 BuiltIn.Set Suite Variable ${new_owner}
175 Check Network Operational Information After Start
176 [Documentation] Check devices in operational inventory and topology in all cluster instances.
177 ClusterOpenFlow.Check OpenFlow Network Operational Information For Sample Topology
179 Add Configuration In Owner and Verify After Start
180 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
181 ClusterOpenFlow.Add Sample Flow and Verify ${new_owner}
183 Modify Configuration In Owner and Verify After Start
184 [Documentation] Modify Flow in Owner and verify it gets applied from all instances.
185 ClusterOpenFlow.Modify Sample Flow and Verify ${new_owner}
187 Delete Configuration In Owner and Verify After Start
188 [Documentation] Delete Flow in Owner and verify it gets applied from all instances.
189 ClusterOpenFlow.Delete Sample Flow and Verify ${new_owner}
191 Add Configuration In Old Owner and Verify After Start
192 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
193 ClusterOpenFlow.Add Sample Flow and Verify ${original_owner}
195 Modify Configuration In Old Owner and Verify After Start
196 [Documentation] Modify Flow in Owner and verify it gets applied from all instances.
197 ClusterOpenFlow.Modify Sample Flow and Verify ${original_owner}
199 Delete Configuration In Old Owner and Verify After Start
200 [Documentation] Delete Flow in Owner and verify it gets applied from all instances.
201 ClusterOpenFlow.Delete Sample Flow and Verify ${original_owner}
203 Send RPC Add to Owner and Verify After Start
204 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
205 ClusterOpenFlow.Send RPC Add Sample Flow and Verify ${new_owner}
207 Send RPC Delete to Owner and Verify After Start
208 [Documentation] Delete Flow in Owner and verify it gets removed from all instances.
209 ClusterOpenFlow.Send RPC Delete Sample Flow and Verify ${new_owner}
211 Send RPC Add to Old Owner and Verify After Start
212 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
213 ClusterOpenFlow.Send RPC Add Sample Flow and Verify ${original_owner}
215 Send RPC Delete to Old Owner and Verify After Start
216 [Documentation] Delete Flow in Owner and verify it gets removed from all instances.
217 ClusterOpenFlow.Send RPC Delete Sample Flow and Verify ${original_owner}
219 Modify Network and Verify After Start
220 [Documentation] Take a link down and verify port status in all instances.
221 ClusterOpenFlow.Take OpenFlow Device Link Down and Verify
223 Restore Network and Verify After Start
224 [Documentation] Take the link up and verify port status in all instances.
225 ClusterOpenFlow.Take OpenFlow Device Link Up and Verify
227 Stop Mininet and Exit
228 [Documentation] Stop mininet and exit connection.
229 MininetKeywords.Stop Mininet And Exit ${mininet_conn_id}
230 Utils.Clean Mininet System
232 Check No Network Operational Information
233 [Documentation] Check device is not in operational inventory or topology in all cluster instances.
234 ClusterOpenFlow.Check No OpenFlow Network Operational Information