2 Documentation Checking Network created in OVSDB are pushed to OpenDaylight
3 Suite Setup BuiltIn.Run Keywords SetupUtils.Setup_Utils_For_Setup_And_Teardown
4 ... AND Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
5 Suite Teardown Delete All Sessions
6 Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
7 Test Teardown Collect OVSDB Debugs
10 Library OperatingSystem
13 Library RequestsLibrary
14 Library ../../../libraries/Common.py
15 Variables ../../../variables/Variables.py
16 Resource ../../../libraries/SetupUtils.robot
17 Resource ../../../libraries/Utils.robot
18 Resource ../../../libraries/OVSDB.robot
21 ${OVSDB_CONFIG_DIR} ${CURDIR}/../../../variables/ovsdb
22 ${TNT1_ID} cde2563ead464ffa97963c59e002c0cf
23 ${EXT_NET1_ID} 7da709ff-397f-4778-a0e8-994811272fdb
24 ${EXT_SUBNET1_ID} 00289199-e288-464a-ab2f-837ca67101a7
25 ${TNT1_RTR_ID} e09818e7-a05a-4963-9927-fc1dc6f1e844
26 ${NEUTRON_PORT_TNT1_RTR_GW} 8ddd29db-f417-4917-979f-b01d4b1c3e0d
27 ${NEUTRON_PORT_TNT1_RTR_NET1} 9cc1af22-108f-40bb-b938-f1da292236bf
28 ${TNT1_NET1_NAME} net1
29 ${TNT1_NET1_SEGM} 1062
30 ${TNT1_NET1_ID} 12809f83-ccdf-422c-a20a-4ddae0712655
31 ${TNT1_SUBNET1_NAME} subnet1
32 ${TNT1_SUBNET1_ID} 6c496958-a787-4d8c-9465-f4c4176652e8
33 ${TNT1_NET1_DHCP_PORT_ID} 79adcba5-19e0-489c-9505-cc70f9eba2a1
34 ${TNT1_NET1_DHCP_MAC} FA:16:3E:8F:70:A9
35 ${TNT1_NET1_DHCP_DEVICE_ID} dhcp58155ae3-f2e7-51ca-9978-71c513ab02ee-${TNT1_NET1_ID}
36 ${TNT1_NET1_DHCP_OVS_PORT} tap79adcba5-19
37 ${TNT1_VM1_PORT_ID} 341ceaca-24bf-4017-9b08-c3180e86fd24
38 ${TNT1_VM1_MAC} FA:16:3E:8E:B8:05
39 ${TNT1_VM1_DEVICE_ID} 20e500c3-41e1-4be0-b854-55c710a1cfb2
40 ${TNT1_NET1_VM1_OVS_PORT} tap341ceaca-24
41 ${TNT1_VM1_VM_ID} 20e500c3-41e1-4be0-b854-55c710a1cfb2
42 ${FLOAT_IP1_ID} f013bef4-9468-494d-9417-c9d9e4abb97c
43 ${FLOAT_IP1_PORT_ID} 01671703-695e-4497-8a11-b5da989d2dc3
44 ${FLOAT_IP1_MAC} FA:16:3E:3F:37:BB
45 ${FLOAT_IP1_DEVICE_ID} f013bef4-9468-494d-9417-c9d9e4abb97c
46 ${FLOAT_IP1_ADDRESS} 192.168.111.22
47 @{node_list} ovsdb://uuid/
51 Add variables to controller custom.properties
52 [Documentation] Add variables to custom.properties
53 [Tags] Enable l3 forwarding
54 Run Command On Remote System ${ODL_SYSTEM_IP} echo 'ovsdb.l3.fwd.enabled=yes' >> ${WORKSPACE}/${BUNDLEFOLDER}/etc/custom.properties
55 Run Command On Remote System ${ODL_SYSTEM_IP} echo 'ovsdb.l3gateway.mac=00:00:5E:00:02:01' >> ${WORKSPACE}/${BUNDLEFOLDER}/etc/custom.properties
56 ${controller_pid_1}= Get Process ID Based On Regex On Remote System ${ODL_SYSTEM_IP} java.*karaf
57 Run Command On Remote System ${ODL_SYSTEM_IP} kill -SIGTERM ${controller_pid_1}
58 Run Command On Remote System ${ODL_SYSTEM_IP} ${WORKSPACE}/${BUNDLEFOLDER}/bin/start
59 ${controller_pid_2}= Get Process ID Based On Regex On Remote System ${ODL_SYSTEM_IP} java.*karaf
60 Should Not be Equal As Numbers ${controller_pid_1} ${controller_pid_2}
62 Ensure controller is running
63 [Documentation] Check if the controller is running before sending restconf requests
64 [Tags] Check controller reachability
65 Wait Until Keyword Succeeds 300s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API} ${node_list}
67 Ensure netvirt is loaded
68 [Documentation] Check if the netvirt piece has been loaded into the karaf instance
69 [Tags] Ensure netvirt is loaded
70 Wait Until Keyword Succeeds 300s 4s Check For Elements At URI ${OPERATIONAL_NODES_NETVIRT} ${netvirt}
72 Check External Net for Tenant
73 [Documentation] Check External Net for Tenant
74 [Tags] OpenStack Call Flow
75 ${resp} RequestsLibrary.Get Request session ${NEUTRON_NB_API}/networks
77 Should Be Equal As Strings ${resp.status_code} 200
79 Create External Net for Tenant
80 [Documentation] Create External Net for Tenant
81 [Tags] OpenStack Call Flow
82 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_ext_net.json
83 ${Data} Replace String ${Data} {netId} ${EXT_NET1_ID}
84 ${Data} Replace String ${Data} {tntId} ${TNT1_ID}
86 ${resp} RequestsLibrary.Post Request session ${NEUTRON_NB_API}/networks data=${Data} headers=${HEADERS}
88 Should Be Equal As Strings ${resp.status_code} 201
90 Create External Subnet
91 [Documentation] Create External Subnet
92 [Tags] OpenStack Call Flow
93 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_ext_subnet.json
94 ${Data} Replace String ${Data} {netId} ${EXT_NET1_ID}
95 ${Data} Replace String ${Data} {tntId} ${TNT1_ID}
96 ${Data} Replace String ${Data} {subnetId} ${EXT_SUBNET1_ID}
98 ${resp} RequestsLibrary.Post Request session ${NEUTRON_NB_API}/subnets ${Data}
99 Should Be Equal As Strings ${resp.status_code} 201
102 [Documentation] Create Tenant Router
103 [Tags] OpenStack Call Flow
104 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_router.json
105 ${Data} Replace String ${Data} {tntId} ${TNT1_ID}
106 ${Data} Replace String ${Data} {rtrId} ${TNT1_RTR_ID}
108 ${resp} RequestsLibrary.Post Request session ${NEUTRON_NB_API}/routers ${Data}
109 Should Be Equal As Strings ${resp.status_code} 201
112 [Documentation] Set Router Gateway
113 [Tags] OpenStack Call Flow
114 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port_rtr_gateway.json
115 ${Data} Replace String ${Data} {tntId} ${TNT1_ID}
116 ${Data} Replace String ${Data} {rtrId} ${TNT1_RTR_ID}
117 ${Data} Replace String ${Data} {netId} ${EXT_NET1_ID}
118 ${Data} Replace String ${Data} {subnetId} ${EXT_SUBNET1_ID}
119 ${Data} Replace String ${Data} {portId} ${NEUTRON_PORT_TNT1_RTR_GW}
121 ${resp} RequestsLibrary.Post Request session ${NEUTRON_NB_API}/ports ${Data}
122 Should Be Equal As Strings ${resp.status_code} 201
124 Update Router Port Gateway
125 [Documentation] Update Router Port Gateway
126 [Tags] OpenStack Call Flow
127 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/update_router_port_gateway.json
128 ${Data} Replace String ${Data} {tntId} ${TNT1_ID}
129 ${Data} Replace String ${Data} {netId} ${EXT_NET1_ID}
130 ${Data} Replace String ${Data} {subnetId} ${EXT_SUBNET1_ID}
131 ${Data} Replace String ${Data} {portId} ${NEUTRON_PORT_TNT1_RTR_GW}
133 ${resp} RequestsLibrary.Put Request session ${NEUTRON_NB_API}/routers/${TNT1_RTR_ID} ${Data}
134 Should Be Equal As Strings ${resp.status_code} 200
136 Create Tenant Internal Net
137 [Documentation] Create Tenant Internal Net
138 [Tags] OpenStack Call Flow
139 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_tnt_net.json
140 ${Data} Replace String ${Data} {tntId} ${TNT1_ID}
141 ${Data} Replace String ${Data} {netId} ${TNT1_NET1_ID}
142 ${Data} Replace String ${Data} {netName} ${TNT1_NET1_NAME}
143 ${Data} Replace String ${Data} {netSegm} ${TNT1_NET1_SEGM}
145 ${resp} RequestsLibrary.Post Request session ${NEUTRON_NB_API}/networks ${Data}
146 Should Be Equal As Strings ${resp.status_code} 201
148 Create Tenant Internal Subnet
149 [Documentation] Create Tenant Internal Subnet
150 [Tags] OpenStack Call Flow
151 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_tnt_subnet.json
152 ${Data} Replace String ${Data} {tntId} ${TNT1_ID}
153 ${Data} Replace String ${Data} {netId} ${TNT1_NET1_ID}
154 ${Data} Replace String ${Data} {subnetId} ${TNT1_SUBNET1_ID}
155 ${Data} Replace String ${Data} {subnetName} ${TNT1_SUBNET1_NAME}
157 ${resp} RequestsLibrary.Post Request session ${NEUTRON_NB_API}/subnets ${Data}
158 Should Be Equal As Strings ${resp.status_code} 201
161 [Documentation] Create Port DHCP
162 [Tags] OpenStack Call Flow
163 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port_dhcp.json
164 ${Data} Replace String ${Data} {BIND_HOST_ID} ${ODL_SYSTEM_IP}
165 ${Data} Replace String ${Data} {subnetId} ${TNT1_SUBNET1_ID}
166 ${Data} Replace String ${Data} {dhcpDeviceId} ${TNT1_NET1_DHCP_DEVICE_ID}
167 ${Data} Replace String ${Data} {netId} ${TNT1_NET1_ID}
168 ${Data} Replace String ${Data} {tntId} ${TNT1_ID}
169 ${Data} Replace String ${Data} {dhcpMac} ${TNT1_NET1_DHCP_MAC}
170 ${Data} Replace String ${Data} {dhcpId} ${TNT1_NET1_DHCP_PORT_ID}
172 ${resp} RequestsLibrary.Post Request session ${NEUTRON_NB_API}/ports ${Data}
173 Should Be Equal As Strings ${resp.status_code} 201
176 [Documentation] Update Port DHCP
177 [Tags] OpenStack Call Flow
178 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/update_port_dhcp.json
179 ${Data} Replace String ${Data} {BIND_HOST_ID} ${ODL_SYSTEM_IP}
180 ${Data} Replace String ${Data} {dhcpDeviceId} ${TNT1_NET1_DHCP_DEVICE_ID}
182 ${resp} RequestsLibrary.Put Request session ${NEUTRON_NB_API}/ports/${TNT1_NET1_DHCP_PORT_ID} ${Data}
183 Should Be Equal As Strings ${resp.status_code} 200
185 Create Router Interface on Tenant Internal Subnet
186 [Documentation] Create Router Interface on Tenant Internal Subnet
187 [Tags] OpenStack Call Flow
188 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port_rtr_interface.json
189 ${Data} Replace String ${Data} {tntId} ${TNT1_ID}
190 ${Data} Replace String ${Data} {rtrId} ${TNT1_RTR_ID}
191 ${Data} Replace String ${Data} {netId} ${TNT1_NET1_ID}
192 ${Data} Replace String ${Data} {subnetId} ${TNT1_SUBNET1_ID}
193 ${Data} Replace String ${Data} {portId} ${NEUTRON_PORT_TNT1_RTR_NET1}
195 ${resp} RequestsLibrary.Post Request session ${NEUTRON_NB_API}/ports ${Data}
196 Should Be Equal As Strings ${resp.status_code} 201
198 Update Router Interface on Tenant Internal Subnet
199 [Documentation] Update Router Interface on Tenant Internal Subnet
200 [Tags] OpenStack Call Flow
201 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/update_router_interface.json
202 ${Data} Replace String ${Data} {tntId} ${TNT1_ID}
203 ${Data} Replace String ${Data} {rtrId} ${TNT1_RTR_ID}
204 ${Data} Replace String ${Data} {subnetId} ${TNT1_SUBNET1_ID}
205 ${Data} Replace String ${Data} {portId} ${NEUTRON_PORT_TNT1_RTR_NET1}
207 ${resp} RequestsLibrary.Put Request session ${NEUTRON_NB_API}/routers/${TNT1_RTR_ID}/add_router_interface ${Data}
208 Should Be Equal As Strings ${resp.status_code} 200
211 [Documentation] Create Port VM
212 [Tags] OpenStack Call Flow
213 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port_vm.json
214 ${Data} Replace String ${Data} {BIND_HOST_ID} ${ODL_SYSTEM_IP}
215 ${Data} Replace String ${Data} {tntId} ${TNT1_ID}
216 ${Data} Replace String ${Data} {netId} ${TNT1_NET1_ID}
217 ${Data} Replace String ${Data} {subnetId} ${TNT1_SUBNET1_ID}
218 ${Data} Replace String ${Data} {portId} ${TNT1_VM1_PORT_ID}
219 ${Data} Replace String ${Data} {macAddr} ${TNT1_VM1_MAC}
220 ${Data} Replace String ${Data} {deviceId} ${TNT1_VM1_DEVICE_ID}
222 ${resp} RequestsLibrary.Post Request session ${NEUTRON_NB_API}/ports ${Data}
223 Should Be Equal As Strings ${resp.status_code} 201
225 Create Port Floating IP
226 [Documentation] Create Port Floating IP
227 [Tags] OpenStack Call Flow
228 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_port_floating_ip.json
229 ${Data} Replace String ${Data} {netId} ${EXT_NET1_ID}
230 ${Data} Replace String ${Data} {subnetId} ${EXT_SUBNET1_ID}
231 ${Data} Replace String ${Data} {portId} ${FLOAT_IP1_PORT_ID}
232 ${Data} Replace String ${Data} {macAddress} ${FLOAT_IP1_MAC}
233 ${Data} Replace String ${Data} {deviceId} ${FLOAT_IP1_DEVICE_ID}
235 ${resp} RequestsLibrary.Post Request session ${NEUTRON_NB_API}/ports ${Data}
236 Should Be Equal As Strings ${resp.status_code} 201
239 [Documentation] Create Floating IP
240 [Tags] OpenStack Call Flow
241 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/create_floating_ip.json
242 ${Data} Replace String ${Data} {tntId} ${TNT1_ID}
243 ${Data} Replace String ${Data} {netId} ${EXT_NET1_ID}
244 ${Data} Replace String ${Data} {floatIpId} ${FLOAT_IP1_ID}
245 ${Data} Replace String ${Data} {floatIpAddress} ${FLOAT_IP1_ADDRESS}
247 ${resp} RequestsLibrary.Post Request session ${NEUTRON_NB_API}/floatingips ${Data}
248 Should Be Equal As Strings ${resp.status_code} 201
250 Associate the Floating IP with Tenant VM
251 [Documentation] Associate the Floating IP with Tenant VM
252 [Tags] OpenStack Call Flow
253 ${Data} OperatingSystem.Get File ${OVSDB_CONFIG_DIR}/associate_floating_ip.json
254 ${Data} Replace String ${Data} {tntId} ${TNT1_ID}
255 ${Data} Replace String ${Data} {netId} ${EXT_NET1_ID}
256 ${Data} Replace String ${Data} {rtrId} ${TNT1_RTR_ID}
257 ${Data} Replace String ${Data} {floatIpId} ${FLOAT_IP1_ID}
258 ${Data} Replace String ${Data} {floatIpAddress} ${FLOAT_IP1_ADDRESS}
259 ${Data} Replace String ${Data} {vmPortId} ${TNT1_VM1_PORT_ID}
261 ${resp} RequestsLibrary.Put Request session ${NEUTRON_NB_API}/floatingips/${FLOAT_IP1_ID} ${Data}
262 Should Be Equal As Strings ${resp.status_code} 200