Add more robust wait for flow stats
[integration/test.git] / csit / suites / openflowplugin / Flows_Additional_TCs / Stat_Manager_extended / 010_SM_add_upd_del_flows.robot
1 *** Settings ***
2 Documentation     Test suite for Stats Manager flows collection
3 Suite Setup       Initialization Phase
4 Suite Teardown    Delete All Sessions
5 Test Template     Check Datastore Presence
6 Library           OperatingSystem
7 Library           Collections
8 Library           XML
9 Library           SSHLibrary
10 Resource          ../../../../libraries/FlowLib.robot
11 Library           ../../../../libraries/XmlComparator.py
12 Variables         ../../../../variables/Variables.py
13 Library           RequestsLibrary
14 Library           ../../../../libraries/Common.py
15
16 *** Variables ***
17 ${XmlsDir}        ${CURDIR}/../../../../variables/xmls
18 ${switch_idx}     1
19 ${switch_name}    s${switch_idx}
20 @{flowlist0}      f1.xml    f2.xml    f3.xml    f4.xml    f5.xml    f6.xml    f7.xml
21 ...               f8.xml    f9.xml    f10.xml    f11.xml    f12.xml    f13.xml    f14.xml
22 ...               f15.xml    f16.xml    f17.xml    f18.xml    f19.xml    f20.xml    f21.xml
23 ...               f22.xml    f23.xml    f24.xml    f25.xml    f31.xml    f36.xml    f38.xml
24 ...               f43.xml    f45.xml    f47.xml    f101.xml    f102.xml    f103.xml    f104.xml
25 ...               f105.xml    f106.xml    f107.xml    f108.xml    f109.xml    f110.xml    f113.xml
26 ...               f156.xml    f201.xml    f202.xml    f203.xml    f204.xml    f205.xml    f206.xml
27 ...               f209.xml    f214.xml    f218.xml    f219.xml    f220.xml
28
29 *** Test Cases ***
30 Test Add Flows Group 0
31     [Documentation]    Add all flows and waits for SM to collect data
32     [Template]    NONE
33     : FOR    ${flowfile}    IN    @{flowlist0}
34     \    Log    ${flowfile}
35     \    Create Flow Variables For Suite From XML File    ${XmlsDir}/${flowfile}
36     \    Run Keyword And Continue On Failure    Add Flow Via Restconf    ${switch_idx}    ${table_id}    ${data}
37     # Lets wait for ofp to collect stats
38     ${flows}=    Get Length    ${flowlist0}
39     Wait Until Keyword Succeeds    10s    2s    FlowLib.Check Flow Stats Are Available    openflow:1    ${flows}
40     # Show switch content (for debug purposes if needed)
41     Write    dpctl dump-flows -O OpenFlow13
42     Read Until    mininet>
43
44 Test Is Flow 1 Added
45     f1.xml    ${True}    ${True}    ${False}
46
47 Test Is Flow 2 Added
48     f2.xml    ${True}    ${True}    ${False}
49
50 Test Is Flow 3 Added
51     f3.xml    ${True}    ${True}    ${False}
52
53 Test Is Flow 4 Added
54     f4.xml    ${True}    ${True}    ${False}
55
56 Test Is Flow 5 Added
57     f5.xml    ${True}    ${True}    ${False}
58
59 Test Is Flow 6 Added
60     f6.xml    ${True}    ${True}    ${False}
61
62 Test Is Flow 7 Added
63     f7.xml    ${True}    ${True}    ${False}
64
65 Test Is Flow 8 Added
66     f8.xml    ${True}    ${True}    ${False}
67
68 Test Is Flow 9 Added
69     f9.xml    ${True}    ${True}    ${False}
70
71 Test Is Flow 10 Added
72     f10.xml    ${True}    ${True}    ${False}
73
74 Test Is Flow 11 Added
75     f11.xml    ${True}    ${True}    ${False}
76
77 Test Is Flow 12 Added
78     f12.xml    ${True}    ${True}    ${False}
79
80 Test Is Flow 13 Added
81     f13.xml    ${True}    ${True}    ${False}
82
83 Test Is Flow 14 Added
84     f14.xml    ${True}    ${True}    ${False}
85
86 Test Is Flow 15 Added
87     f15.xml    ${True}    ${True}    ${False}
88
89 Test Is Flow 16 Added
90     f16.xml    ${True}    ${True}    ${False}
91
92 Test Is Flow 17 Added
93     f17.xml    ${True}    ${True}    ${False}
94
95 Test Is Flow 18 Added
96     f18.xml    ${True}    ${True}    ${False}
97
98 Test Is Flow 19 Added
99     f19.xml    ${True}    ${True}    ${False}
100
101 Test Is Flow 20 Added
102     f20.xml    ${True}    ${True}    ${False}
103
104 Test Is Flow 21 Added
105     f21.xml    ${True}    ${True}    ${False}
106
107 Test Is Flow 22 Added
108     f22.xml    ${True}    ${True}    ${False}
109
110 Test Is Flow 23 Added
111     f23.xml    ${True}    ${True}    ${False}
112
113 Test Is Flow 24 Added
114     f24.xml    ${True}    ${True}    ${False}
115
116 Test Is Flow 25 Added
117     f25.xml    ${True}    ${True}    ${False}
118
119 Test Is Flow 31 Added
120     f31.xml    ${True}    ${True}    ${False}
121
122 Test Is Flow 36 Added
123     f36.xml    ${True}    ${True}    ${False}
124
125 Test Is Flow 38 Added
126     f38.xml    ${True}    ${True}    ${False}
127
128 Test Is Flow 43 Added
129     f43.xml    ${True}    ${True}    ${False}
130
131 Test Is Flow 45 Added
132     f45.xml    ${True}    ${True}    ${False}
133
134 Test Is Flow 47 Added
135     f47.xml    ${True}    ${True}    ${False}
136
137 Test Is Flow 101 Added
138     f101.xml    ${True}    ${True}    ${False}
139
140 Test Is Flow 102 Added
141     f102.xml    ${True}    ${True}    ${False}
142
143 Test Is Flow 103 Added
144     f103.xml    ${True}    ${True}    ${False}
145
146 Test Is Flow 104 Added
147     f104.xml    ${True}    ${True}    ${False}
148
149 Test Is Flow 105 Added
150     f105.xml    ${True}    ${True}    ${False}
151
152 Test Is Flow 106 Added
153     f106.xml    ${True}    ${True}    ${False}
154
155 Test Is Flow 107 Added
156     f107.xml    ${True}    ${True}    ${False}
157
158 Test Is Flow 108 Added
159     f108.xml    ${True}    ${True}    ${False}
160
161 Test Is Flow 109 Added
162     f109.xml    ${True}    ${True}    ${False}
163
164 Test Is Flow 110 Added
165     f110.xml    ${True}    ${True}    ${False}
166
167 Test Is Flow 113 Added
168     f113.xml    ${True}    ${True}    ${False}
169
170 Test Is Flow 156 Added
171     f156.xml    ${True}    ${True}    ${False}
172
173 Test Is Flow 201 Added
174     f201.xml    ${True}    ${True}    ${False}
175
176 Test Is Flow 202 Added
177     f202.xml    ${True}    ${True}    ${False}
178
179 Test Is Flow 203 Added
180     f203.xml    ${True}    ${True}    ${False}
181
182 Test Is Flow 204 Added
183     f204.xml    ${True}    ${True}    ${False}
184
185 Test Is Flow 205 Added
186     f205.xml    ${True}    ${True}    ${False}
187
188 Test Is Flow 206 Added
189     f206.xml    ${True}    ${True}    ${False}
190
191 Test Is Flow 209 Added
192     f209.xml    ${True}    ${True}    ${False}
193
194 Test Is Flow 214 Added
195     f214.xml    ${True}    ${True}    ${False}
196
197 Test Is Flow 218 Added
198     f218.xml    ${True}    ${True}    ${False}
199
200 Test Is Flow 219 Added
201     f219.xml    ${True}    ${True}    ${False}
202
203 Test Is Flow 220 Added
204     f220.xml    ${True}    ${True}    ${False}
205
206 Test Update Flows Group 0
207     [Documentation]    Update all flows and waits for SM to collect data
208     [Template]    NONE
209     : FOR    ${flowfile}    IN    @{flowlist0}
210     \    Log    ${flowfile}
211     \    Create Flow Variables For Suite From XML File    ${XmlsDir}/${flowfile}
212     \    Run Keyword And Continue On Failure    Update Flow Via Restconf    ${switch_idx}    ${table_id}    ${flow_id}    ${upddata}
213     # Lets wait for ofp to collect stats
214     Sleep    3s
215     # Show switch content (for debug purposes if needed)
216     Write    dpctl dump-flows -O OpenFlow13
217     Read Until    mininet>
218
219 Test Is Flow 1 Updated
220     f1.xml    ${True}    ${True}    ${True}
221
222 Test Is Flow 2 Updated
223     f2.xml    ${True}    ${True}    ${True}
224
225 Test Is Flow 3 Updated
226     f3.xml    ${True}    ${True}    ${True}
227
228 Test Is Flow 4 Updated
229     f4.xml    ${True}    ${True}    ${True}
230
231 Test Is Flow 5 Updated
232     f5.xml    ${True}    ${True}    ${True}
233
234 Test Is Flow 6 Updated
235     f6.xml    ${True}    ${True}    ${True}
236
237 Test Is Flow 7 Updated
238     f7.xml    ${True}    ${True}    ${True}
239
240 Test Is Flow 8 Updated
241     f8.xml    ${True}    ${True}    ${True}
242
243 Test Is Flow 9 Updated
244     f9.xml    ${True}    ${True}    ${True}
245
246 Test Is Flow 10 Updated
247     f10.xml    ${True}    ${True}    ${True}
248
249 Test Is Flow 11 Updated
250     f11.xml    ${True}    ${True}    ${True}
251
252 Test Is Flow 12 Updated
253     f12.xml    ${True}    ${True}    ${True}
254
255 Test Is Flow 13 Updated
256     f13.xml    ${True}    ${True}    ${True}
257
258 Test Is Flow 14 Updated
259     f14.xml    ${True}    ${True}    ${True}
260
261 Test Is Flow 15 Updated
262     f15.xml    ${True}    ${True}    ${True}
263
264 Test Is Flow 16 Updated
265     f16.xml    ${True}    ${True}    ${True}
266
267 Test Is Flow 17 Updated
268     f17.xml    ${True}    ${True}    ${True}
269
270 Test Is Flow 18 Updated
271     f18.xml    ${True}    ${True}    ${True}
272
273 Test Is Flow 19 Updated
274     f19.xml    ${True}    ${True}    ${True}
275
276 Test Is Flow 20 Updated
277     f20.xml    ${True}    ${True}    ${True}
278
279 Test Is Flow 21 Updated
280     f21.xml    ${True}    ${True}    ${True}
281
282 Test Is Flow 22 Updated
283     f22.xml    ${True}    ${True}    ${True}
284
285 Test Is Flow 23 Updated
286     f23.xml    ${True}    ${True}    ${True}
287
288 Test Is Flow 24 Updated
289     f24.xml    ${True}    ${True}    ${True}
290
291 Test Is Flow 25 Updated
292     f25.xml    ${True}    ${True}    ${True}
293
294 Test Is Flow 31 Updated
295     f31.xml    ${True}    ${True}    ${True}
296
297 Test Is Flow 36 Updated
298     f36.xml    ${True}    ${True}    ${True}
299
300 Test Is Flow 38 Updated
301     f38.xml    ${True}    ${True}    ${True}
302
303 Test Is Flow 43 Updated
304     f43.xml    ${True}    ${True}    ${True}
305
306 Test Is Flow 45 Updated
307     f45.xml    ${True}    ${True}    ${True}
308
309 Test Is Flow 47 Updated
310     f47.xml    ${True}    ${True}    ${True}
311
312 Test Is Flow 101 Updated
313     f101.xml    ${True}    ${True}    ${True}
314
315 Test Is Flow 102 Updated
316     f102.xml    ${True}    ${True}    ${True}
317
318 Test Is Flow 103 Updated
319     f103.xml    ${True}    ${True}    ${True}
320
321 Test Is Flow 104 Updated
322     f104.xml    ${True}    ${True}    ${True}
323
324 Test Is Flow 105 Updated
325     f105.xml    ${True}    ${True}    ${True}
326
327 Test Is Flow 106 Updated
328     f106.xml    ${True}    ${True}    ${True}
329
330 Test Is Flow 107 Updated
331     f107.xml    ${True}    ${True}    ${True}
332
333 Test Is Flow 108 Updated
334     f108.xml    ${True}    ${True}    ${True}
335
336 Test Is Flow 109 Updated
337     f109.xml    ${True}    ${True}    ${True}
338
339 Test Is Flow 110 Updated
340     f110.xml    ${True}    ${True}    ${True}
341
342 Test Is Flow 113 Updated
343     f113.xml    ${True}    ${True}    ${True}
344
345 Test Is Flow 156 Updated
346     f156.xml    ${True}    ${True}    ${True}
347
348 Test Is Flow 201 Updated
349     f201.xml    ${True}    ${True}    ${True}
350
351 Test Is Flow 202 Updated
352     f202.xml    ${True}    ${True}    ${True}
353
354 Test Is Flow 203 Updated
355     f203.xml    ${True}    ${True}    ${True}
356
357 Test Is Flow 204 Updated
358     f204.xml    ${True}    ${True}    ${True}
359
360 Test Is Flow 205 Updated
361     f205.xml    ${True}    ${True}    ${True}
362
363 Test Is Flow 206 Updated
364     f206.xml    ${True}    ${True}    ${True}
365
366 Test Is Flow 209 Updated
367     f209.xml    ${True}    ${True}    ${True}
368
369 Test Is Flow 214 Updated
370     f214.xml    ${True}    ${True}    ${True}
371
372 Test Is Flow 218 Updated
373     f218.xml    ${True}    ${True}    ${True}
374
375 Test Is Flow 219 Updated
376     f219.xml    ${True}    ${True}    ${True}
377
378 Test Is Flow 220 Updated
379     f220.xml    ${True}    ${True}    ${True}
380
381 Test Delete Flows Group 0
382     [Documentation]    Delete all flows and waits for SM to collect data
383     [Template]    NONE
384     : FOR    ${flowfile}    IN    @{flowlist0}
385     \    Log    ${flowfile}
386     \    Create Flow Variables For Suite From XML File    ${XmlsDir}/${flowfile}
387     \    Run Keyword And Continue On Failure    Delete Flow Via Restconf    ${switch_idx}    ${table_id}    ${flow_id}
388     # Lets wait for ofp to collect stats
389     Sleep    3s
390     # Show switch content (for debug purposes if needed)
391     Write    dpctl dump-flows -O OpenFlow13
392     Read Until    mininet>
393
394 Test Is Flow 1 Deleted
395     f1.xml    ${False}    ${False}    ${True}
396
397 Test Is Flow 2 Deleted
398     f2.xml    ${False}    ${False}    ${True}
399
400 Test Is Flow 3 Deleted
401     f3.xml    ${False}    ${False}    ${True}
402
403 Test Is Flow 4 Deleted
404     f4.xml    ${False}    ${False}    ${True}
405
406 Test Is Flow 5 Deleted
407     f5.xml    ${False}    ${False}    ${True}
408
409 Test Is Flow 6 Deleted
410     f6.xml    ${False}    ${False}    ${True}
411
412 Test Is Flow 7 Deleted
413     f7.xml    ${False}    ${False}    ${True}
414
415 Test Is Flow 8 Deleted
416     f8.xml    ${False}    ${False}    ${True}
417
418 Test Is Flow 9 Deleted
419     f9.xml    ${False}    ${False}    ${True}
420
421 Test Is Flow 10 Deleted
422     f10.xml    ${False}    ${False}    ${True}
423
424 Test Is Flow 11 Deleted
425     f11.xml    ${False}    ${False}    ${True}
426
427 Test Is Flow 12 Deleted
428     f12.xml    ${False}    ${False}    ${True}
429
430 Test Is Flow 13 Deleted
431     f13.xml    ${False}    ${False}    ${True}
432
433 Test Is Flow 14 Deleted
434     f14.xml    ${False}    ${False}    ${True}
435
436 Test Is Flow 15 Deleted
437     f15.xml    ${False}    ${False}    ${True}
438
439 Test Is Flow 16 Deleted
440     f16.xml    ${False}    ${False}    ${True}
441
442 Test Is Flow 17 Deleted
443     f17.xml    ${False}    ${False}    ${True}
444
445 Test Is Flow 18 Deleted
446     f18.xml    ${False}    ${False}    ${True}
447
448 Test Is Flow 19 Deleted
449     f19.xml    ${False}    ${False}    ${True}
450
451 Test Is Flow 20 Deleted
452     f20.xml    ${False}    ${False}    ${True}
453
454 Test Is Flow 21 Deleted
455     f21.xml    ${False}    ${False}    ${True}
456
457 Test Is Flow 22 Deleted
458     f22.xml    ${False}    ${False}    ${True}
459
460 Test Is Flow 23 Deleted
461     f23.xml    ${False}    ${False}    ${True}
462
463 Test Is Flow 24 Deleted
464     f24.xml    ${False}    ${False}    ${True}
465
466 Test Is Flow 25 Deleted
467     f25.xml    ${False}    ${False}    ${True}
468
469 Test Is Flow 31 Deleted
470     f31.xml    ${False}    ${False}    ${True}
471
472 Test Is Flow 36 Deleted
473     f36.xml    ${False}    ${False}    ${True}
474
475 Test Is Flow 38 Deleted
476     f38.xml    ${False}    ${False}    ${True}
477
478 Test Is Flow 43 Deleted
479     f43.xml    ${False}    ${False}    ${True}
480
481 Test Is Flow 45 Deleted
482     f45.xml    ${False}    ${False}    ${True}
483
484 Test Is Flow 47 Deleted
485     f47.xml    ${False}    ${False}    ${True}
486
487 Test Is Flow 101 Deleted
488     f101.xml    ${False}    ${False}    ${True}
489
490 Test Is Flow 102 Deleted
491     f102.xml    ${False}    ${False}    ${True}
492
493 Test Is Flow 103 Deleted
494     f103.xml    ${False}    ${False}    ${True}
495
496 Test Is Flow 104 Deleted
497     f104.xml    ${False}    ${False}    ${True}
498
499 Test Is Flow 105 Deleted
500     f105.xml    ${False}    ${False}    ${True}
501
502 Test Is Flow 106 Deleted
503     f106.xml    ${False}    ${False}    ${True}
504
505 Test Is Flow 107 Deleted
506     f107.xml    ${False}    ${False}    ${True}
507
508 Test Is Flow 108 Deleted
509     f108.xml    ${False}    ${False}    ${True}
510
511 Test Is Flow 109 Deleted
512     f109.xml    ${False}    ${False}    ${True}
513
514 Test Is Flow 110 Deleted
515     f110.xml    ${False}    ${False}    ${True}
516
517 Test Is Flow 113 Deleted
518     f113.xml    ${False}    ${False}    ${True}
519
520 Test Is Flow 156 Deleted
521     f156.xml    ${False}    ${False}    ${True}
522
523 Test Is Flow 201 Deleted
524     f201.xml    ${False}    ${False}    ${True}
525
526 Test Is Flow 202 Deleted
527     f202.xml    ${False}    ${False}    ${True}
528
529 Test Is Flow 203 Deleted
530     f203.xml    ${False}    ${False}    ${True}
531
532 Test Is Flow 204 Deleted
533     f204.xml    ${False}    ${False}    ${True}
534
535 Test Is Flow 205 Deleted
536     f205.xml    ${False}    ${False}    ${True}
537
538 Test Is Flow 206 Deleted
539     f206.xml    ${False}    ${False}    ${True}
540
541 Test Is Flow 209 Deleted
542     f209.xml    ${False}    ${False}    ${True}
543
544 Test Is Flow 214 Deleted
545     f214.xml    ${False}    ${False}    ${True}
546
547 Test Is Flow 218 Deleted
548     f218.xml    ${False}    ${False}    ${True}
549
550 Test Is Flow 219 Deleted
551     f219.xml    ${False}    ${False}    ${True}
552
553 Test Is Flow 220 Deleted
554     f220.xml    ${False}    ${False}    ${True}
555
556 *** Keywords ***
557 Initialization Phase
558     [Documentation]    Initiate tcp connection with controller
559     Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
560     Write    dpctl dump-flows -O OpenFlow13
561     Read Until    mininet>