2 Documentation Test Suite for vpn instance
4 Library OperatingSystem
6 Library RequestsLibrary
7 Variables ../../variables/Variables.py
9 Resource CompareStream.robot
11 Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
12 Suite Teardown Delete All Sessions
16 ${REST_CON} /restconf/config/
17 @{vpn_inst_values} testVpn1 1000:1 1000:1,2000:1 3000:1,4000:1
18 @{vm_int_values} s1-eth1 l2vlan openflow:1:1
19 @{vm_vpnint_values} s1-eth1 testVpn1 10.0.0.1 12:f8:57:a8:b9:a1
20 ${VPN_CONFIG_DIR} ${CURDIR}/../../variables/vpnservice
25 [Documentation] Creates VPN Instance through restconf
27 ${body} OperatingSystem.Get File ${VPN_CONFIG_DIR}/vpn_instance.json
28 CompareStream.Run_Keyword_If_Less_Than_Magnesium
30 ... RequestsLibrary.Post Request
32 ... ${REST_CON}l3vpn:vpn-instances/
34 CompareStream.Run_Keyword_If_At_Least_Magnesium
36 ... RequestsLibrary.Post Request
38 ... ${REST_CON}l3vpn-instances-interfaces:vpn-instances/
41 Should Be Equal As Strings ${resp.status_code} 204
44 [Documentation] Verifies the vpn instance is created
46 CompareStream.Run_Keyword_If_Less_Than_Magnesium
48 ... RequestsLibrary.Get Request
50 ... ${REST_CON}l3vpn:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
51 ... headers=${ACCEPT_XML}
52 CompareStream.Run_Keyword_If_At_Least_Magnesium
54 ... RequestsLibrary.Get Request
56 ... ${REST_CON}l3vpn-instances-interfaces:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
57 ... headers=${ACCEPT_XML}
58 Should Be Equal As Strings ${resp.status_code} 200
60 FOR ${value} IN @{vpn_inst_values}
61 Should Contain ${resp.content} ${value}
64 Create ietf vm interface
65 [Documentation] Creates ietf interface through the restconf
67 ${body} OperatingSystem.Get File ${VPN_CONFIG_DIR}/vm_interface.json
68 ${resp} RequestsLibrary.Post Request session ${REST_CON}ietf-interfaces:interfaces/ data=${body}
69 Should Be Equal As Strings ${resp.status_code} 204
71 Verify ietf vm interface
72 [Documentation] Verifies ietf interface created
74 ${resp} RequestsLibrary.Get Request
76 ... ${REST_CON}ietf-interfaces:interfaces/interface/${vm_int_values[0]}/
77 ... headers=${ACCEPT_XML}
78 Should Be Equal As Strings ${resp.status_code} 200
80 FOR ${value} IN @{vm_int_values}
81 Should Contain ${resp.content} ${value}
85 [Documentation] Creates vpn interface for the corresponding ietf interface
87 ${body} OperatingSystem.Get File ${VPN_CONFIG_DIR}/vm_vpninterface.json
88 CompareStream.Run_Keyword_If_Less_Than_Magnesium
90 ... RequestsLibrary.Post Request
92 ... ${REST_CON}l3vpn:vpn-interfaces/
94 CompareStream.Run_Keyword_If_At_Least_Magnesium
96 ... RequestsLibrary.Post Request
98 ... ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/
100 Should Be Equal As Strings ${resp.status_code} 204
103 [Documentation] Verifies the vpn interface created
105 CompareStream.Run_Keyword_If_Less_Than_Magnesium
107 ... RequestsLibrary.Get Request
109 ... ${REST_CON}l3vpn:vpn-interfaces/
110 ... headers=${ACCEPT_XML}
111 CompareStream.Run_Keyword_If_At_Least_Magnesium
113 ... RequestsLibrary.Get Request
115 ... ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/
116 ... headers=${ACCEPT_XML}
117 Should Be Equal As Strings ${resp.status_code} 200
119 FOR ${value} IN @{vm_vpnint_values}
120 Should Contain ${resp.content} ${value}
123 Verify FIB entry after create
124 [Documentation] Verifies the fib entry for the corresponding vpn interface
126 Wait Until Keyword Succeeds 5s 1s Ensure The Fib Entry Is Present ${vm_vpnint_values[2]}
128 Delete vm vpn interface
129 [Documentation] Deletes the vpn interface
131 CompareStream.Run_Keyword_If_Less_Than_Magnesium
133 ... RequestsLibrary.Delete Request
135 ... ${REST_CON}l3vpn:vpn-interfaces/
136 CompareStream.Run_Keyword_If_At_Least_Magnesium
138 ... RequestsLibrary.Delete Request
140 ... ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/
141 Should Be Equal As Strings ${resp.status_code} 200
143 Verify after deleteing vm vpn interface
144 [Documentation] Verifies vpn interface after delete
145 [Tags] verify after delete
146 CompareStream.Run_Keyword_If_Less_Than_Magnesium
148 ... RequestsLibrary.Get Request
150 ... ${REST_CON}l3vpn:vpn-interfaces/
151 ... headers=${ACCEPT_XML}
152 CompareStream.Run_Keyword_If_At_Least_Magnesium
154 ... RequestsLibrary.Get Request
156 ... ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/
157 ... headers=${ACCEPT_XML}
158 Should Be Equal As Strings ${resp.status_code} 404
161 [Documentation] Deletes the VPN Instance
163 CompareStream.Run_Keyword_If_Less_Than_Magnesium
165 ... RequestsLibrary.Delete Request
167 ... ${REST_CON}l3vpn:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
168 CompareStream.Run_Keyword_If_At_Least_Magnesium
170 ... RequestsLibrary.Delete Requestt
172 ... ${REST_CON}l3vpn-instances-interfaces:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
173 Should Be Equal As Strings ${resp.status_code} 200
175 Verify after deleting the vpn instance
176 [Documentation] Verifies after deleting the vpn instance
177 [Tags] verfiy after delete
178 CompareStream.Run_Keyword_If_Less_Than_Magnesium
180 ... RequestsLibrary.Post Request
182 ... ${REST_CON}l3vpn:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
183 ... headers=${ACCEPT_XML}
184 CompareStream.Run_Keyword_If_At_Least_Magnesium
186 ... RequestsLibrary.Post Request
188 ... ${REST_CON}l3vpn-instances-interfaces:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
189 ... headers=${ACCEPT_XML}
190 Should Be Equal As Strings ${resp.status_code} 404
192 Delete vm ietf interface
193 [Documentation] Deletes the ietf interface
195 ${resp} RequestsLibrary.Delete Request
197 ... ${REST_CON}ietf-interfaces:interfaces/interface/${vm_int_values[0]}
198 Should Be Equal As Strings ${resp.status_code} 200
200 Verify after deleting vm ietf interface
201 [Documentation] Verifies ietf interface after delete
202 [Tags] verify after delete
203 ${resp} RequestsLibrary.Get Request
205 ... ${REST_CON}ietf-interfaces:interfaces/interface/${vm_int_values[0]}
206 ... headers=${ACCEPT_XML}
207 Should Be Equal As Strings ${resp.status_code} 404
209 Verify FIB entry after delete
210 [Documentation] Verifies the fib entry is deleted for the corresponding vpn interface
212 Wait Until Keyword Succeeds 5s 1s Ensure The Fib Entry Is Removed ${vm_vpnint_values[2]}
216 Ensure The Fib Entry Is Present
217 [Documentation] Will succeed if the fib entry is present for the vpn
218 [Arguments] ${prefix}
219 ${resp} RequestsLibrary.Get Request
221 ... /restconf/operational/odl-fib:fibEntries/
222 ... headers=${ACCEPT_XML}
223 Should Be Equal As Strings ${resp.status_code} 200
225 Should Contain ${resp.content} ${prefix}
226 Should Contain ${resp.content} label
228 Ensure the Fib Entry Is Removed
229 [Documentation] Will succeed if the fib entry is removed for the vpn
230 [Arguments] ${prefix}
231 ${resp} RequestsLibrary.Get Request
233 ... /restconf/operational/odl-fib:fibEntries/
234 ... headers=${ACCEPT_XML}
235 Should Be Equal As Strings ${resp.status_code} 200
236 Should Not Contain ${resp.content} ${prefix}