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