2 Documentation Library containing Keywords used for SXP testing
3 Library RequestsLibrary
7 Resource KarafKeywords.robot
8 Variables ../variables/Variables.py
11 ${REST_CONTEXT} /restconf/operations/sxp-controller
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}
20 ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:add-connection data=${DATA} headers=${HEADERS_XML}
21 Should be Equal As Strings ${resp.status_code} 200
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}
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
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}
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
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}
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}
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}
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}
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
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
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}
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}
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
115 Should Be True ${out} Doesn't have ${sgt} ${prefix} ${source} ${seq} ${db_source}
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
122 Should Not Be True ${out} Should't have ${sgt} ${prefix} ${source} ${seq} ${db_source}
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}
129 Should Be True ${out} Doesn't have ${ip}:${port} ${mode} ${version}
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}
136 Should Not Be True ${out} Shouldn't have ${ip}:${port} ${mode} ${version}
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
144 Clean SXP Environment
145 [Documentation] Destroy created sessions