... 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.
Suite Setup Setup Environment
Suite Teardown Clean Environment
-Test Teardown Test Teardown network-topology:network-topology/topology/topo:1
+Test Teardown Delete Overlay Topology
Library RequestsLibrary
Library SSHLibrary
Library XML
Variables ../../../variables/topoprocessing/TopologyRequests.py
+Variables ../../../variables/topoprocessing/TargetFields.py
Variables ../../../variables/Variables.py
Resource ../../../libraries/KarafKeywords.robot
Resource ../../../libraries/Utils.robot
*** Test Cases ***
Unification Node
[Documentation] Test unification operation on Network Topology model
- ${request} Prepare Unification Topology Request ${UNIFICATION_NT} network-topology-model node network-topology-pcep:path-computation-client/network-topology-pcep:ip-address network-topo:1
- ... network-topo:2
- ${resp} Send Basic Request ${request} network-topology:network-topology/topology/topo:1
- Should Contain ${resp.content} <topology-id>topo:1</topology-id>
- Should Contain X Times ${resp.content} <node-id>node: 9
- : FOR ${index} IN RANGE 1 9
- \ Should Contain X Times ${resp.content} <node-ref>pcep:${index}</node-ref> 1
- ${node} Get Element ${resp.content} xpath=.//node/supporting-node[node-ref='pcep:10']/..
- ${node} Element to String ${node}
- Should Contain X Times ${node} <node-ref>pcep:10</node-ref> 1
- Should Contain X Times ${node} <node-ref>pcep:5</node-ref> 1
+ ${model} Set Variable network-topology-model
+ ${request} Prepare Unification Topology Request ${UNIFICATION_NT} ${model} node network-topo:1 network-topo:2
+ ${request} Insert Target Field ${request} 0 ${ISIS_NODE_TE_ROUTER_ID_IPV4} 0
+ ${request} Insert Target Field ${request} 1 ${ISIS_NODE_TE_ROUTER_ID_IPV4} 0
+ Basic Request Put ${request} ${OVERLAY_TOPO_URL}
+ ${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
+ Check Aggregated Node in Topology ${model} ${resp.content} 2 bgp:5 bgp:10
+ Check Aggregated Node in Topology ${model} ${resp.content} 1 bgp:9
+ Check Aggregated Node in Topology ${model} ${resp.content} 1 bgp:8
+ Check Aggregated Node in Topology ${model} ${resp.content} 2 bgp:7
+ Check Aggregated Node in Topology ${model} ${resp.content} 1 bgp:6
+ Check Aggregated Node in Topology ${model} ${resp.content} 4 bgp:3 bgp:4
+ Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:2
+ Check Aggregated Node in Topology ${model} ${resp.content} 3 bgp:1
Unification Node Inventory
[Documentation] Test unification operation on inventory model
- ${request} Prepare Unification Topology Request ${UNIFICATION_NT} opendaylight-inventory-model node flow-node-inventory:ip-address openflow-topo:1
- ... openflow-topo:2
- ${resp} Send Basic Request ${request} network-topology:network-topology/topology/topo:1
- Should Contain ${resp.content} <topology-id>topo:1</topology-id>
- Should Contain X Times ${resp.content} <node-id>node: 8
- : FOR ${index} IN RANGE 1 10
- \ Should Contain X Times ${resp.content} <node-ref>of-node:${index}</node-ref> 1
- ${node} Get Element ${resp.content} xpath=.//node/supporting-node[node-ref='of-node:1']/..
- ${node} Element to String ${node}
- Should Contain X Times ${node} <node-ref>of-node:6</node-ref> 1
- Should Contain X Times ${node} <node-ref>of-node:1</node-ref> 1
- ${node} Get Element ${resp.content} xpath=.//node/supporting-node[node-ref='of-node:4']/..
- ${node} Element to String ${node}
- Should Contain X Times ${node} <node-ref>of-node:10</node-ref> 1
- Should Contain X Times ${node} <node-ref>of-node:4</node-ref> 1
+ ${model} Set Variable opendaylight-inventory-model
+ ${request} Prepare Unification Topology Request ${UNIFICATION_NT} ${model} node openflow-topo:1 openflow-topo:2
+ ${request} Insert Target Field ${request} 0 ${OPENFLOW_NODE_IP_ADDRESS} 0
+ ${request} Insert Target Field ${request} 1 ${OPENFLOW_NODE_IP_ADDRESS} 0
+ Basic Request Put ${request} ${OVERLAY_TOPO_URL}
+ ${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
+ Check Aggregated Node in Topology ${model} ${resp.content} 3 of-node:10 of-node:4
+ Check Aggregated Node in Topology ${model} ${resp.content} 0 of-node:7 of-node:9
+ Check Aggregated Node in Topology ${model} ${resp.content} 0 of-node:8
+ Check Aggregated Node in Topology ${model} ${resp.content} 2 of-node:6 of-node:1
+ Check Aggregated Node in Topology ${model} ${resp.content} 1 of-node:5
+ Check Aggregated Node in Topology ${model} ${resp.content} 3 of-node:3
+ Check Aggregated Node in Topology ${model} ${resp.content} 3 of-node:2
+
+Unification Scripting Node
+ [Documentation] Test unification operation on Network Topology model using scripting
+ ${model} Set Variable network-topology-model
+ ${request} Prepare Unification Topology Request ${UNIFICATION_NT} ${model} node network-topo:1 network-topo:2
+ ${request} Insert Target Field ${request} 0 ${ISIS_NODE_TE_ROUTER_ID_IPV4} 0
+ ${request} Insert Target Field ${request} 1 ${ISIS_NODE_TE_ROUTER_ID_IPV4} 0
+ ${request} Insert Scripting into Request ${request} javascript if (originalItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.1") > -1 && newItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.3") > -1 || originalItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.3") > -1 && newItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.1") > -1) {aggregable.setResult(true);} else { aggregable.setResult(false);}
+ Basic Request Put ${request} ${OVERLAY_TOPO_URL}
+ ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=9 supporting-node_count=10 tp_count=14 tp-ref_count=14
+ Check Aggregated Node in Topology ${model} ${resp.content} 1 bgp:10
+ Check Aggregated Node in Topology ${model} ${resp.content} 1 bgp:9
+ Check Aggregated Node in Topology ${model} ${resp.content} 1 bgp:8
+ Check Aggregated Node in Topology ${model} ${resp.content} 2 bgp:7
+ Check Aggregated Node in Topology ${model} ${resp.content} 4 bgp:1 bgp:6
+ Check Aggregated Node in Topology ${model} ${resp.content} 1 bgp:5
+ Check Aggregated Node in Topology ${model} ${resp.content} 2 bgp:4
+ Check Aggregated Node in Topology ${model} ${resp.content} 2 bgp:3
+ Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:2
+
+Unification Scripting Node Inventory
+ [Documentation] Test unification operation on inventory model using scripting
+ ${model} Set Variable opendaylight-inventory-model
+ ${request} Prepare Unification Topology Request ${UNIFICATION_NT} ${model} node openflow-topo:1 openflow-topo:2
+ ${request} Insert Target Field ${request} 0 ${OPENFLOW_NODE_IP_ADDRESS} 0
+ ${request} Insert Target Field ${request} 1 ${OPENFLOW_NODE_IP_ADDRESS} 0
+ ${request} Insert Scripting into Request ${request} javascript if (originalItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.2") > -1 && newItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.4") > -1 || originalItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.4") > -1 && newItem.getLeafNodes().get(java.lang.Integer.valueOf('0')).getValue().indexOf("192.168.1.2") > -1) {aggregable.setResult(true);} else { aggregable.setResult(false);}
+ Basic Request Put ${request} ${OVERLAY_TOPO_URL}
+ ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=9 supporting-node_count=10 tp_count=12 tp-ref_count=12
+ Check Aggregated Node in Topology ${model} ${resp.content} 0 of-node:10
+ Check Aggregated Node in Topology ${model} ${resp.content} 0 of-node:9
+ Check Aggregated Node in Topology ${model} ${resp.content} 3 of-node:2 of-node:8
+ Check Aggregated Node in Topology ${model} ${resp.content} 0 of-node:7
+ Check Aggregated Node in Topology ${model} ${resp.content} 0 of-node:6
+ Check Aggregated Node in Topology ${model} ${resp.content} 1 of-node:5
+ Check Aggregated Node in Topology ${model} ${resp.content} 3 of-node:4
+ Check Aggregated Node in Topology ${model} ${resp.content} 3 of-node:3
+ Check Aggregated Node in Topology ${model} ${resp.content} 2 of-node:1
+
+Unification Node Inside
+ [Documentation] Test of unification type of aggregation inside on nodes on Network Topology model
+ ${model} Set Variable network-topology-model
+ ${request} Prepare Unification Inside Topology Request ${UNIFICATION_NT_AGGREGATE_INSIDE} ${model} node network-topo:1
+ ${request} Insert Target Field ${request} 0 ${ISIS_NODE_TE_ROUTER_ID_IPV4} 0
+ Basic Request Put ${request} ${OVERLAY_TOPO_URL}
+ ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=4 supporting-node_count=5 tp_count=8 tp-ref_count=8
+ Check Aggregated Node in Topology ${model} ${resp.content} 1 bgp:5
+ Check Aggregated Node in Topology ${model} ${resp.content} 4 bgp:3 bgp:4
+ Check Aggregated Node in Topology ${model} ${resp.content} 0 bgp:2
+ Check Aggregated Node in Topology ${model} ${resp.content} 3 bgp:1
+
+Unification Node Inside Inventory
+ [Documentation] Test of unification type of aggregation inside on nodes on Inventory model
+ ${model} Set Variable opendaylight-inventory-model
+ ${request} Prepare Unification Inside Topology Request ${UNIFICATION_NT_AGGREGATE_INSIDE} ${model} node openflow-topo:2
+ ${request} Insert Target Field ${request} 0 ${OPENFLOW_NODE_IP_ADDRESS} 0
+ Basic Request Put ${request} ${OVERLAY_TOPO_URL}
+ ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=4 supporting-node_count=5 tp_count=0
+ Check Aggregated Node in Topology ${model} ${resp.content} 0 of-node:10
+ Check Aggregated Node in Topology ${model} ${resp.content} 0 of-node:7 of-node:9
+ Check Aggregated Node in Topology ${model} ${resp.content} 0 of-node:8
+ Check Aggregated Node in Topology ${model} ${resp.content} 0 of-node:6
+
+Unification Termination Point Inside
+ [Documentation] Test aggregate inside operation on termination points
+ ${model} Set Variable network-topology-model
+ ${request} Prepare Unification Inside Topology Request ${UNIFICATION_NT_AGGREGATE_INSIDE} ${model} termination-point network-topo:1
+ ${request} Insert Target Field ${request} 0 ${OVSDB_OFPORT} 0
+ Basic Request Put ${request} ${OVERLAY_TOPO_URL}
+ ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5 tp_count=6 tp-ref_count=8
+ ${topology_id} Set Variable network-topo:1
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:1 tp:1:1 tp:1:1
+ ... tp:1:2
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:1 tp:1:3 tp:1:3
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:3 tp:3:1 tp:3:1
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:3 tp:3:2 tp:3:2
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:4 tp:4:1 tp:4:1
+ ... tp:4:2
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} bgp:5 tp:5:1 tp:5:1
+
+Unification Termination Point Inside Inventory
+ [Documentation] Test aggregate inside operation on termination points
+ ${model} Set Variable opendaylight-inventory-model
+ ${request} Prepare Unification Inside Topology Request ${UNIFICATION_NT_AGGREGATE_INSIDE} ${model} termination-point openflow-topo:1
+ ${request} Insert Target Field ${request} 0 ${OPENFLOW_NODE_CONNECTOR_PORT_NUMBER} 0
+ Basic Request Put ${request} ${OVERLAY_TOPO_URL}
+ ${resp} Wait Until Keyword Succeeds 3x 1s Output Topo Should Be Complete node_count=5 supporting-node_count=5 tp_count=8 tp-ref_count=12
+ ${topology_id} Set Variable openflow-topo:1
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} of-node:5 tp:5:1 tp:5:1
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} of-node:4 tp:4:1 tp:4:1
+ ... tp:4:2 tp:4:3
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} of-node:3 tp:3:1 tp:3:1
+ ... tp:3:2
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} of-node:3 tp:3:3 tp:3:3
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} of-node:2 tp:2:1 tp:2:1
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} of-node:2 tp:2:2 tp:2:2
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} of-node:2 tp:2:3 tp:2:3
+ Check Aggregated Termination Point in Node ${model} ${resp.content} ${topology_id} of-node:1 tp:1:1 tp:1:1
+ ... tp:1:2