Topoprocessing - Rework the output requesting mechanism
[integration/test.git] / csit / suites / topoprocessing / basic-topology-operations / 070_Underlay_update.robot
1 *** Settings ***
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
11 Library           SSHLibrary
12 Library           XML
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
19
20 *** Test Cases ***
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
43
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
65
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
95
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>
115
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
134
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
155
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
163     #Filter a link out
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
177
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
196
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
217
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
243
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
270     #Refresh node IDs
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}