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 ${session}=session
16 [Documentation] Add connection via RCP to node
17 ${DATA} Add Connection Xml ${version} ${mode} ${ip} ${port} ${node} ${password}
18 ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:add-connection data=${DATA} headers=${HEADERS_XML}
19 Should be Equal As Strings ${resp.status_code} 200
22 [Arguments] ${node}=127.0.0.1 ${session}=session
23 [Documentation] Gets all connections vie RPC from node
24 ${DATA} Get Connections From Node Xml ${node}
25 ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:get-connections data=${DATA} headers=${HEADERS_XML}
26 Should be Equal As Strings ${resp.status_code} 200
27 [Return] ${resp.content}
30 [Arguments] ${ip} ${port} ${node}=127.0.0.1 ${session}=session
31 [Documentation] Delete connection via RPC from node
32 ${DATA} Delete Connections Xml ${ip} ${port} ${node}
33 ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:delete-connection data=${DATA} headers=${HEADERS_XML}
34 Should be Equal As Strings ${resp.status_code} 200
37 [Arguments] ${node}=127.0.0.1 ${session}=session
38 [Documentation] Delete all connections via RPC from node
39 ${resp} Get Connections ${node} ${session}
40 @{connections} Parse Connections ${resp}
41 :FOR ${connection} IN @{connections}
42 \ delete connections ${connection['peer-address']} ${connection['tcp-port']} ${node} ${session}
45 [Arguments] ${sgt} ${prefix} ${node}=127.0.0.1 ${session}=session
46 [Documentation] Add binding via RPC to Master DB of node
47 ${DATA} Add Entry Xml ${sgt} ${prefix} ${node}
48 ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:add-entry data=${DATA} headers=${HEADERS_XML}
49 Should be Equal As Strings ${resp.status_code} 200
52 [Arguments] ${node}=127.0.0.1 ${session}=session
53 [Documentation] Gets all binding via RPC from Master DB of node
54 ${DATA} Get Bindings From Node Xml ${node}
55 ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:get-node-bindings data=${DATA} headers=${HEADERS_XML}
56 Should be Equal As Strings ${resp.status_code} 200
57 [Return] ${resp.content}
60 [Arguments] ${node}=127.0.0.1 ${session}=session
61 [Documentation] Delete all bindings via RPC from Master DB of node
62 ${resp} Get Bindings Master Database ${node} ${session}
63 @{prefixes} Parse Prefix Groups ${resp} local
64 :FOR ${prefix} IN @{prefixes}
65 \ Clean Binding ${prefix} ${prefix['binding']} ${node} ${session}
68 [Documentation] Used for nester FOR loop
69 [Arguments] ${prefix} ${bindings} ${node} ${session}
70 :FOR ${binding} IN @{bindings}
71 \ Delete Binding ${prefix['sgt']} ${binding['ip-prefix']} ${node} ${session}
73 Get Bindings Master Database
74 [Arguments] ${node}=127.0.0.1 ${session}=session
75 [Documentation] Gets content of Master DB from node
76 ${resp} RequestsLibrary.Get ${session} /restconf/operational/network-topology:network-topology/topology/sxp/node/${node}/master-database/ headers=${HEADERS_XML}
77 Should be Equal As Strings ${resp.status_code} 200
78 [Return] ${resp.content}
81 [Arguments] ${sgtOld} ${prefixOld} ${sgtNew} ${prefixNew} ${node}=127.0.0.1 ${session}=session
82 [Documentation] Updates value of binding via RPC in Master DB of node
83 ${DATA} Update Binding Xml ${sgtOld} ${prefixOld} ${sgtNew} ${prefixNew} ${node}
84 ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:update-entry data=${DATA} headers=${HEADERS_XML}
85 Should be Equal As Strings ${resp.status_code} 200
88 [Arguments] ${sgt} ${prefix} ${node}=127.0.0.1 ${session}=session
89 [Documentation] Delete binding via RPC from Master DB of node
90 ${DATA} Delete Binding Xml ${sgt} ${prefix} ${node}
91 ${resp} RequestsLibrary.Post ${session} ${REST_CONTEXT}:delete-entry data=${DATA} headers=${HEADERS_XML}
92 Should be Equal As Strings ${resp.status_code} 200
94 Should Contain Binding
95 [Documentation] Tests if data contains specified binding
96 [Arguments] ${resp} ${sgt} ${prefix} ${db_source}=local
97 ${out} Find Binding ${resp} ${sgt} ${prefix} ${db_source} add
98 Should Be True ${out} Doesn't have ${sgt} ${prefix}
99 ${out} Find Binding ${resp} ${sgt} ${prefix} ${db_source} delete
100 Should Not Be True ${out} Should't have ${sgt} ${prefix}
102 Should Not Contain Binding
103 [Documentation] Tests if data doesn't contains specified binding
104 [Arguments] ${resp} ${sgt} ${prefix} ${db_source}=local
105 ${out} Find Binding ${resp} ${sgt} ${prefix} ${db_source} add
106 Should Not Be True ${out} Should't have ${sgt} ${prefix}
108 Should Contain Binding With Peer Sequence
109 [Documentation] Tests if data contains specified binding with peer sequence
110 [Arguments] ${resp} ${sgt} ${prefix} ${source} ${seq}=0 ${db_source}=local
111 ${out} Find Binding With Peer Sequence ${resp} ${sgt} ${prefix} ${db_source} add ${source} ${seq}
112 Should Be True ${out} Doesn't have ${sgt} ${prefix} ${source} ${seq} ${db_source}
114 Should Not Contain Binding With Peer Sequence
115 [Documentation] Tests if data doesn't contains specified binding with peer sequence
116 [Arguments] ${resp} ${sgt} ${prefix} ${source} ${seq}=0 ${db_source}=local
117 ${out} Find Binding With Peer Sequence ${resp} ${sgt} ${prefix} ${db_source} add ${source} ${seq}
118 Should Not Be True ${out} Should't have ${sgt} ${prefix} ${source} ${seq} ${db_source}
120 Should Contain Connection
121 [Documentation] Test if data contains specified connection
122 [Arguments] ${resp} ${ip} ${port} ${mode} ${version} ${state}=none
123 ${out} Find Connection ${resp} ${version} ${mode} ${ip} ${port} ${state}
124 Should Be True ${out} Doesn't have ${ip}:${port} ${mode} ${version}
126 Should Not Contain Connection
127 [Documentation] Test if data doesn't contains specified connection
128 [Arguments] ${resp} ${ip} ${port} ${mode} ${version} ${state}=none
129 ${out} Find Connection ${resp} ${version} ${mode} ${ip} ${port} ${state}
130 Should Not Be True ${out} Shouldn't have ${ip}:${port} ${mode} ${version}
132 Setup SXP Environment
133 [Documentation] Create session to Controller
134 Verify Feature Is Installed odl-sxp-all
135 Create Session session url=http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML}
136 Wait Until Keyword Succeeds 15 3 Get Bindings Master Database
138 Clean SXP Environment
139 [Documentation] Destroy created sessions