Upgrade RF syntax for v3.2 compatibility
[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 Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
10 Test Teardown     Refresh Underlay Topologies And Delete Overlay Topology
11 Library           RequestsLibrary
12 Library           SSHLibrary
13 Library           XML
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
20
21 *** Test Cases ***
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
39     END
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
48     END
49
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
66     END
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
75     END
76
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
91     END
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
107     END
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
112
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
128     END
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
135     END
136     Should Not Contain    ${resp.content}    <node-ref>of-node:7</node-ref>
137
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
159
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
183
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
191     #Filter a link out
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
205
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
224
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
240     END
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
248     END
249     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    bgp:18    bgp:20
250
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
266     END
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
279     END
280     Check Aggregated Node in Topology    ${model}    ${resp.content}    0    of-node:17    of-node:19    of-node:20
281
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
311     #Refresh node IDs
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}