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