Fix VTN Coordinator Boron CSIT job
[integration/test.git] / csit / suites / openstack / clustering / 01_l2_tests.robot
1 *** Settings ***
2 Documentation     Test suite to verify packet flows between vm instances.
3 Suite Setup       Devstack Suite Setup    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
8 Library           SSHLibrary
9 Library           OperatingSystem
10 Library           RequestsLibrary
11 Library           Collections
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
19
20 *** Variables ***
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
32
33 *** Test Cases ***
34 Create All Controller Sessions
35     [Documentation]    Create sessions for all three contorllers.
36     ClusterManagement.ClusterManagement Setup
37
38 Create Networks
39     [Documentation]    Create Network with neutron request.
40     : FOR    ${NetworkElement}    IN    @{NETWORKS_NAME}
41     \    OpenStackOperations.Create Network    ${NetworkElement}
42
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]
46
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]
50
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}
54
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}
58
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}
62
63 Take Down ODL1
64     [Documentation]    Kill the karaf in First Controller
65     ${new_cluster_list} =    ClusterManagement.Kill Single Member    1
66     Set Suite Variable    ${new_cluster_list}
67
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}
71
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}
75
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}
79
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
84
85 Bring Up ODL1
86     [Documentation]    Bring up ODL1 again
87     ClusterManagement.Start Single Member    1
88
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}
92
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}
96
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}
100
101 Take Down ODL2
102     [Documentation]    Kill the karaf in Second Controller
103     ClusterManagement.Kill Single Member    2
104
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
108
109 Bring Up ODL2
110     [Documentation]    Bring up ODL2 again
111     ClusterManagement.Start Single Member    2
112
113 Ping Vm Instance1 In l2_net_1
114     [Documentation]    Check reachability of vm instances by pinging to them.
115     Get OvsDebugInfo
116     OpenStackOperations.Ping Vm From DHCP Namespace    l2_net_1    @{NET_1_VM_IPS}[0]
117
118 Ping Vm Instance2 In l2_net_1
119     [Documentation]    Check reachability of vm instances by pinging to them.
120     Get OvsDebugInfo
121     OpenStackOperations.Ping Vm From DHCP Namespace    l2_net_1    @{NET_1_VM_IPS}[1]
122
123 Ping Vm Instance3 In l2_net_1
124     [Documentation]    Check reachability of vm instances by pinging to them.
125     Get OvsDebugInfo
126     OpenStackOperations.Ping Vm From DHCP Namespace    l2_net_1    @{NET_1_VM_IPS}[2]
127
128 Ping Vm Instance1 In l2_net_2
129     [Documentation]    Check reachability of vm instances by pinging to them.
130     Get OvsDebugInfo
131     OpenStackOperations.Ping Vm From DHCP Namespace    l2_net_2    @{NET_2_VM_IPS}[0]
132
133 Ping Vm Instance2 In l2_net_2
134     [Documentation]    Check reachability of vm instances by pinging to them.
135     Get OvsDebugInfo
136     OpenStackOperations.Ping Vm From DHCP Namespace    l2_net_2    @{NET_2_VM_IPS}[1]
137
138 Ping Vm Instance3 In l2_net_2
139     [Documentation]    Check reachability of vm instances by pinging to them.
140     Get OvsDebugInfo
141     OpenStackOperations.Ping Vm From DHCP Namespace    l2_net_2    @{NET_2_VM_IPS}[2]
142
143 Take Down ODL3
144     [Documentation]    Kill the karaf in Third Controller
145     ClusterManagement.Kill Single Member    3
146
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]
150     Log    ${dst_ip_list}
151     Get OvsDebugInfo
152     OpenStackOperations.Test Operations From Vm Instance    l2_net_1    @{NET_1_VM_IPS}[0]    ${dst_ip_list}
153
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]
157     Log    ${dst_ip_list}
158     Get OvsDebugInfo
159     OpenStackOperations.Test Operations From Vm Instance    l2_net_1    @{NET_1_VM_IPS}[1]    ${dst_ip_list}
160
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]
164     Log    ${dst_ip_list}
165     Get OvsDebugInfo
166     OpenStackOperations.Test Operations From Vm Instance    l2_net_1    @{NET_1_VM_IPS}[2]    ${dst_ip_list}
167
168 Bring Up ODL3
169     [Documentation]    Bring up ODL3 again
170     ClusterManagement.Start Single Member    3
171
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}
175
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]
179     Log    ${dst_ip_list}
180     Get OvsDebugInfo
181     OpenStackOperations.Test Operations From Vm Instance    l2_net_2    @{NET_2_VM_IPS}[0]    ${dst_ip_list}
182
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]
186     Log    ${dst_ip_list}
187     Get OvsDebugInfo
188     OpenStackOperations.Test Operations From Vm Instance    l2_net_2    @{NET_2_VM_IPS}[1]    ${dst_ip_list}
189
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]
193     Log    ${dst_ip_list}
194     Get OvsDebugInfo
195     OpenStackOperations.Test Operations From Vm Instance    l2_net_2    @{NET_2_VM_IPS}[2]    ${dst_ip_list}
196
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}
200
201 Delete Vm Instance
202     [Documentation]    Delete Vm instances using instance names.
203     OpenStackOperations.Delete Vm Instance    VmInstance1_l2_net_1
204
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]
208
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}
213
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}
218
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
222
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
226
227 Delete Networks
228     [Documentation]    Delete Networks with neutron request.
229     : FOR    ${NetworkElement}    IN    @{NETWORKS_NAME}
230     \    OpenStackOperations.Delete Network    ${NetworkElement}