Increase Get Vm IPs from 120s to 180s
[integration/test.git] / csit / suites / netvirt / neutron / ovsdb_flow.robot
1 *** Settings ***
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
8 Library           SSHLibrary
9 Library           Collections
10 Library           OperatingSystem
11 Library           String
12 Library           DateTime
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
19
20 *** Variables ***
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/
48 @{netvirt}        1
49
50 *** Test Cases ***
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}
61
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}
66
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}
71
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
76     Log    ${resp.content}
77     Should Be Equal As Strings    ${resp.status_code}    200
78
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}
85     Log    ${Data}
86     ${resp}    RequestsLibrary.Post Request    session    ${NEUTRON_NB_API}/networks    data=${Data}    headers=${HEADERS}
87     Log    ${resp.content}
88     Should Be Equal As Strings    ${resp.status_code}    201
89
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}
97     Log    ${Data}
98     ${resp}    RequestsLibrary.Post Request    session    ${NEUTRON_NB_API}/subnets    ${Data}
99     Should Be Equal As Strings    ${resp.status_code}    201
100
101 Create Tenant Router
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}
107     Log    ${Data}
108     ${resp}    RequestsLibrary.Post Request    session    ${NEUTRON_NB_API}/routers    ${Data}
109     Should Be Equal As Strings    ${resp.status_code}    201
110
111 Set Router Gateway
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}
120     Log    ${Data}
121     ${resp}    RequestsLibrary.Post Request    session    ${NEUTRON_NB_API}/ports    ${Data}
122     Should Be Equal As Strings    ${resp.status_code}    201
123
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}
132     Log    ${Data}
133     ${resp}    RequestsLibrary.Put Request    session    ${NEUTRON_NB_API}/routers/${TNT1_RTR_ID}    ${Data}
134     Should Be Equal As Strings    ${resp.status_code}    200
135
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}
144     Log    ${Data}
145     ${resp}    RequestsLibrary.Post Request    session    ${NEUTRON_NB_API}/networks    ${Data}
146     Should Be Equal As Strings    ${resp.status_code}    201
147
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}
156     Log    ${Data}
157     ${resp}    RequestsLibrary.Post Request    session    ${NEUTRON_NB_API}/subnets    ${Data}
158     Should Be Equal As Strings    ${resp.status_code}    201
159
160 Create Port DHCP
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}
171     Log    ${Data}
172     ${resp}    RequestsLibrary.Post Request    session    ${NEUTRON_NB_API}/ports    ${Data}
173     Should Be Equal As Strings    ${resp.status_code}    201
174
175 Update Port DHCP
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}
181     Log    ${Data}
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
184
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}
194     Log    ${Data}
195     ${resp}    RequestsLibrary.Post Request    session    ${NEUTRON_NB_API}/ports    ${Data}
196     Should Be Equal As Strings    ${resp.status_code}    201
197
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}
206     Log    ${Data}
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
209
210 Create Port VM
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}
221     Log    ${Data}
222     ${resp}    RequestsLibrary.Post Request    session    ${NEUTRON_NB_API}/ports    ${Data}
223     Should Be Equal As Strings    ${resp.status_code}    201
224
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}
234     Log    ${Data}
235     ${resp}    RequestsLibrary.Post Request    session    ${NEUTRON_NB_API}/ports    ${Data}
236     Should Be Equal As Strings    ${resp.status_code}    201
237
238 Create Floating IP
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}
246     Log    ${Data}
247     ${resp}    RequestsLibrary.Post Request    session    ${NEUTRON_NB_API}/floatingips    ${Data}
248     Should Be Equal As Strings    ${resp.status_code}    201
249
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}
260     Log    ${Data}
261     ${resp}    RequestsLibrary.Put Request    session    ${NEUTRON_NB_API}/floatingips/${FLOAT_IP1_ID}    ${Data}
262     Should Be Equal As Strings    ${resp.status_code}    200