2 Documentation Test suite for OpenFlow group
6 Library OperatingSystem
7 Library RequestsLibrary
8 Library ../../../libraries/Common.py
9 Variables ../../../variables/Variables.py
10 Resource ../../../variables/openflowplugin/Variables.robot
11 Resource ../../../libraries/Utils.robot
13 Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML}
14 Suite Teardown Delete All Sessions
18 ${REST_CONTEXT} ${RFC8040_NODES_API}/node=openflow%3A1
19 ${GROUP} ${CURDIR}/../../../variables/xmls/g4.xml
20 ${FLOW} ${CURDIR}/../../../variables/xmls/f50.xml
27 [Documentation] Get the inventory to make sure openflow:1 comes up
28 ${node_list} Create List openflow:1
29 Wait Until Keyword Succeeds
32 ... Check For Elements At URI
33 ... ${REST_CONTEXT}?${RFC8040_OPERATIONAL_CONTENT}
37 [Documentation] Add a group using RESTCONF
39 ${body} OperatingSystem.Get File ${GROUP}
40 Set Suite Variable ${body}
41 ${resp} RequestsLibrary.Put Request
43 ... ${REST_CONTEXT}/flow-node-inventory:group=1
44 ... headers=${HEADERS_XML}
47 BuiltIn.Should_Match "${resp.status_code}" "20?"
49 Verify after adding group config
50 [Documentation] Get the group stat in config
51 ${resp} RequestsLibrary.Get Request
53 ... ${REST_CONTEXT}/flow-node-inventory:group=1?${RFC8040_CONFIG_CONTENT}
55 Should Be Equal As Strings ${resp.status_code} 200
56 Should Contain ${resp.content} ${GROUP_NAME}
58 Verify after adding group operational
59 [Documentation] Get the group stat in operational
60 ${elements} Create List group-statistics ref-count packet-count byte-count buckets
61 ... weight group-select
62 Wait Until Keyword Succeeds
65 ... Check For Elements At URI
66 ... ${REST_CONTEXT}/flow-node-inventory:group=1?${RFC8040_OPERATIONAL_CONTENT}
69 Add a flow that includes a group
70 [Documentation] Push a flow through RESTCONF
72 ${body} OperatingSystem.Get File ${FLOW}
73 Set Suite Variable ${body}
74 ${resp} RequestsLibrary.Put Request
76 ... ${REST_CONTEXT}/flow-node-inventory:table=0/flow=1
77 ... headers=${HEADERS_XML}
80 BuiltIn.Should_Match "${resp.status_code}" "20?"
82 Verify after adding flow config
83 [Documentation] Verify the flow
85 ${resp} RequestsLibrary.Get Request
87 ... ${REST_CONTEXT}/flow-node-inventory:table=0/flow=1?${RFC8040_CONFIG_CONTENT}
89 Should Be Equal As Strings ${resp.status_code} 200
90 Should Contain ${resp.content} ${FLOW_NAME}
92 Verify after adding flow operational
93 [Documentation] Verify the flow
94 ${elements} Create List group-action group-id
95 Wait Until Keyword Succeeds
98 ... Check For Elements At URI
99 ... ${REST_CONTEXT}/flow-node-inventory:table=0/flow=1?${RFC8040_OPERATIONAL_CONTENT}
103 [Documentation] Remove the flow
104 ${resp} RequestsLibrary.Delete Request session ${REST_CONTEXT}/flow-node-inventory:table=0/flow=1
105 Should Be Equal As Strings ${resp.status_code} 200
107 Verify after deleting flow
108 [Documentation] Verify the flow removal
110 ${resp} RequestsLibrary.Get Request
112 ... ${REST_CONTEXT}/flow-node-inventory:table=0/flow=1?${RFC8040_CONFIG_CONTENT}
113 Should Not Contain ${resp.content} ${FLOW_NAME}
116 [Documentation] Remove the group
118 ${resp} RequestsLibrary.Delete Request session ${REST_CONTEXT}/flow-node-inventory:group=1
120 Should Be Equal As Strings ${resp.status_code} 200
122 Verify after deleting group
123 [Documentation] Verify the flow removal
125 ${resp} RequestsLibrary.Get Request
127 ... ${REST_CONTEXT}/flow-node-inventory:group=1?${RFC8040_CONFIG_CONTENT}
128 Should Not Contain ${resp.content} ${GROUP_NAME}