Tidying all .robot files
[integration/test.git] / csit / libraries / SxpLib.robot
1 *** Settings ***
2 Documentation     Library containing Keywords used for SXP testing
3 Library           RequestsLibrary
4 Library           SSHLibrary
5 Library           String
6 Library           ./Sxp.py
7 Resource          KarafKeywords.robot
8 Variables         ../variables/Variables.py
9
10 *** Variables ***
11 ${REST_CONTEXT}    /restconf/operations/sxp-controller
12
13 *** Keywords ***
14 Add Connection
15     [Arguments]    ${version}    ${mode}    ${ip}    ${port}    ${node}=127.0.0.1    ${password}=none
16     ...    ${session}=session
17     [Documentation]    Add connection via RCP to node
18     ${DATA}    Add Connection Xml    ${version}    ${mode}    ${ip}    ${port}    ${node}
19     ...    ${password}
20     ${resp}    RequestsLibrary.Post    ${session}    ${REST_CONTEXT}:add-connection    data=${DATA}    headers=${HEADERS_XML}
21     Should be Equal As Strings    ${resp.status_code}    200
22
23 Get Connections
24     [Arguments]    ${node}=127.0.0.1    ${session}=session
25     [Documentation]    Gets all connections vie RPC from node
26     ${DATA}    Get Connections From Node Xml    ${node}
27     ${resp}    RequestsLibrary.Post    ${session}    ${REST_CONTEXT}:get-connections    data=${DATA}    headers=${HEADERS_XML}
28     Should be Equal As Strings    ${resp.status_code}    200
29     [Return]    ${resp.content}
30
31 Delete Connections
32     [Arguments]    ${ip}    ${port}    ${node}=127.0.0.1    ${session}=session
33     [Documentation]    Delete connection via RPC from node
34     ${DATA}    Delete Connections Xml    ${ip}    ${port}    ${node}
35     ${resp}    RequestsLibrary.Post    ${session}    ${REST_CONTEXT}:delete-connection    data=${DATA}    headers=${HEADERS_XML}
36     Should be Equal As Strings    ${resp.status_code}    200
37
38 Clean Connections
39     [Arguments]    ${node}=127.0.0.1    ${session}=session
40     [Documentation]    Delete all connections via RPC from node
41     ${resp}    Get Connections    ${node}    ${session}
42     @{connections}    Parse Connections    ${resp}
43     : FOR    ${connection}    IN    @{connections}
44     \    delete connections    ${connection['peer-address']}    ${connection['tcp-port']}    ${node}    ${session}
45
46 Add Binding
47     [Arguments]    ${sgt}    ${prefix}    ${node}=127.0.0.1    ${session}=session
48     [Documentation]    Add binding via RPC to Master DB of node
49     ${DATA}    Add Entry Xml    ${sgt}    ${prefix}    ${node}
50     ${resp}    RequestsLibrary.Post    ${session}    ${REST_CONTEXT}:add-entry    data=${DATA}    headers=${HEADERS_XML}
51     Should be Equal As Strings    ${resp.status_code}    200
52
53 Get Bindings
54     [Arguments]    ${node}=127.0.0.1    ${session}=session
55     [Documentation]    Gets all binding via RPC from Master DB of node
56     ${DATA}    Get Bindings From Node Xml    ${node}
57     ${resp}    RequestsLibrary.Post    ${session}    ${REST_CONTEXT}:get-node-bindings    data=${DATA}    headers=${HEADERS_XML}
58     Should be Equal As Strings    ${resp.status_code}    200
59     [Return]    ${resp.content}
60
61 Clean Bindings
62     [Arguments]    ${node}=127.0.0.1    ${session}=session
63     [Documentation]    Delete all bindings via RPC from Master DB of node
64     ${resp}    Get Bindings Master Database    ${node}    ${session}
65     @{prefixes}    Parse Prefix Groups    ${resp}    local
66     : FOR    ${prefix}    IN    @{prefixes}
67     \    Clean Binding    ${prefix}    ${prefix['binding']}    ${node}    ${session}
68
69 Clean Binding
70     [Arguments]    ${prefix}    ${bindings}    ${node}    ${session}
71     [Documentation]    Used for nester FOR loop
72     : FOR    ${binding}    IN    @{bindings}
73     \    Delete Binding    ${prefix['sgt']}    ${binding['ip-prefix']}    ${node}    ${session}
74
75 Get Bindings Master Database
76     [Arguments]    ${node}=127.0.0.1    ${session}=session
77     [Documentation]    Gets content of Master DB from node
78     ${resp}    RequestsLibrary.Get    ${session}    /restconf/operational/network-topology:network-topology/topology/sxp/node/${node}/master-database/    headers=${HEADERS_XML}
79     Should be Equal As Strings    ${resp.status_code}    200
80     [Return]    ${resp.content}
81
82 Update Binding
83     [Arguments]    ${sgtOld}    ${prefixOld}    ${sgtNew}    ${prefixNew}    ${node}=127.0.0.1    ${session}=session
84     [Documentation]    Updates value of binding via RPC in Master DB of node
85     ${DATA}    Update Binding Xml    ${sgtOld}    ${prefixOld}    ${sgtNew}    ${prefixNew}    ${node}
86     ${resp}    RequestsLibrary.Post    ${session}    ${REST_CONTEXT}:update-entry    data=${DATA}    headers=${HEADERS_XML}
87     Should be Equal As Strings    ${resp.status_code}    200
88
89 Delete Binding
90     [Arguments]    ${sgt}    ${prefix}    ${node}=127.0.0.1    ${session}=session
91     [Documentation]    Delete binding via RPC from Master DB of node
92     ${DATA}    Delete Binding Xml    ${sgt}    ${prefix}    ${node}
93     ${resp}    RequestsLibrary.Post    ${session}    ${REST_CONTEXT}:delete-entry    data=${DATA}    headers=${HEADERS_XML}
94     Should be Equal As Strings    ${resp.status_code}    200
95
96 Should Contain Binding
97     [Arguments]    ${resp}    ${sgt}    ${prefix}    ${db_source}=local
98     [Documentation]    Tests if data contains specified binding
99     ${out}    Find Binding    ${resp}    ${sgt}    ${prefix}    ${db_source}    add
100     Should Be True    ${out}    Doesn't have ${sgt} ${prefix}
101     ${out}    Find Binding    ${resp}    ${sgt}    ${prefix}    ${db_source}    delete
102     Should Not Be True    ${out}    Should't have ${sgt} ${prefix}
103
104 Should Not Contain Binding
105     [Arguments]    ${resp}    ${sgt}    ${prefix}    ${db_source}=local
106     [Documentation]    Tests if data doesn't contains specified binding
107     ${out}    Find Binding    ${resp}    ${sgt}    ${prefix}    ${db_source}    add
108     Should Not Be True    ${out}    Should't have ${sgt} ${prefix}
109
110 Should Contain Binding With Peer Sequence
111     [Arguments]    ${resp}    ${sgt}    ${prefix}    ${source}    ${seq}=0    ${db_source}=local
112     [Documentation]    Tests if data contains specified binding with peer sequence
113     ${out}    Find Binding With Peer Sequence    ${resp}    ${sgt}    ${prefix}    ${db_source}    add
114     ...    ${source}    ${seq}
115     Should Be True    ${out}    Doesn't have ${sgt} ${prefix} ${source} ${seq} ${db_source}
116
117 Should Not Contain Binding With Peer Sequence
118     [Arguments]    ${resp}    ${sgt}    ${prefix}    ${source}    ${seq}=0    ${db_source}=local
119     [Documentation]    Tests if data doesn't contains specified binding with peer sequence
120     ${out}    Find Binding With Peer Sequence    ${resp}    ${sgt}    ${prefix}    ${db_source}    add
121     ...    ${source}    ${seq}
122     Should Not Be True    ${out}    Should't have ${sgt} ${prefix} ${source} ${seq} ${db_source}
123
124 Should Contain Connection
125     [Arguments]    ${resp}    ${ip}    ${port}    ${mode}    ${version}    ${state}=none
126     [Documentation]    Test if data contains specified connection
127     ${out}    Find Connection    ${resp}    ${version}    ${mode}    ${ip}    ${port}
128     ...    ${state}
129     Should Be True    ${out}    Doesn't have ${ip}:${port} ${mode} ${version}
130
131 Should Not Contain Connection
132     [Arguments]    ${resp}    ${ip}    ${port}    ${mode}    ${version}    ${state}=none
133     [Documentation]    Test if data doesn't contains specified connection
134     ${out}    Find Connection    ${resp}    ${version}    ${mode}    ${ip}    ${port}
135     ...    ${state}
136     Should Not Be True    ${out}    Shouldn't have ${ip}:${port} ${mode} ${version}
137
138 Setup SXP Environment
139     [Documentation]    Create session to Controller
140     Verify Feature Is Installed    odl-sxp-all
141     Create Session    session    url=http://${CONTROLLER}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
142     Wait Until Keyword Succeeds    15    3    Get Bindings Master Database
143
144 Clean SXP Environment
145     [Documentation]    Destroy created sessions
146     Delete All Sessions