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