2 Documentation Test Suite for vpn instance
3 Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
4 Suite Teardown Delete All Sessions
5 Library OperatingSystem
7 Library RequestsLibrary
8 Variables ../../variables/Variables.py
10 Resource CompareStream.robot
13 ${REST_CON} /restconf/config/
14 @{vpn_inst_values} testVpn1 1000:1 1000:1,2000:1 3000:1,4000:1
15 @{vm_int_values} s1-eth1 l2vlan openflow:1:1
16 @{vm_vpnint_values} s1-eth1 testVpn1 10.0.0.1 12:f8:57:a8:b9:a1
17 ${VPN_CONFIG_DIR} ${CURDIR}/../../variables/vpnservice
21 [Documentation] Creates VPN Instance through restconf
23 ${body} OperatingSystem.Get File ${VPN_CONFIG_DIR}/vpn_instance.json
24 CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}l3vpn:vpn-instances/ data=${body}
25 CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}l3vpn-instances-interfaces:vpn-instances/ data=${body}
27 Should Be Equal As Strings ${resp.status_code} 204
30 [Documentation] Verifies the vpn instance is created
32 CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Get Request session ${REST_CON}l3vpn:vpn-instances/vpn-instance/${vpn_inst_values[0]}/ headers=${ACCEPT_XML}
33 CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Get Request session ${REST_CON}l3vpn-instances-interfaces:vpn-instances/vpn-instance/${vpn_inst_values[0]}/ headers=${ACCEPT_XML}
34 Should Be Equal As Strings ${resp.status_code} 200
36 FOR ${value} IN @{vpn_inst_values}
37 Should Contain ${resp.content} ${value}
40 Create ietf vm interface
41 [Documentation] Creates ietf interface through the restconf
43 ${body} OperatingSystem.Get File ${VPN_CONFIG_DIR}/vm_interface.json
44 ${resp} RequestsLibrary.Post Request session ${REST_CON}ietf-interfaces:interfaces/ data=${body}
45 Should Be Equal As Strings ${resp.status_code} 204
47 Verify ietf vm interface
48 [Documentation] Verifies ietf interface created
50 ${resp} RequestsLibrary.Get Request session ${REST_CON}ietf-interfaces:interfaces/interface/${vm_int_values[0]}/ headers=${ACCEPT_XML}
51 Should Be Equal As Strings ${resp.status_code} 200
53 FOR ${value} IN @{vm_int_values}
54 Should Contain ${resp.content} ${value}
58 [Documentation] Creates vpn interface for the corresponding ietf interface
60 ${body} OperatingSystem.Get File ${VPN_CONFIG_DIR}/vm_vpninterface.json
61 CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}l3vpn:vpn-interfaces/ data=${body}
62 CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/ data=${body}
63 Should Be Equal As Strings ${resp.status_code} 204
66 [Documentation] Verifies the vpn interface created
68 CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Get Request session ${REST_CON}l3vpn:vpn-interfaces/ headers=${ACCEPT_XML}
69 CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Get Request session ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/ headers=${ACCEPT_XML}
70 Should Be Equal As Strings ${resp.status_code} 200
72 FOR ${value} IN @{vm_vpnint_values}
73 Should Contain ${resp.content} ${value}
76 Verify FIB entry after create
77 [Documentation] Verifies the fib entry for the corresponding vpn interface
79 Wait Until Keyword Succeeds 5s 1s Ensure The Fib Entry Is Present ${vm_vpnint_values[2]}
81 Delete vm vpn interface
82 [Documentation] Deletes the vpn interface
84 CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Delete Request session ${REST_CON}l3vpn:vpn-interfaces/
85 CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Delete Request session ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/
86 Should Be Equal As Strings ${resp.status_code} 200
88 Verify after deleteing vm vpn interface
89 [Documentation] Verifies vpn interface after delete
90 [Tags] Verify after delete
91 CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Get Request session ${REST_CON}l3vpn:vpn-interfaces/ headers=${ACCEPT_XML}
92 CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Get Request session ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/ headers=${ACCEPT_XML}
93 Should Be Equal As Strings ${resp.status_code} 404
96 [Documentation] Deletes the VPN Instance
98 CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Delete Request session ${REST_CON}l3vpn:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
99 CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Delete Requestt session ${REST_CON}l3vpn-instances-interfaces:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
100 Should Be Equal As Strings ${resp.status_code} 200
102 Verify after deleting the vpn instance
103 [Documentation] Verifies after deleting the vpn instance
104 [Tags] Verfiy after delete
105 CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}l3vpn:vpn-instances/vpn-instance/${vpn_inst_values[0]}/ headers=${ACCEPT_XML}
106 CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}l3vpn-instances-interfaces:vpn-instances/vpn-instance/${vpn_inst_values[0]}/ headers=${ACCEPT_XML}
107 Should Be Equal As Strings ${resp.status_code} 404
109 Delete vm ietf interface
110 [Documentation] Deletes the ietf interface
112 ${resp} RequestsLibrary.Delete Request session ${REST_CON}ietf-interfaces:interfaces/interface/${vm_int_values[0]}
113 Should Be Equal As Strings ${resp.status_code} 200
115 Verify after deleting vm ietf interface
116 [Documentation] Verifies ietf interface after delete
117 [Tags] Verify after delete
118 ${resp} RequestsLibrary.Get Request session ${REST_CON}ietf-interfaces:interfaces/interface/${vm_int_values[0]} headers=${ACCEPT_XML}
119 Should Be Equal As Strings ${resp.status_code} 404
121 Verify FIB entry after delete
122 [Documentation] Verifies the fib entry is deleted for the corresponding vpn interface
124 Wait Until Keyword Succeeds 5s 1s Ensure The Fib Entry Is Removed ${vm_vpnint_values[2]}
127 Ensure The Fib Entry Is Present
128 [Arguments] ${prefix}
129 [Documentation] Will succeed if the fib entry is present for the vpn
130 ${resp} RequestsLibrary.Get Request session /restconf/operational/odl-fib:fibEntries/ headers=${ACCEPT_XML}
131 Should Be Equal As Strings ${resp.status_code} 200
133 Should Contain ${resp.content} ${prefix}
134 Should Contain ${resp.content} label
136 Ensure the Fib Entry Is Removed
137 [Arguments] ${prefix}
138 [Documentation] Will succeed if the fib entry is removed for the vpn
139 ${resp} RequestsLibrary.Get Request session /restconf/operational/odl-fib:fibEntries/ headers=${ACCEPT_XML}
140 Should Be Equal As Strings ${resp.status_code} 200
141 Should Not Contain ${resp.content} ${prefix}