2 Documentation Test suite to verify packet flows between vm instances.
3 Suite Setup Devstack Suite Setup Tests source_pwd=yes
4 Suite Teardown Close All Connections
5 Test Teardown Run Keywords Show Debugs ${NET_1_VM_INSTANCES}
6 ... AND Show Debugs ${NET_2_VM_INSTANCES}
7 ... AND Get OvsDebugInfo
9 Library OperatingSystem
10 Library RequestsLibrary
12 Resource ../../../libraries/Utils.robot
13 Resource ../../../libraries/OpenStackOperations.robot
14 Resource ../../../libraries/DevstackUtils.robot
15 Resource ../../../libraries/OVSDB.robot
16 Resource ../../../libraries/ClusterOvsdb.robot
17 Resource ../../../libraries/ClusterManagement.robot
18 Variables ../../../variables/Variables.py
21 @{NETWORKS_NAME} l2_net_1 l2_net_2
22 @{SUBNETS_NAME} l2_sub_net_1 l2_sub_net_2
23 @{NET_1_VM_INSTANCES} VmInstance1_l2_net_1 VmInstance2_net_1 VmInstance3_net_1
24 @{NET_2_VM_INSTANCES} VmInstance1_l2_net_2 VmInstance2_net_2 VmInstance3_net_2
25 @{NET_1_VM_IPS} 70.0.0.3 70.0.0.4 70.0.0.5
26 @{NET_2_VM_IPS} 80.0.0.3 80.0.0.4 80.0.0.5
27 @{VM_IPS_NOT_DELETED} 70.0.0.4
28 @{GATEWAY_IPS} 70.0.0.1 80.0.0.1
29 @{DHCP_IPS} 70.0.0.2 80.0.0.2
30 @{cluster_down_list} ${1} ${2}
31 @{SUBNETS_RANGE} 70.0.0.0/24 80.0.0.0/24
34 Create All Controller Sessions
35 [Documentation] Create sessions for all three contorllers.
36 ClusterManagement.ClusterManagement Setup
39 [Documentation] Create Network with neutron request.
40 : FOR ${NetworkElement} IN @{NETWORKS_NAME}
41 \ OpenStackOperations.Create Network ${NetworkElement}
43 Create Subnets For l2_net_1
44 [Documentation] Create Sub Nets for the Networks with neutron request.
45 OpenStackOperations.Create SubNet l2_net_1 l2_sub_net_1 @{SUBNETS_RANGE}[0]
47 Create Subnets For l2_net_2
48 [Documentation] Create Sub Nets for the Networks with neutron request.
49 OpenStackOperations.Create SubNet l2_net_2 l2_sub_net_2 @{SUBNETS_RANGE}[1]
51 Create Bridge Manually and Verify Before Fail
52 [Documentation] Create bridge with OVS command and verify it gets applied from all instances.
53 ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP}
55 Add Tap Device Manually and Verify Before Fail
56 [Documentation] Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
57 ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CONTROL_NODE_IP}
59 Delete the Bridge Manually and Verify Before Fail
60 [Documentation] Delete bridge with OVS command and verify it gets deleted from all instances.
61 ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP}
64 [Documentation] Kill the karaf in First Controller
65 ${new_cluster_list} = ClusterManagement.Kill Single Member 1
66 Set Suite Variable ${new_cluster_list}
68 Create Bridge Manually and Verify After Fail
69 [Documentation] Create bridge with OVS command and verify it gets applied from all instances.
70 ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP} ${new_cluster_list}
72 Add Tap Device Manually and Verify After Fail
73 [Documentation] Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
74 ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CONTROL_NODE_IP} ${new_cluster_list}
76 Delete the Bridge Manually and Verify After Fail
77 [Documentation] Delete bridge with OVS command and verify it gets deleted from all instances.
78 ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP} ${new_cluster_list}
80 Create Vm Instances For l2_net_1
81 [Documentation] Create Vm instances using flavor and image names for a network.
82 Log ${devstack_conn_id}
83 OpenStackOperations.Create Vm Instances l2_net_1 ${NET_1_VM_INSTANCES} sg=csit
86 [Documentation] Bring up ODL1 again
87 ClusterManagement.Start Single Member 1
89 Create Bridge Manually and Verify After Recover
90 [Documentation] Create bridge with OVS command and verify it gets applied from all instances.
91 ClusterOvsdb.Create Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP}
93 Add Tap Device Manually and Verify After Recover
94 [Documentation] Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
95 ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify ${OS_CONTROL_NODE_IP}
97 Delete the Bridge Manually and Verify After Recover
98 [Documentation] Delete bridge with OVS command and verify it gets deleted from all instances.
99 ClusterOvsdb.Delete Sample Bridge Manually And Verify ${OS_CONTROL_NODE_IP}
102 [Documentation] Kill the karaf in Second Controller
103 ClusterManagement.Kill Single Member 2
105 Create Vm Instances For l2_net_2
106 [Documentation] Create Vm instances using flavor and image names for a network.
107 OpenStackOperations.Create Vm Instances l2_net_2 ${NET_2_VM_INSTANCES} sg=csit
110 [Documentation] Bring up ODL2 again
111 ClusterManagement.Start Single Member 2
113 Ping Vm Instance1 In l2_net_1
114 [Documentation] Check reachability of vm instances by pinging to them.
116 OpenStackOperations.Ping Vm From DHCP Namespace l2_net_1 @{NET_1_VM_IPS}[0]
118 Ping Vm Instance2 In l2_net_1
119 [Documentation] Check reachability of vm instances by pinging to them.
121 OpenStackOperations.Ping Vm From DHCP Namespace l2_net_1 @{NET_1_VM_IPS}[1]
123 Ping Vm Instance3 In l2_net_1
124 [Documentation] Check reachability of vm instances by pinging to them.
126 OpenStackOperations.Ping Vm From DHCP Namespace l2_net_1 @{NET_1_VM_IPS}[2]
128 Ping Vm Instance1 In l2_net_2
129 [Documentation] Check reachability of vm instances by pinging to them.
131 OpenStackOperations.Ping Vm From DHCP Namespace l2_net_2 @{NET_2_VM_IPS}[0]
133 Ping Vm Instance2 In l2_net_2
134 [Documentation] Check reachability of vm instances by pinging to them.
136 OpenStackOperations.Ping Vm From DHCP Namespace l2_net_2 @{NET_2_VM_IPS}[1]
138 Ping Vm Instance3 In l2_net_2
139 [Documentation] Check reachability of vm instances by pinging to them.
141 OpenStackOperations.Ping Vm From DHCP Namespace l2_net_2 @{NET_2_VM_IPS}[2]
144 [Documentation] Kill the karaf in Third Controller
145 ClusterManagement.Kill Single Member 3
147 Connectivity Tests From Vm Instance1 In l2_net_1
148 [Documentation] Logging to the vm instance using generated key pair.
149 ${dst_ip_list}= Create List @{NET_1_VM_IPS}[1] @{DHCP_IPS}[0] @{NET_1_VM_IPS}[2]
152 OpenStackOperations.Test Operations From Vm Instance l2_net_1 @{NET_1_VM_IPS}[0] ${dst_ip_list}
154 Connectivity Tests From Vm Instance2 In l2_net_1
155 [Documentation] Logging to the vm instance using generated key pair.
156 ${dst_ip_list}= Create List @{NET_1_VM_IPS}[0] @{DHCP_IPS}[0] @{NET_1_VM_IPS}[2]
159 OpenStackOperations.Test Operations From Vm Instance l2_net_1 @{NET_1_VM_IPS}[1] ${dst_ip_list}
161 Connectivity Tests From Vm Instance3 In l2_net_1
162 [Documentation] Logging to the vm instance using generated key pair.
163 ${dst_ip_list}= Create List @{NET_1_VM_IPS}[0] @{DHCP_IPS}[0] @{NET_1_VM_IPS}[1]
166 OpenStackOperations.Test Operations From Vm Instance l2_net_1 @{NET_1_VM_IPS}[2] ${dst_ip_list}
169 [Documentation] Bring up ODL3 again
170 ClusterManagement.Start Single Member 3
172 Take Down ODL1 and ODL2
173 [Documentation] Kill the karaf in First and Second Controller
174 ClusterManagement.Kill Members From List Or All ${cluster_down_list}
176 Connectivity Tests From Vm Instance1 In l2_net_2
177 [Documentation] Logging to the vm instance using generated key pair.
178 ${dst_ip_list}= Create List @{NET_2_VM_IPS}[1] @{DHCP_IPS}[1] @{NET_2_VM_IPS}[2]
181 OpenStackOperations.Test Operations From Vm Instance l2_net_2 @{NET_2_VM_IPS}[0] ${dst_ip_list}
183 Connectivity Tests From Vm Instance2 In l2_net_2
184 [Documentation] Logging to the vm instance using generated key pair.
185 ${dst_ip_list}= Create List @{NET_2_VM_IPS}[0] @{DHCP_IPS}[1] @{NET_2_VM_IPS}[2]
188 OpenStackOperations.Test Operations From Vm Instance l2_net_2 @{NET_2_VM_IPS}[1] ${dst_ip_list}
190 Connectivity Tests From Vm Instance3 In l2_net_2
191 [Documentation] Logging to the vm instance using generated key pair.
192 ${dst_ip_list}= Create List @{NET_2_VM_IPS}[0] @{DHCP_IPS}[1] @{NET_2_VM_IPS}[1]
195 OpenStackOperations.Test Operations From Vm Instance l2_net_2 @{NET_2_VM_IPS}[2] ${dst_ip_list}
197 Bring Up ODL1 and ODL2
198 [Documentation] Bring up ODL1 and ODL2 again.
199 ClusterManagement.Start Members From List Or All ${cluster_down_list}
202 [Documentation] Delete Vm instances using instance names.
203 OpenStackOperations.Delete Vm Instance VmInstance1_l2_net_1
205 No Ping For Deleted Vm
206 [Documentation] Check non reachability of deleted vm instances by pinging to them.
207 ${output}= OpenStackOperations.Ping From DHCP Should Not Succeed l2_network_1 @{NET_1_VM_IPS}[0]
209 Delete Vm Instances In network_1
210 [Documentation] Delete Vm instances using instance names in network_1.
211 : FOR ${VmElement} IN @{NET_1_VM_INSTANCES}
212 \ OpenStackOperations.Delete Vm Instance ${VmElement}
214 Delete Vm Instances In network_2
215 [Documentation] Delete Vm instances using instance names in network_2.
216 : FOR ${VmElement} IN @{NET_2_VM_INSTANCES}
217 \ OpenStackOperations.Delete Vm Instance ${VmElement}
219 Delete Sub Networks In network_1
220 [Documentation] Delete Sub Nets for the Networks with neutron request.
221 OpenStackOperations.Delete SubNet l2_sub_net_1
223 Delete Sub Networks In network_2
224 [Documentation] Delete Sub Nets for the Networks with neutron request.
225 OpenStackOperations.Delete SubNet l2_sub_net_2
228 [Documentation] Delete Networks with neutron request.
229 : FOR ${NetworkElement} IN @{NETWORKS_NAME}
230 \ OpenStackOperations.Delete Network ${NetworkElement}