2 Documentation Test suite to verify update behaviour during different topoprocessing operations on NT and inventory models.
3 ... Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIG_API to OPERATIONAL_API.
4 ... Need for this change is also a reason why main feature (odl-topoprocessing-framework) is installed after file change and not during boot.
5 ... Suite setup also installs features required for tested models and clears karaf logs for further synchronization. Tests themselves send configurational
6 ... xmls and verify output. Topology-id on the end of each urls must match topology-id from xml. Yang models of components in topology are defined in xmls.
7 Suite Setup Setup Environment
8 Suite Teardown Clean Environment
9 Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
10 Test Teardown Refresh Underlay Topologies And Delete Overlay Topology
11 Library RequestsLibrary
14 Variables ../../../variables/topoprocessing/TopologyRequests.py
15 Variables ../../../variables/topoprocessing/TargetFields.py
16 Variables ../../../variables/Variables.py
17 Resource ../../../libraries/KarafKeywords.robot
18 Resource ../../../libraries/Utils.robot
19 Resource ../../../libraries/TopoprocessingKeywords.robot
22 Unification Node Update
23 [Documentation] Test processing of updates using unification operation on Network Topology model
24 #Create the original topology
25 ${model} Set Variable network-topology-model
26 ${request} Prepare Unification Topology Request ${UNIFICATION_NT} ${model} node network-topo:1 network-topo:2
27 ${request} Insert Target Field ${request} 0 ${ISIS_NODE_TE_ROUTER_ID_IPV4} 0
28 ${request} Insert Target Field ${request} 1 ${ISIS_NODE_TE_ROUTER_ID_IPV4} 0
29 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
30 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=8 supporting-node_count=10
31 ... tp_count=14 tp-ref_count=14
32 #Update a node, expecting a unification of two nodes into one
33 ${node} Create Isis Node bgp:1 router-id-ipv4=192.168.1.2
34 Basic Request Put ${node} network-topology:network-topology/topology/network-topo:1/node/bgp:1
35 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=7 supporting-node_count=10
36 ... tp_count=11 tp-ref_count=11
37 FOR ${index} IN RANGE 1 11
38 Should Contain X Times ${resp.content} <node-ref>bgp:${index}</node-ref> 1
40 Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:2 bgp:1
41 #Update a unified node, expecting creation of a new overlay node
42 ${node} Create Isis Node bgp:3 router-id-ipv4=192.168.3.1
43 Basic Request Put ${node} network-topology:network-topology/topology/network-topo:1/node/bgp:3
44 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=8 supporting-node_count=10
45 ... tp_count=9 tp-ref_count=9
46 FOR ${index} IN RANGE 1 11
47 Should Contain X Times ${resp.content} <node-ref>bgp:${index}</node-ref> 1
50 Unification Node Inventory
51 [Documentation] Test processing of updates using unification operation on Inventory model
52 ${model} Set Variable opendaylight-inventory-model
53 ${request} Prepare Unification Topology Request ${UNIFICATION_NT} ${model} node openflow-topo:1 openflow-topo:2
54 ${request} Insert Target Field ${request} 0 ${OPENFLOW_NODE_IP_ADDRESS} 0
55 ${request} Insert Target Field ${request} 1 ${OPENFLOW_NODE_IP_ADDRESS} 0
56 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
57 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=7 supporting-node_count=10
58 ... tp_count=12 tp-ref_count=12
59 #Update a node, expecting unification of two nodes into one
60 ${node} Create Openflow Node openflow:2 192.168.1.1
61 Basic Request Put ${node} opendaylight-inventory:nodes/node/openflow:2
62 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=6 supporting-node_count=10
63 ... tp_count=12 tp-ref_count=12
64 FOR ${index} IN RANGE 1 11
65 Should Contain X Times ${resp.content} <node-ref>of-node:${index}</node-ref> 1
67 Check Aggregated Node in Topology ${model} ${resp.content} 5 of-node:2 of-node:6 of-node:1
68 #Update a unified node, expecting creation of a new overlay node
69 ${node} Create Openflow Node openflow:4 192.168.3.1
70 Basic Request Put ${node} opendaylight-inventory:nodes/node/openflow:4
71 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=7 supporting-node_count=10
72 ... tp_count=12 tp-ref_count=12
73 FOR ${index} IN RANGE 1 11
74 Should Contain X Times ${resp.content} <node-ref>of-node:${index}</node-ref> 1
77 Filtration Range Number Node Update Network Topology Model
78 ${model} Set Variable network-topology-model
79 ${request} Prepare Filtration Topology Request ${FILTRATION_NT} ${model} node network-topo:2
80 ${request} Insert Filter ${request} ${FILTER_RANGE_NUMBER} ${OVSDB_OVS_VERSION}
81 ${request} Set Range Number Filter ${request} 20 25
82 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
83 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=4 supporting-node_count=4
84 ... node-ref_count=4 tp_count=5 tp-ref_count=5
85 ${request} Create Isis Node bgp:7 17
86 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:2/node/bgp:7
87 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=3 supporting-node_count=3
88 ... node-ref_count=3 tp_count=3 tp-ref_count=3
89 FOR ${index} IN RANGE 8 11
90 Should Contain X Times ${resp.content} <node-ref>bgp:${index}</node-ref> 1
92 Should Not Contain ${resp.content} <node-ref>bgp:7</node-ref>
93 ${topology_id} Set Variable network-topo:2
94 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:8 tp:8:1 tp:8:1
95 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:9 tp:9:1 tp:9:1
96 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:10 tp:10:1 tp:10:1
97 ${request} Create Isis Node bgp:7 23
98 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:2/node/bgp:7
99 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=4 supporting-node_count=4
100 ... node-ref_count=4 tp_count=3 tp-ref_count=3
101 ${request} Create OVSDB Termination Point tp:7:1 1119
102 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:2/node/bgp:7/termination-point/tp:7:1
103 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=4 supporting-node_count=4
104 ... node-ref_count=4 tp_count=4 tp-ref_count=4
105 FOR ${index} IN RANGE 7 11
106 Should Contain X Times ${resp.content} <node-ref>bgp:${index}</node-ref> 1
108 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:7 tp:7:1 tp:7:1
109 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:8 tp:8:1 tp:8:1
110 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:9 tp:9:1 tp:9:1
111 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:10 tp:10:1 tp:10:1
113 Filtration Range Number Node Update Inventory Model
114 ${request} Prepare Filtration Topology Request ${FILTRATION_NT} opendaylight-inventory-model node openflow-topo:2
115 ${request} Insert Filter ${request} ${FILTER_RANGE_NUMBER} ${OPENFLOW_NODE_SERIAL_NUMBER}
116 ${request} Set Range Number Filter ${request} 20 25
117 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
118 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=3 supporting-node_count=3
119 ... node-ref_count=3 tp_count=0 tp-ref_count=0
120 #Update a Node so it passes filtration
121 ${request} Create Openflow Node openflow:7 192.168.2.3 23
122 Basic Request Put ${request} opendaylight-inventory:nodes/node/openflow:7
123 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=4 supporting-node_count=4
124 ... node-ref_count=4 tp_count=0 tp-ref_count=0
125 FOR ${index} IN RANGE 7 11
126 Should Contain X Times ${resp.content} <node-ref>of-node:${index}</node-ref> 1
127 #Update a Node so it is filtered out
129 ${request} Create Openflow Node openflow:7 192.168.2.3 17
130 Basic Request Put ${request} opendaylight-inventory:nodes/node/openflow:7
131 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=3 supporting-node_count=3
132 ... node-ref_count=3 tp_count=0 tp-ref_count=0
133 FOR ${index} IN RANGE 8 11
134 Should Contain X Times ${resp.content} <node-ref>of-node:${index}</node-ref> 1
136 Should Not Contain ${resp.content} <node-ref>of-node:7</node-ref>
138 Filtration Range Number Termination Point Update NT
139 [Documentation] Test processing of updates using range number type of filtration operation on Network Topology model
140 ${model} Set Variable network-topology-model
141 ${request} Prepare Filtration Topology Request ${FILTRATION_NT} ${model} termination-point network-topo:2
142 ${request} Insert Filter ${request} ${FILTER_RANGE_NUMBER} ${OVSDB_OFPORT}
143 ${request} Set Range Number Filter ${request} 1115 1119
144 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
145 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5
146 ... node-ref_count=5 tp_count=3 tp-ref_count=3
147 #Update a previously out-of-range termination point, so it passes filtration
148 ${terminationPoint} Create OVSDB Termination Point tp:8:1 1115
149 Basic Request Put ${terminationPoint} network-topology:network-topology/topology/network-topo:2/node/bgp:8/termination-point/tp:8:1
150 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5
151 ... node-ref_count=5 tp_count=4 tp-ref_count=4
152 Check Aggregated Termination Point in Node ${model} ${resp.content} network-topo:2 bgp:8 tp:8:1 tp:8:1
153 #Update a previsouly in-range termination point, so it is filtered out
154 ${terminationPoint} Create OVSDB Termination Point tp:7:2 1110
155 Basic Request Put ${terminationPoint} network-topology:network-topology/topology/network-topo:2/node/bgp:7/termination-point/tp:7:2
156 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5
157 ... node-ref_count=5 tp_count=3 tp-ref_count=3
158 Check Aggregated Termination Point in Node ${model} ${resp.content} network-topo:2 bgp:7 tp:7:1 tp:7:1
160 Filtration Range Number Termination Point Update Inventory
161 [Documentation] Test processing of updates using range number type of filtration operation on Inventory model
162 ${model} Set Variable opendaylight-inventory-model
163 ${request} Prepare Filtration Topology Request ${FILTRATION_NT} ${model} termination-point openflow-topo:1
164 ${request} Insert Filter ${request} ${FILTER_RANGE_NUMBER} ${OPENFLOW_NODE_CONNECTOR_PORT_NUMBER}
165 ${request} Set Range Number Filter ${request} 2 4
166 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
167 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5
168 ... node-ref_count=5 tp_count=5 tp-ref_count=5
169 #Update a previously out-of-range termination point, so it passes filtration
170 ${nodeConnector} Create Openflow Node Connector openflow:2:1 3
171 Basic Request Put ${nodeConnector} opendaylight-inventory:nodes/node/openflow:2/node-connector/openflow:2:1
172 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5
173 ... node-ref_count=5 tp_count=6 tp-ref_count=6
174 Check Aggregated Termination Point in Node ${model} ${resp.content} openflow-topo:1 of-node:2 tp:2:1 tp:2:1
175 Check Aggregated Termination Point in Node ${model} ${resp.content} openflow-topo:1 of-node:2 tp:2:2 tp:2:2
176 Check Aggregated Termination Point in Node ${model} ${resp.content} openflow-topo:1 of-node:2 tp:2:3 tp:2:3
177 #Update an in-range termination point, so it is filtered out
178 ${nodeConnector} Create Openflow Node Connector openflow:3:2 5
179 Basic Request Put ${nodeConnector} opendaylight-inventory:nodes/node/openflow:3/node-connector/openflow:3:2
180 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5
181 ... node-ref_count=5 tp_count=5 tp-ref_count=5
182 Check Aggregated Termination Point in Node ${model} ${resp.content} openflow-topo:1 of-node:3 tp:3:1 tp:3:1
184 Filtration Range Number Link Update Network Topology Model
185 [Documentation] Tests the processing of link update requests when using a range-number filtration on NT model
186 ${request} Prepare Filtration Topology Request ${FILTRATION_NT} network-topology-model link network-topo:1
187 ${request} Insert Filter ${request} ${FILTER_RANGE_NUMBER} ${IGP_LINK_METRIC}
188 ${request} Set Range Number Filter ${request} 11 13
189 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
190 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete link_count=3 link-ref_count=3
192 ${request} Create Link link:1:4 bgp:1 bgp:4 linkA 15
193 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:1/link/link:1:4
194 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete link_count=2 link-ref_count=2
195 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/network-topo:1/link/link:1:3</link-ref> 1
196 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/network-topo:1/link/link:1:2-1</link-ref> 1
197 Should Not Contain ${resp.content} network-topology/topology/network-topo:1/link/link:1:4
198 #Put the link back in
199 ${request} Create Link link:1:4 bgp:1 bgp:4 linkA 12
200 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:1/link/link:1:4
201 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete link_count=3 link-ref_count=3
202 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/network-topo:1/link/link:1:4</link-ref> 1
203 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/network-topo:1/link/link:1:3</link-ref> 1
204 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/network-topo:1/link/link:1:2-1</link-ref> 1
206 Filtration Range Number Link Update Inventory Model
207 [Documentation] Tests the processing of link update requests when using a range-number filtration on Inventory model
208 ${request} Prepare Filtration Topology Request ${FILTRATION_NT} opendaylight-inventory-model link openflow-topo:3
209 ${request} Insert Filter ${request} ${FILTER_RANGE_NUMBER} ${IGP_LINK_METRIC}
210 ${request} Set Range Number Filter ${request} 14 15
211 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
212 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete link_count=2 link-ref_count=2
213 ${request} Create Link link:11:12 of-node:11 of-node:12 linkB 14
214 Basic Request Put ${request} network-topology:network-topology/topology/openflow-topo:3/link/link:11:12
215 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete link_count=3 link-ref_count=3
216 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/openflow-topo:3/link/link:14:12</link-ref> 1
217 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/openflow-topo:3/link/link:15:13</link-ref> 1
218 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/openflow-topo:3/link/link:11:12</link-ref> 1
219 ${request} Create Link link:11:12 of-node:11 of-node:12 linkB 13
220 Basic Request Put ${request} network-topology:network-topology/topology/openflow-topo:3/link/link:11:12
221 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete link_count=2 link-ref_count=2
222 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/openflow-topo:3/link/link:14:12</link-ref> 1
223 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/openflow-topo:3/link/link:15:13</link-ref> 1
225 Unification Filtration Node Update Inside Network Topology model
226 ${model} Set Variable network-topology-model
227 ${request} Prepare Unification Filtration Inside Topology Request ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE} ${model} node ${ISIS_NODE_TE_ROUTER_ID_IPV4} network-topo:4
228 ${request} Insert Filter With ID ${request} ${FILTER_IPV4} ${ISIS_NODE_TE_ROUTER_ID_IPV4} 1
229 ${request} Insert Apply Filters ${request} 1 1
230 ${request} Set IPV4 Filter ${request} 192.168.2.1/24
231 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
232 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=2 supporting-node_count=3
233 ... node-ref_count=3 tp_count=0 tp-ref_count=0
234 ${request} Create Isis Node bgp:17 10 192.168.2.1
235 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:4/node/bgp:17
236 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=2 supporting-node_count=4
237 ... node-ref_count=4 tp_count=0 tp-ref_count=0
238 FOR ${index} IN RANGE 17 21
239 Should Contain X Times ${resp.content} <node-ref>bgp:${index}</node-ref> 1
241 Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:18 bgp:17 bgp:20
242 ${request} Create Isis Node bgp:17 10 192.168.1.2
243 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:4/node/bgp:17
244 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=2 supporting-node_count=3
245 ... node-ref_count=3 tp_count=0 tp-ref_count=0
246 FOR ${index} IN RANGE 18 21
247 Should Contain X Times ${resp.content} <node-ref>bgp:${index}</node-ref> 1
249 Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:18 bgp:20
251 Unification Filtration Node Update Inside Inventory model
252 ${model} Set Variable opendaylight-inventory-model
253 ${request} Prepare Unification Filtration Inside Topology Request ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE} ${model} node ${OPENFLOW_NODE_IP_ADDRESS} openflow-topo:4
254 ${request} Insert Filter With ID ${request} ${FILTER_IPV4} ${OPENFLOW_NODE_IP_ADDRESS} 1
255 ${request} Insert Apply Filters ${request} 1 1
256 ${request} Set IPV4 Filter ${request} 192.168.2.1/24
257 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
258 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=2 supporting-node_count=4
259 ... node-ref_count=4 tp_count=0 tp-ref_count=0
260 ${request} Create Openflow Node openflow:17 192.168.1.2
261 Basic Request Put ${request} opendaylight-inventory:nodes/node/openflow:17
262 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=2 supporting-node_count=3
263 ... node-ref_count=3 tp_count=0 tp-ref_count=0
264 FOR ${index} IN RANGE 18 21
265 Should Contain X Times ${resp.content} <node-ref>of-node:${index}</node-ref> 1
267 ${node} Get Element ${resp.content} xpath=.//node/supporting-node[node-ref='of-node:19']/..
268 ${node} Element to String ${node}
269 Should Contain X Times ${node} <supporting-node> 2
270 Should Contain ${node} <node-ref>of-node:19</node-ref>
271 Should Contain ${node} <node-ref>of-node:20</node-ref>
272 Should Not Contain ${node} <node-ref>of-node:17</node-ref>
273 ${request} Create Openflow Node openflow:17 192.168.2.3
274 Basic Request Put ${request} opendaylight-inventory:nodes/node/openflow:17
275 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=2 supporting-node_count=4
276 ... node-ref_count=4 tp_count=0 tp-ref_count=0
277 FOR ${index} IN RANGE 17 21
278 Should Contain X Times ${resp.content} <node-ref>of-node:${index}</node-ref> 1
280 Check Aggregated Node in Topology ${model} ${resp.content} 0 of-node:17 of-node:19 of-node:20
282 Link Computation Aggregation Inside Update NT
283 [Documentation] Test of link computation with unification type of aggregation inside on updated nodes from network-topology model
284 ${model} Set Variable network-topology-model
285 ${request} Prepare Unification Inside Topology Request ${UNIFICATION_NT_AGGREGATE_INSIDE} ${model} node network-topo:6
286 ${request} Insert Target Field ${request} 0 ${ISIS_NODE_TE_ROUTER_ID_IPV4} 0
287 ${request} Insert Link Computation Inside ${request} ${LINK_COMPUTATION_INSIDE} n:network-topology-model network-topo:6
288 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
289 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=4 supporting-node_count=5
290 ... node-ref_count=5 link_count=4 link-ref_count=4
291 #Divide double nodes from overlay topology
292 ${request} Create Isis Node bgp:29 router-id-ipv4=192.168.1.3
293 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:6/node/bgp:29
294 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5
295 ... node-ref_count=5 link_count=4 link-ref_count=4
296 ${node_26} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:26
297 ${node_27} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:27
298 ${node_28} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:28
299 ${node_29} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:29
300 ${node_30} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:30
301 ${topo_id} Set Variable network-topo:6
302 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:28:29 ${node_28} ${node_29}
303 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:26:28 ${node_26} ${node_28}
304 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:29:30-2 ${node_29} ${node_30}
305 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:29:30-1 ${node_29} ${node_30}
306 #Update link to node out of topology
307 ${request} Create Link link:28:29 bgp:28 bgp:31 linkB 11
308 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:6/link/link:28:29
309 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5
310 ... node-ref_count=5 link_count=3 link-ref_count=3
312 ${node_26} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:26
313 ${node_27} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:27
314 ${node_28} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:28
315 ${node_29} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:29
316 ${node_30} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:30
317 Should Not Contain ${resp.content} /network-topology/topology/network-topo:6/link/link:28:29
318 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:26:28 ${node_26} ${node_28}
319 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:29:30-2 ${node_29} ${node_30}
320 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:29:30-1 ${node_29} ${node_30}
321 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:29:30-1 ${node_29} ${node_30}