2 Documentation Test suite for Cluster HA - Device Owner failover
3 Suite Setup Create Controller Sessions
4 Suite Teardown Delete All Sessions
5 Library RequestsLibrary
6 Resource ../../../libraries/ClusterOpenFlow.robot
7 Resource ../../../libraries/ClusterKeywords.robot
8 Resource ../../../libraries/MininetKeywords.robot
9 Variables ../../../variables/Variables.py
12 Create Original Cluster List
13 [Documentation] Create original cluster list.
14 ${original_cluster_list} Create Controller Index List
15 Set Suite Variable ${original_cluster_list}
17 Check Shards Status Before Fail
18 [Documentation] Check Status for all shards in OpenFlow application.
19 Check OpenFlow Shards Status ${original_cluster_list}
21 Start Mininet Multiple Connections
22 [Documentation] Start mininet with connection to all cluster instances.
23 ${mininet_conn_id}= Start Mininet Multiple Controllers ${TOOLS_SYSTEM_IP} ${original_cluster_list}
24 Set Suite Variable ${mininet_conn_id}
26 Check Entity Owner Status And Find Owner and Candidate Before Fail
27 [Documentation] Check Entity Owner Status and identify owner and candidate.
28 ${original_owner} ${original_candidates_list} Get OpenFlow Entity Owner Status For One Device ${original_cluster_list}
29 ${original_candidate}= Get From List ${original_candidates_list} 0
30 Set Suite Variable ${original_owner}
31 Set Suite Variable ${original_candidate}
33 Check Network Operational Information Before Fail
34 [Documentation] Check device is in operational inventory and topology in all cluster instances.
35 Check OpenFlow Network Operational Information For One Device ${original_cluster_list}
37 Add Configuration In Owner and Verify Before Fail
38 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
39 Add Sample Flow and Verify ${original_cluster_list} ${original_owner}
41 Modify Configuration In Owner and Verify Before Fail
42 [Documentation] Modify Flow in Owner and verify it gets applied from all instances.
43 Modify Sample Flow and Verify ${original_cluster_list} ${original_owner}
45 Delete Configuration In Owner and Verify Before Fail
46 [Documentation] Delete Flow in Owner and verify it gets applied from all instances.
47 Delete Sample Flow and Verify ${original_cluster_list} ${original_owner}
49 Add Configuration In Candidate and Verify Before Fail
50 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
51 Add Sample Flow and Verify ${original_cluster_list} ${original_candidate}
53 Modify Configuration In Candidate and Verify Before Fail
54 [Documentation] Modify Flow in Owner and verify it gets applied from all instances.
55 Modify Sample Flow and Verify ${original_cluster_list} ${original_candidate}
57 Delete Configuration In Candidate and Verify Before Fail
58 [Documentation] Delete Flow in Owner and verify it gets removed from all instances.
59 Delete Sample Flow and Verify ${original_cluster_list} ${original_candidate}
61 Send RPC Add to Owner and Verify Before Fail
62 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
63 Send RPC Add Sample Flow and Verify ${original_cluster_list} ${original_owner}
65 Send RPC Delete to Owner and Verify Before Fail
66 [Documentation] Delete Flow in Owner and verify it gets removed from all instances.
67 Send RPC Delete Sample Flow and Verify ${original_cluster_list} ${original_owner}
69 Send RPC Add to Candidate and Verify Before Fail
70 [Documentation] Add Flow in Candidate and verify it gets applied from all instances.
71 Send RPC Add Sample Flow and Verify ${original_cluster_list} ${original_candidate}
73 Send RPC Delete to Candidate and Verify Before Fail
74 [Documentation] Delete Flow in Candidate and verify it gets removed from all instances.
75 Send RPC Delete Sample Flow and Verify ${original_cluster_list} ${original_candidate}
77 Modify Network And Verify Before Fail
78 [Documentation] Take a link down and verify port status in all instances.
79 Take OpenFlow Device Link Down and Verify ${original_cluster_list}
81 Restore Network And Verify Before Fail
82 [Documentation] Take the link up and verify port status in all instances.
83 Take OpenFlow Device Link Up and Verify ${original_cluster_list}
86 [Documentation] Kill Owner Instance and verify it is dead
87 Kill Multiple Controllers ${original_owner}
88 ${new_cluster_list} Create Controller Index List
89 Remove Values From List ${new_cluster_list} ${original_owner}
90 Set Suite Variable ${new_cluster_list}
92 Check Shards Status After Fail
93 [Documentation] Create original cluster list and check Status for all shards in OpenFlow application.
94 Check OpenFlow Shards Status After Cluster Event ${new_cluster_list}
96 Check Entity Owner Status And Find Owner and Candidate After Fail
97 [Documentation] Check Entity Owner Status and identify owner and candidate.
98 ${new_owner} ${new_candidates_list} Get OpenFlow Entity Owner Status For One Device ${new_cluster_list}
99 Run Keyword And Continue On Failure List Should Not Contain Value ${new_candidates_list} ${original_owner} Original owner ${original_owner} still in candidate list.
100 Remove Values From List ${new_candidates_list} ${original_owner}
101 ${new_candidate}= Get From List ${new_candidates_list} 0
102 Set Suite Variable ${new_owner}
103 Set Suite Variable ${new_candidate}
104 [Teardown] Report_Failure_Due_To_Bug 5004
106 Check Network Operational Information After Fail
107 [Documentation] Check device is in operational inventory and topology in all cluster instances.
108 Check OpenFlow Network Operational Information For One Device ${new_cluster_list}
110 Add Configuration In Owner and Verify After Fail
111 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
112 Add Sample Flow and Verify ${new_cluster_list} ${new_owner}
114 Modify Configuration In Owner and Verify After Fail
115 [Documentation] Modify Flow in Owner and verify it gets applied from all instances.
116 Modify Sample Flow and Verify ${new_cluster_list} ${new_owner}
118 Delete Configuration In Owner and Verify After Fail
119 [Documentation] Delete Flow in Owner and verify it gets applied from all instances.
120 Delete Sample Flow and Verify ${new_cluster_list} ${new_owner}
122 Add Configuration In Candidate and Verify After Fail
123 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
124 Add Sample Flow and Verify ${new_cluster_list} ${new_candidate}
126 Modify Configuration In Candidate and Verify After Fail
127 [Documentation] Modify Flow in Owner and verify it gets applied from all instances.
128 Modify Sample Flow and Verify ${new_cluster_list} ${new_candidate}
130 Delete Configuration In Candidate and Verify After Fail
131 [Documentation] Delete Flow in Owner and verify it gets applied from all instances.
132 Delete Sample Flow and Verify ${new_cluster_list} ${new_candidate}
134 Send RPC Add to Owner and Verify After Fail
135 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
136 Send RPC Add Sample Flow and Verify ${new_cluster_list} ${new_owner}
138 Send RPC Delete to Owner and Verify After Fail
139 [Documentation] Delete Flow in Owner and verify it gets removed from all instances.
140 Send RPC Delete Sample Flow and Verify ${new_cluster_list} ${new_owner}
142 Send RPC Add to Candidate and Verify After Fail
143 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
144 Send RPC Add Sample Flow and Verify ${new_cluster_list} ${new_candidate}
146 Send RPC Delete to Candidate and Verify After Fail
147 [Documentation] Delete Flow in Owner and verify it gets removed from all instances.
148 Send RPC Delete Sample Flow and Verify ${new_cluster_list} ${new_candidate}
150 Modify Network and Verify After Fail
151 [Documentation] Take a link down and verify port status in all instances.
152 Take OpenFlow Device Link Down and Verify ${new_cluster_list}
154 Restore Network and Verify After Fail
155 [Documentation] Take the link up and verify port status in all instances.
156 Take OpenFlow Device Link Up and Verify ${new_cluster_list}
158 Start Old Owner Instance
159 [Documentation] Start old Owner Instance and verify it is up
160 Start Multiple Controllers 300s ${original_owner}
162 Check Shards Status After Recover
163 [Documentation] Create original cluster list and check Status for all shards in OpenFlow application.
164 Check OpenFlow Shards Status After Cluster Event ${original_cluster_list}
166 Check Entity Owner Status After Recover
167 [Documentation] Check Entity Owner Status and identify owner and candidate.
168 ${new_owner} ${new_candidates_list} Get OpenFlow Entity Owner Status For One Device ${original_cluster_list}
169 Set Suite Variable ${new_owner}
171 Check Network Operational Information After Recover
172 [Documentation] Check device is in operational inventory and topology in all cluster instances.
173 Check OpenFlow Network Operational Information For One Device ${original_cluster_list}
175 Add Configuration In Owner and Verify After Recover
176 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
177 Add Sample Flow and Verify ${original_cluster_list} ${new_owner}
179 Modify Configuration In Owner and Verify After Recover
180 [Documentation] Modify Flow in Owner and verify it gets applied from all instances.
181 Modify Sample Flow and Verify ${original_cluster_list} ${new_owner}
183 Delete Configuration In Owner and Verify After Recover
184 [Documentation] Delete Flow in Owner and verify it gets applied from all instances.
185 Delete Sample Flow and Verify ${original_cluster_list} ${new_owner}
187 Add Configuration In Old Owner and Verify After Recover
188 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
189 Add Sample Flow and Verify ${originalcluster_list} ${original_owner}
191 Modify Configuration In Old Owner and Verify After Recover
192 [Documentation] Modify Flow in Owner and verify it gets applied from all instances.
193 Modify Sample Flow and Verify ${original_cluster_list} ${original_owner}
195 Delete Configuration In Old Owner and Verify After Recover
196 [Documentation] Delete Flow in Owner and verify it gets applied from all instances.
197 Delete Sample Flow and Verify ${original_cluster_list} ${original_owner}
199 Send RPC Add to Owner and Verify After Recover
200 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
201 Send RPC Add Sample Flow and Verify ${original_cluster_list} ${new_owner}
203 Send RPC Delete to Owner and Verify After Recover
204 [Documentation] Delete Flow in Owner and verify it gets removed from all instances.
205 Send RPC Delete Sample Flow and Verify ${original_cluster_list} ${new_owner}
207 Send RPC Add to Old Owner and Verify After Recover
208 [Documentation] Add Flow in Owner and verify it gets applied from all instances.
209 Send RPC Add Sample Flow and Verify ${original_cluster_list} ${original_owner}
211 Send RPC Delete to Old Owner and Verify After Recover
212 [Documentation] Delete Flow in Owner and verify it gets removed from all instances.
213 Send RPC Delete Sample Flow and Verify ${original_cluster_list} ${original_owner}
215 Modify Network and Verify After Recover
216 [Documentation] Take a link down and verify port status in all instances.
217 Take OpenFlow Device Link Down and Verify ${original_cluster_list}
219 Restore Network and Verify After Recover
220 [Documentation] Take the link up and verify port status in all instances.
221 Take OpenFlow Device Link Up and Verify ${original_cluster_list}
223 Stop Mininet and Exit
224 [Documentation] Stop mininet and exit connection.
225 Stop Mininet And Exit ${mininet_conn_id}
228 Check No Network Operational Information
229 [Documentation] Check device is not in operational inventory or topology in all cluster instances.
230 Check No OpenFlow Network Operational Information ${original_cluster_list}