Topoprocessing - Rework the output requesting mechanism
[integration/test.git] / csit / suites / topoprocessing / basic-topology-operations / 030_Filtration_termination_points.robot
1 *** Settings ***
2 Documentation     Test suite to verify fitration operation on different models.
3 ...               Before test starts, configurational file have to be rewriten to change listners registration datastore type from CONFIGURATION to OPERATIONAL.
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 ...               Tests themselves install feature required for specific model, clear karaf logs for futher synchronization, send configurational xmls and verify output.
6 ...               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     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 Filtration Range Number Network Topology Model
22     [Documentation]    Test of range number type of filtration operation on Network Topology model
23     ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    termination-point    network-topo:2
24     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OVSDB_OFPORT}
25     ${request}    Set Range Number Filter    ${request}    1115    1119
26     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
27     ${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
28     Check Filtered Termination Points in Node    ${resp.content}    bgp:6    tp:6:1
29     Check Filtered Termination Points in Node    ${resp.content}    bgp:7    tp:7:1    tp:7:2
30     Check Filtered Termination Points in Node    ${resp.content}    bgp:8
31     Check Filtered Termination Points in Node    ${resp.content}    bgp:9
32     Check Filtered Termination Points in Node    ${resp.content}    bgp:10
33
34 Filtration Range Number Inventory Model
35     [Documentation]    Test of range number type of filtration operation on Inventory model
36     ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    termination-point    openflow-topo:1
37     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_NUMBER}    ${OPENFLOW_NODE_CONNECTOR_PORT_NUMBER}
38     ${request}    Set Range Number Filter    ${request}    2    4
39     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
40     ${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
41     Check Filtered Termination Points in Node    ${resp.content}    of-node:1
42     Check Filtered Termination Points in Node    ${resp.content}    of-node:2    tp:2:3    tp:2:2
43     Check Filtered Termination Points in Node    ${resp.content}    of-node:3    tp:3:1    tp:3:2
44     Check Filtered Termination Points in Node    ${resp.content}    of-node:4
45     Check Filtered Termination Points in Node    ${resp.content}    of-node:5    tp:5:1
46
47 Filtration Specific Number Network Topology Model
48     [Documentation]    Test of specific number type of filtration operation on Network Topology model
49     ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    termination-point    network-topo:2
50     ${request}    Insert Filter    ${request}    ${FILTER_SPECIFIC_NUMBER}    ${OVSDB_OFPORT}
51     ${request}    Set Specific Number Filter    ${request}    1119
52     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
53     ${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=1    tp-ref_count=1
54     ${node}    Get Element    ${resp.content}    xpath=.//node/supporting-node[node-ref='bgp:7']/..
55     ${node}    Element to String    ${node}
56     Should Contain X Times    ${node}    <termination-point>    1
57     Check Filtered Termination Points in Node    ${resp.content}    bgp:6
58     Check Filtered Termination Points in Node    ${resp.content}    bgp:7    tp:7:1
59     Check Filtered Termination Points in Node    ${resp.content}    bgp:8
60     Check Filtered Termination Points in Node    ${resp.content}    bgp:9
61     Check Filtered Termination Points in Node    ${resp.content}    bgp:10
62
63 Filtration Specific Number Inventory Model
64     [Documentation]    Test of specific number type of filtration operation on Inventory model
65     ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    termination-point    openflow-topo:1
66     ${request}    Insert Filter    ${request}    ${FILTER_SPECIFIC_NUMBER}    ${OPENFLOW_NODE_CONNECTOR_MAXIMUM_SPEED}
67     ${request}    Set Specific Number Filter    ${request}    2
68     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
69     ${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
70     Check Filtered Termination Points in Node    ${resp.content}    of-node:1
71     Check Filtered Termination Points in Node    ${resp.content}    of-node:2    tp:2:2
72     Check Filtered Termination Points in Node    ${resp.content}    of-node:3    tp:3:1    tp:3:2
73     Check Filtered Termination Points in Node    ${resp.content}    of-node:4
74     Check Filtered Termination Points in Node    ${resp.content}    of-node:5
75
76 Filtration Specific String Network Topology Model
77     [Documentation]    Test of specific string type of filtration operation on Network Topology model
78     ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    termination-point    network-topo:2
79     ${request}    Insert Filter    ${request}    ${FILTER_SPECIFIC_STRING}    ${OVSDB_TP_NAME}
80     ${request}    Set Specific String Filter    ${request}    portC
81     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
82     ${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=1    tp-ref_count=1
83     Check Filtered Termination Points in Node    ${resp.content}    bgp:6
84     Check Filtered Termination Points in Node    ${resp.content}    bgp:7    tp:7:2
85     Check Filtered Termination Points in Node    ${resp.content}    bgp:8
86     Check Filtered Termination Points in Node    ${resp.content}    bgp:9
87     Check Filtered Termination Points in Node    ${resp.content}    bgp:10
88
89 Filtration Specific String Inventory Model
90     [Documentation]    Test of specific string type of filtration operation on Inventory model
91     ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    termination-point    openflow-topo:1
92     ${request}    Insert Filter    ${request}    ${FILTER_SPECIFIC_STRING}    ${OPENFLOW_NODE_CONNECTOR_NAME}
93     ${request}    Set Specific String Filter    ${request}    portB
94     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
95     ${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=2    tp-ref_count=2
96     Check Filtered Termination Points in Node    ${resp.content}    of-node:1
97     Check Filtered Termination Points in Node    ${resp.content}    of-node:2    tp:2:1
98     Check Filtered Termination Points in Node    ${resp.content}    of-node:3
99     Check Filtered Termination Points in Node    ${resp.content}    of-node:4
100     Check Filtered Termination Points in Node    ${resp.content}    of-node:5    tp:5:1
101
102 Filtration Range String Network Topology Model
103     [Documentation]    Test of range string type of filtration operation on Network Topology model
104     ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    termination-point    network-topo:2
105     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_STRING}    ${OVSDB_TP_NAME}
106     ${request}    Set Range String Filter    ${request}    portA    portC
107     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
108     ${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
109     Check Filtered Termination Points in Node    ${resp.content}    bgp:6    tp:6:1
110     Check Filtered Termination Points in Node    ${resp.content}    bgp:7    tp:7:2
111     Check Filtered Termination Points in Node    ${resp.content}    bgp:8
112     Check Filtered Termination Points in Node    ${resp.content}    bgp:9
113     Check Filtered Termination Points in Node    ${resp.content}    bgp:10    tp:10:1
114
115 Filtration Range String Inventory Model
116     [Documentation]    Test of range string type of filtration operation on Inventory model
117     ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    termination-point    openflow-topo:1
118     ${request}    Insert Filter    ${request}    ${FILTER_RANGE_STRING}    ${OPENFLOW_NODE_CONNECTOR_NAME}
119     ${request}    Set Range String Filter    ${request}    portA    portB
120     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
121     ${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
122     Check Filtered Termination Points in Node    ${resp.content}    of-node:1
123     Check Filtered Termination Points in Node    ${resp.content}    of-node:2    tp:2:1    tp:2:3
124     Check Filtered Termination Points in Node    ${resp.content}    of-node:3
125     Check Filtered Termination Points in Node    ${resp.content}    of-node:4
126     Check Filtered Termination Points in Node    ${resp.content}    of-node:5    tp:5:1
127
128 Filtration Script Network Topology Model
129     [Documentation]    Test of script type of filtration operation on Network Topology model
130     ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    network-topology-model    termination-point    network-topo:1
131     ${request}    Insert Filter    ${request}    ${FILTER_SCRIPT}    ${OVSDB_OFPORT}
132     ${script}    Set Variable    if (node.getValue() > 1117 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
133     ${request}    Set Script Filter    ${request}    javascript    ${script}
134     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
135     ${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
136     Check Filtered Termination Points in Node    ${resp.content}    bgp:1
137     Check Filtered Termination Points in Node    ${resp.content}    bgp:2
138     Check Filtered Termination Points in Node    ${resp.content}    bgp:3
139     Check Filtered Termination Points in Node    ${resp.content}    bgp:4    tp:4:1    tp:4:2
140     Check Filtered Termination Points in Node    ${resp.content}    bgp:5    tp:5:1
141
142 Filtration Script Inventory Model
143     [Documentation]    Test of script type of filtration operation on Inventory model
144     ${request}    Prepare Filtration Topology Request    ${FILTRATION_NT}    opendaylight-inventory-model    termination-point    openflow-topo:1
145     ${request}    Insert Filter    ${request}    ${FILTER_SCRIPT}    ${OPENFLOW_NODE_CONNECTOR_NAME}
146     ${script}    Set Variable    if (node.getValue().indexOf("portB") > -1 ) {filterOut.setResult(true);} else {filterOut.setResult(false);}
147     ${request}    Set Script Filter    ${request}    javascript    ${script}
148     Basic Request Put    ${request}    ${OVERLAY_TOPO_URL}
149     ${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
150     Check Filtered Termination Points in Node    ${resp.content}    of-node:1    tp:1:1
151     Check Filtered Termination Points in Node    ${resp.content}    of-node:2    tp:2:2    tp:2:3
152     Check Filtered Termination Points in Node    ${resp.content}    of-node:3
153     Check Filtered Termination Points in Node    ${resp.content}    of-node:4
154     Check Filtered Termination Points in Node    ${resp.content}    of-node:5