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 Teardown Refresh Underlay Topologies And Delete Overlay Topology
10 Library RequestsLibrary
13 Variables ../../../variables/topoprocessing/TopologyRequests.py
14 Variables ../../../variables/topoprocessing/TargetFields.py
15 Variables ../../../variables/Variables.py
16 Resource ../../../libraries/KarafKeywords.robot
17 Resource ../../../libraries/Utils.robot
18 Resource ../../../libraries/TopoprocessingKeywords.robot
21 Unification Node Update
22 [Documentation] Test processing of updates using unification operation on Network Topology model
23 #Create the original topology
24 ${model} Set Variable network-topology-model
25 ${request} Prepare Unification Topology Request ${UNIFICATION_NT} ${model} node network-topo:1 network-topo:2
26 ${request} Insert Target Field ${request} 0 ${ISIS_NODE_TE_ROUTER_ID_IPV4} 0
27 ${request} Insert Target Field ${request} 1 ${ISIS_NODE_TE_ROUTER_ID_IPV4} 0
28 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
29 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=8 supporting-node_count=10 tp_count=14 tp-ref_count=14
30 #Update a node, expecting a unification of two nodes into one
31 ${node} Create Isis Node bgp:1 router-id-ipv4=192.168.1.2
32 Basic Request Put ${node} network-topology:network-topology/topology/network-topo:1/node/bgp:1
33 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=7 supporting-node_count=10 tp_count=11 tp-ref_count=11
34 : FOR ${index} IN RANGE 1 11
35 \ Should Contain X Times ${resp.content} <node-ref>bgp:${index}</node-ref> 1
36 Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:2 bgp:1
37 #Update a unified node, expecting creation of a new overlay node
38 ${node} Create Isis Node bgp:3 router-id-ipv4=192.168.3.1
39 Basic Request Put ${node} network-topology:network-topology/topology/network-topo:1/node/bgp:3
40 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=8 supporting-node_count=10 tp_count=9 tp-ref_count=9
41 : FOR ${index} IN RANGE 1 11
42 \ Should Contain X Times ${resp.content} <node-ref>bgp:${index}</node-ref> 1
44 Unification Node Inventory
45 [Documentation] Test processing of updates using unification operation on Inventory model
46 ${model} Set Variable opendaylight-inventory-model
47 ${request} Prepare Unification Topology Request ${UNIFICATION_NT} ${model} node openflow-topo:1 openflow-topo:2
48 ${request} Insert Target Field ${request} 0 ${OPENFLOW_NODE_IP_ADDRESS} 0
49 ${request} Insert Target Field ${request} 1 ${OPENFLOW_NODE_IP_ADDRESS} 0
50 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
51 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=7 supporting-node_count=10 tp_count=12 tp-ref_count=12
52 #Update a node, expecting unification of two nodes into one
53 ${node} Create Openflow Node openflow:2 192.168.1.1
54 Basic Request Put ${node} opendaylight-inventory:nodes/node/openflow:2
55 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=6 supporting-node_count=10 tp_count=12 tp-ref_count=12
56 : FOR ${index} IN RANGE 1 11
57 \ Should Contain X Times ${resp.content} <node-ref>of-node:${index}</node-ref> 1
58 Check Aggregated Node in Topology ${model} ${resp.content} 5 of-node:2 of-node:6 of-node:1
59 #Update a unified node, expecting creation of a new overlay node
60 ${node} Create Openflow Node openflow:4 192.168.3.1
61 Basic Request Put ${node} opendaylight-inventory:nodes/node/openflow:4
62 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=7 supporting-node_count=10 tp_count=12 tp-ref_count=12
63 : FOR ${index} IN RANGE 1 11
64 \ Should Contain X Times ${resp.content} <node-ref>of-node:${index}</node-ref> 1
66 Filtration Range Number Node Update Network Topology Model
67 ${model} Set Variable network-topology-model
68 ${request} Prepare Filtration Topology Request ${FILTRATION_NT} ${model} node network-topo:2
69 ${request} Insert Filter ${request} ${FILTER_RANGE_NUMBER} ${OVSDB_OVS_VERSION}
70 ${request} Set Range Number Filter ${request} 20 25
71 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
72 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=4 supporting-node_count=4 node-ref_count=4 tp_count=5 tp-ref_count=5
73 ${request} Create Isis Node bgp:7 17
74 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:2/node/bgp:7
75 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=3 supporting-node_count=3 node-ref_count=3 tp_count=3 tp-ref_count=3
76 : FOR ${index} IN RANGE 8 11
77 \ Should Contain X Times ${resp.content} <node-ref>bgp:${index}</node-ref> 1
78 Should Not Contain ${resp.content} <node-ref>bgp:7</node-ref>
79 ${topology_id} Set Variable network-topo:2
80 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:8 tp:8:1 tp:8:1
81 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:9 tp:9:1 tp:9:1
82 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:10 tp:10:1 tp:10:1
83 ${request} Create Isis Node bgp:7 23
84 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:2/node/bgp:7
85 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=4 supporting-node_count=4 node-ref_count=4 tp_count=3 tp-ref_count=3
86 ${request} Create OVSDB Termination Point tp:7:1 1119
87 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:2/node/bgp:7/termination-point/tp:7:1
88 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=4 supporting-node_count=4 node-ref_count=4 tp_count=4 tp-ref_count=4
89 : FOR ${index} IN RANGE 7 11
90 \ Should Contain X Times ${resp.content} <node-ref>bgp:${index}</node-ref> 1
91 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:7 tp:7:1 tp:7:1
92 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:8 tp:8:1 tp:8:1
93 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:9 tp:9:1 tp:9:1
94 Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:10 tp:10:1 tp:10:1
96 Filtration Range Number Node Update Inventory Model
97 ${request} Prepare Filtration Topology Request ${FILTRATION_NT} opendaylight-inventory-model node openflow-topo:2
98 ${request} Insert Filter ${request} ${FILTER_RANGE_NUMBER} ${OPENFLOW_NODE_SERIAL_NUMBER}
99 ${request} Set Range Number Filter ${request} 20 25
100 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
101 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=3 supporting-node_count=3 node-ref_count=3 tp_count=0 tp-ref_count=0
102 #Update a Node so it passes filtration
103 ${request} Create Openflow Node openflow:7 192.168.2.3 23
104 Basic Request Put ${request} opendaylight-inventory:nodes/node/openflow:7
105 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=4 supporting-node_count=4 node-ref_count=4 tp_count=0 tp-ref_count=0
106 : FOR ${index} IN RANGE 7 11
107 \ Should Contain X Times ${resp.content} <node-ref>of-node:${index}</node-ref> 1
108 #Update a Node so it is filtered out
109 ${request} Create Openflow Node openflow:7 192.168.2.3 17
110 Basic Request Put ${request} opendaylight-inventory:nodes/node/openflow:7
111 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=3 supporting-node_count=3 node-ref_count=3 tp_count=0 tp-ref_count=0
112 : FOR ${index} IN RANGE 8 11
113 \ Should Contain X Times ${resp.content} <node-ref>of-node:${index}</node-ref> 1
114 Should Not Contain ${resp.content} <node-ref>of-node:7</node-ref>
116 Filtration Range Number Termination Point Update NT
117 [Documentation] Test processing of updates using range number type of filtration operation on Network Topology model
118 ${model} Set Variable network-topology-model
119 ${request} Prepare Filtration Topology Request ${FILTRATION_NT} ${model} termination-point network-topo:2
120 ${request} Insert Filter ${request} ${FILTER_RANGE_NUMBER} ${OVSDB_OFPORT}
121 ${request} Set Range Number Filter ${request} 1115 1119
122 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
123 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5 node-ref_count=5 tp_count=3 tp-ref_count=3
124 #Update a previously out-of-range termination point, so it passes filtration
125 ${terminationPoint} Create OVSDB Termination Point tp:8:1 1115
126 Basic Request Put ${terminationPoint} network-topology:network-topology/topology/network-topo:2/node/bgp:8/termination-point/tp:8:1
127 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5 node-ref_count=5 tp_count=4 tp-ref_count=4
128 Check Aggregated Termination Point in Node ${model} ${resp.content} network-topo:2 bgp:8 tp:8:1 tp:8:1
129 #Update a previsouly in-range termination point, so it is filtered out
130 ${terminationPoint} Create OVSDB Termination Point tp:7:2 1110
131 Basic Request Put ${terminationPoint} network-topology:network-topology/topology/network-topo:2/node/bgp:7/termination-point/tp:7:2
132 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5 node-ref_count=5 tp_count=3 tp-ref_count=3
133 Check Aggregated Termination Point in Node ${model} ${resp.content} network-topo:2 bgp:7 tp:7:1 tp:7:1
135 Filtration Range Number Termination Point Update Inventory
136 [Documentation] Test processing of updates using range number type of filtration operation on Inventory model
137 ${model} Set Variable opendaylight-inventory-model
138 ${request} Prepare Filtration Topology Request ${FILTRATION_NT} ${model} termination-point openflow-topo:1
139 ${request} Insert Filter ${request} ${FILTER_RANGE_NUMBER} ${OPENFLOW_NODE_CONNECTOR_PORT_NUMBER}
140 ${request} Set Range Number Filter ${request} 2 4
141 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
142 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5 node-ref_count=5 tp_count=5 tp-ref_count=5
143 #Update a previously out-of-range termination point, so it passes filtration
144 ${nodeConnector} Create Openflow Node Connector openflow:2:1 3
145 Basic Request Put ${nodeConnector} opendaylight-inventory:nodes/node/openflow:2/node-connector/openflow:2:1
146 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5 node-ref_count=5 tp_count=6 tp-ref_count=6
147 Check Aggregated Termination Point in Node ${model} ${resp.content} openflow-topo:1 of-node:2 tp:2:1 tp:2:1
148 Check Aggregated Termination Point in Node ${model} ${resp.content} openflow-topo:1 of-node:2 tp:2:2 tp:2:2
149 Check Aggregated Termination Point in Node ${model} ${resp.content} openflow-topo:1 of-node:2 tp:2:3 tp:2:3
150 #Update an in-range termination point, so it is filtered out
151 ${nodeConnector} Create Openflow Node Connector openflow:3:2 5
152 Basic Request Put ${nodeConnector} opendaylight-inventory:nodes/node/openflow:3/node-connector/openflow:3:2
153 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5 node-ref_count=5 tp_count=5 tp-ref_count=5
154 Check Aggregated Termination Point in Node ${model} ${resp.content} openflow-topo:1 of-node:3 tp:3:1 tp:3:1
156 Filtration Range Number Link Update Network Topology Model
157 [Documentation] Tests the processing of link update requests when using a range-number filtration on NT model
158 ${request} Prepare Filtration Topology Request ${FILTRATION_NT} network-topology-model link network-topo:1
159 ${request} Insert Filter ${request} ${FILTER_RANGE_NUMBER} ${IGP_LINK_METRIC}
160 ${request} Set Range Number Filter ${request} 11 13
161 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
162 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete link_count=3 link-ref_count=3
164 ${request} Create Link link:1:4 bgp:1 bgp:4 linkA 15
165 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:1/link/link:1:4
166 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete link_count=2 link-ref_count=2
167 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/network-topo:1/link/link:1:3</link-ref> 1
168 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/network-topo:1/link/link:1:2-1</link-ref> 1
169 Should Not Contain ${resp.content} network-topology/topology/network-topo:1/link/link:1:4
170 #Put the link back in
171 ${request} Create Link link:1:4 bgp:1 bgp:4 linkA 12
172 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:1/link/link:1:4
173 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete link_count=3 link-ref_count=3
174 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/network-topo:1/link/link:1:4</link-ref> 1
175 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/network-topo:1/link/link:1:3</link-ref> 1
176 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/network-topo:1/link/link:1:2-1</link-ref> 1
178 Filtration Range Number Link Update Inventory Model
179 [Documentation] Tests the processing of link update requests when using a range-number filtration on Inventory model
180 ${request} Prepare Filtration Topology Request ${FILTRATION_NT} opendaylight-inventory-model link openflow-topo:3
181 ${request} Insert Filter ${request} ${FILTER_RANGE_NUMBER} ${IGP_LINK_METRIC}
182 ${request} Set Range Number Filter ${request} 14 15
183 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
184 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete link_count=2 link-ref_count=2
185 ${request} Create Link link:11:12 of-node:11 of-node:12 linkB 14
186 Basic Request Put ${request} network-topology:network-topology/topology/openflow-topo:3/link/link:11:12
187 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete link_count=3 link-ref_count=3
188 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/openflow-topo:3/link/link:14:12</link-ref> 1
189 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/openflow-topo:3/link/link:15:13</link-ref> 1
190 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/openflow-topo:3/link/link:11:12</link-ref> 1
191 ${request} Create Link link:11:12 of-node:11 of-node:12 linkB 13
192 Basic Request Put ${request} network-topology:network-topology/topology/openflow-topo:3/link/link:11:12
193 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete link_count=2 link-ref_count=2
194 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/openflow-topo:3/link/link:14:12</link-ref> 1
195 Should Contain X Times ${resp.content} <link-ref>/network-topology/topology/openflow-topo:3/link/link:15:13</link-ref> 1
197 Unification Filtration Node Update Inside Network Topology model
198 ${model} Set Variable network-topology-model
199 ${request} Prepare Unification Filtration Inside Topology Request ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE} ${model} node ${ISIS_NODE_TE_ROUTER_ID_IPV4} network-topo:4
200 ${request} Insert Filter With ID ${request} ${FILTER_IPV4} ${ISIS_NODE_TE_ROUTER_ID_IPV4} 1
201 ${request} Insert Apply Filters ${request} 1 1
202 ${request} Set IPV4 Filter ${request} 192.168.2.1/24
203 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
204 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=2 supporting-node_count=3 node-ref_count=3 tp_count=0 tp-ref_count=0
205 ${request} Create Isis Node bgp:17 10 192.168.2.1
206 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:4/node/bgp:17
207 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=2 supporting-node_count=4 node-ref_count=4 tp_count=0 tp-ref_count=0
208 : FOR ${index} IN RANGE 17 21
209 \ Should Contain X Times ${resp.content} <node-ref>bgp:${index}</node-ref> 1
210 Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:18 bgp:17 bgp:20
211 ${request} Create Isis Node bgp:17 10 192.168.1.2
212 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:4/node/bgp:17
213 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=2 supporting-node_count=3 node-ref_count=3 tp_count=0 tp-ref_count=0
214 : FOR ${index} IN RANGE 18 21
215 \ Should Contain X Times ${resp.content} <node-ref>bgp:${index}</node-ref> 1
216 Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:18 bgp:20
218 Unification Filtration Node Update Inside Inventory model
219 ${model} Set Variable opendaylight-inventory-model
220 ${request} Prepare Unification Filtration Inside Topology Request ${UNIFICATION_FILTRATION_NT_AGGREGATE_INSIDE} ${model} node ${OPENFLOW_NODE_IP_ADDRESS} openflow-topo:4
221 ${request} Insert Filter With ID ${request} ${FILTER_IPV4} ${OPENFLOW_NODE_IP_ADDRESS} 1
222 ${request} Insert Apply Filters ${request} 1 1
223 ${request} Set IPV4 Filter ${request} 192.168.2.1/24
224 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
225 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=2 supporting-node_count=4 node-ref_count=4 tp_count=0 tp-ref_count=0
226 ${request} Create Openflow Node openflow:17 192.168.1.2
227 Basic Request Put ${request} opendaylight-inventory:nodes/node/openflow:17
228 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=2 supporting-node_count=3 node-ref_count=3 tp_count=0 tp-ref_count=0
229 : FOR ${index} IN RANGE 18 21
230 \ Should Contain X Times ${resp.content} <node-ref>of-node:${index}</node-ref> 1
231 ${node} Get Element ${resp.content} xpath=.//node/supporting-node[node-ref='of-node:19']/..
232 ${node} Element to String ${node}
233 Should Contain X Times ${node} <supporting-node> 2
234 Should Contain ${node} <node-ref>of-node:19</node-ref>
235 Should Contain ${node} <node-ref>of-node:20</node-ref>
236 Should Not Contain ${node} <node-ref>of-node:17</node-ref>
237 ${request} Create Openflow Node openflow:17 192.168.2.3
238 Basic Request Put ${request} opendaylight-inventory:nodes/node/openflow:17
239 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=2 supporting-node_count=4 node-ref_count=4 tp_count=0 tp-ref_count=0
240 : FOR ${index} IN RANGE 17 21
241 \ Should Contain X Times ${resp.content} <node-ref>of-node:${index}</node-ref> 1
242 Check Aggregated Node in Topology ${model} ${resp.content} 0 of-node:17 of-node:19 of-node:20
244 Link Computation Aggregation Inside Update NT
245 [Documentation] Test of link computation with unification type of aggregation inside on updated nodes from network-topology model
246 ${model} Set Variable network-topology-model
247 ${request} Prepare Unification Inside Topology Request ${UNIFICATION_NT_AGGREGATE_INSIDE} ${model} node network-topo:6
248 ${request} Insert Target Field ${request} 0 ${ISIS_NODE_TE_ROUTER_ID_IPV4} 0
249 ${request} Insert Link Computation Inside ${request} ${LINK_COMPUTATION_INSIDE} n:network-topology-model network-topo:6
250 Basic Request Put ${request} ${OVERLAY_TOPO_URL}
251 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=4 supporting-node_count=5 node-ref_count=5 link_count=4 link-ref_count=4
252 #Divide double nodes from overlay topology
253 ${request} Create Isis Node bgp:29 router-id-ipv4=192.168.1.3
254 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:6/node/bgp:29
255 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5 node-ref_count=5 link_count=4 link-ref_count=4
256 ${node_26} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:26
257 ${node_27} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:27
258 ${node_28} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:28
259 ${node_29} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:29
260 ${node_30} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:30
261 ${topo_id} Set Variable network-topo:6
262 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:28:29 ${node_28} ${node_29}
263 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:26:28 ${node_26} ${node_28}
264 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:29:30-2 ${node_29} ${node_30}
265 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:29:30-1 ${node_29} ${node_30}
266 #Update link to node out of topology
267 ${request} Create Link link:28:29 bgp:28 bgp:31 linkB 11
268 Basic Request Put ${request} network-topology:network-topology/topology/network-topo:6/link/link:28:29
269 ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5 node-ref_count=5 link_count=3 link-ref_count=3
271 ${node_26} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:26
272 ${node_27} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:27
273 ${node_28} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:28
274 ${node_29} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:29
275 ${node_30} Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:30
276 Should Not Contain ${resp.content} /network-topology/topology/network-topo:6/link/link:28:29
277 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:26:28 ${node_26} ${node_28}
278 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:29:30-2 ${node_29} ${node_30}
279 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:29:30-1 ${node_29} ${node_30}
280 Check Overlay Link Source And Destination ${model} ${resp.content} ${topo_id} link:29:30-1 ${node_29} ${node_30}