Add missing create sg in ha l3
[integration/test.git] / csit / suites / openstack / clustering / ha_l2.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 Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
6 Test Teardown     Get Test Teardown Debugs
7 Library           SSHLibrary
8 Library           OperatingSystem
9 Library           RequestsLibrary
10 Library           Collections
11 Resource          ../../../libraries/Utils.robot
12 Resource          ../../../libraries/OpenStackOperations.robot
13 Resource          ../../../libraries/DevstackUtils.robot
14 Resource          ../../../libraries/OVSDB.robot
15 Resource          ../../../libraries/ClusterOvsdb.robot
16 Resource          ../../../libraries/ClusterManagement.robot
17 Resource          ../../../libraries/SetupUtils.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 @{VM_IPS_NOT_DELETED}    70.0.0.4
26 @{cluster_down_list}    ${1}    ${2}
27 @{SUBNETS_RANGE}    70.0.0.0/24    80.0.0.0/24
28 ${SECURITY_GROUP}    sg-clustering
29
30 *** Test Cases ***
31 Create All Controller Sessions
32     [Documentation]    Create sessions for all three contorllers.
33     ClusterManagement.ClusterManagement Setup
34
35 Create Networks
36     [Documentation]    Create Network with neutron request.
37     : FOR    ${NetworkElement}    IN    @{NETWORKS_NAME}
38     \    OpenStackOperations.Create Network    ${NetworkElement}
39
40 Create Subnets For l2_net_1
41     [Documentation]    Create Sub Nets for the Networks with neutron request.
42     OpenStackOperations.Create SubNet    l2_net_1    l2_sub_net_1    @{SUBNETS_RANGE}[0]
43
44 Create Subnets For l2_net_2
45     [Documentation]    Create Sub Nets for the Networks with neutron request.
46     OpenStackOperations.Create SubNet    l2_net_2    l2_sub_net_2    @{SUBNETS_RANGE}[1]
47
48 Add Ssh Allow Rule
49     [Documentation]    Allow all TCP/UDP/ICMP packets for this suite
50     OpenStackOperations.Create Allow All SecurityGroup    ${SECURITY_GROUP}
51
52 Create Bridge Manually and Verify Before Fail
53     [Documentation]    Create bridge with OVS command and verify it gets applied from all instances.
54     ClusterOvsdb.Create Sample Bridge Manually And Verify    ${OS_CONTROL_NODE_IP}
55
56 Add Tap Device Manually and Verify Before Fail
57     [Documentation]    Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
58     ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify    ${OS_CONTROL_NODE_IP}
59
60 Delete the Bridge Manually and Verify Before Fail
61     [Documentation]    Delete bridge with OVS command and verify it gets deleted from all instances.
62     ClusterOvsdb.Delete Sample Bridge Manually And Verify    ${OS_CONTROL_NODE_IP}
63
64 Take Down ODL1
65     [Documentation]    Kill the karaf in First Controller
66     ${new_cluster_list} =    ClusterManagement.Kill Single Member    1
67     Set Suite Variable    ${new_cluster_list}
68
69 Create Bridge Manually and Verify After Fail
70     [Documentation]    Create bridge with OVS command and verify it gets applied from all instances.
71     ClusterOvsdb.Create Sample Bridge Manually And Verify    ${OS_CONTROL_NODE_IP}    ${new_cluster_list}
72
73 Add Tap Device Manually and Verify After Fail
74     [Documentation]    Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
75     ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify    ${OS_CONTROL_NODE_IP}    ${new_cluster_list}
76
77 Delete the Bridge Manually and Verify After Fail
78     [Documentation]    Delete bridge with OVS command and verify it gets deleted from all instances.
79     ClusterOvsdb.Delete Sample Bridge Manually And Verify    ${OS_CONTROL_NODE_IP}    ${new_cluster_list}
80
81 Bring Up ODL1
82     [Documentation]    Bring up ODL1 again
83     ClusterManagement.Start Single Member    1
84
85 Create Bridge Manually and Verify After Recover
86     [Documentation]    Create bridge with OVS command and verify it gets applied from all instances.
87     ClusterOvsdb.Create Sample Bridge Manually And Verify    ${OS_CONTROL_NODE_IP}
88
89 Add Tap Device Manually and Verify After Recover
90     [Documentation]    Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
91     ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify    ${OS_CONTROL_NODE_IP}
92
93 Delete the Bridge Manually and Verify After Recover
94     [Documentation]    Delete bridge with OVS command and verify it gets deleted from all instances.
95     ClusterOvsdb.Delete Sample Bridge Manually And Verify    ${OS_CONTROL_NODE_IP}
96
97 Take Down ODL2
98     [Documentation]    Kill the karaf in Second Controller
99     ClusterManagement.Kill Single Member    2
100
101 Create Vm Instances For l2_net_2
102     [Documentation]    Create Vm instances using flavor and image names for a network.
103     OpenStackOperations.Create Vm Instances    l2_net_2    ${NET_2_VM_INSTANCES}    sg=${SECURITY_GROUP}
104
105 Create Vm Instances For l2_net_1
106     [Documentation]    Create Vm instances using flavor and image names for a network.
107     Log    ${devstack_conn_id}
108     OpenStackOperations.Create Vm Instances    l2_net_1    ${NET_1_VM_INSTANCES}    sg=${SECURITY_GROUP}
109
110 Check Vm Instances Have Ip Address
111     [Documentation]    Test case to verify that all created VMs are ready and have received their ip addresses.
112     ...    We are polling first and longest on the last VM created assuming that if it's received it's address
113     ...    already the other instances should have theirs already or at least shortly thereafter.
114     # first, ensure all VMs are in ACTIVE state.    if not, we can just fail the test case and not waste time polling
115     # for dhcp addresses
116     @{NET1_VM_IPS}    ${NET1_DHCP_IP} =    Get VM IPs    @{NET_1_VM_INSTANCES}
117     @{NET2_VM_IPS}    ${NET2_DHCP_IP} =    Get VM IPs    @{NET_2_VM_INSTANCES}
118     Set Suite Variable    @{NET1_VM_IPS}
119     Set Suite Variable    @{NET2_VM_IPS}
120     Should Not Contain    ${NET1_VM_IPS}    None
121     Should Not Contain    ${NET2_VM_IPS}    None
122     Should Not Contain    ${NET1_DHCP_IP}    None
123     Should Not Contain    ${NET2_DHCP_IP}    None
124     [Teardown]    Run Keywords    Show Debugs    @{NET_1_VM_INSTANCES}    @{NET_2_VM_INSTANCES}
125     ...    AND    Get Test Teardown Debugs
126
127 Bring Up ODL2
128     [Documentation]    Bring up ODL2 again
129     ClusterManagement.Start Single Member    2
130
131 Ping Vm Instance1 In l2_net_1
132     [Documentation]    Check reachability of vm instances by pinging to them.
133     Get OvsDebugInfo
134     OpenStackOperations.Ping Vm From DHCP Namespace    l2_net_1    @{NET_1_VM_IPS}[0]
135
136 Ping Vm Instance2 In l2_net_1
137     [Documentation]    Check reachability of vm instances by pinging to them.
138     Get OvsDebugInfo
139     OpenStackOperations.Ping Vm From DHCP Namespace    l2_net_1    @{NET_1_VM_IPS}[1]
140
141 Ping Vm Instance3 In l2_net_1
142     [Documentation]    Check reachability of vm instances by pinging to them.
143     Get OvsDebugInfo
144     OpenStackOperations.Ping Vm From DHCP Namespace    l2_net_1    @{NET_1_VM_IPS}[2]
145
146 Ping Vm Instance1 In l2_net_2
147     [Documentation]    Check reachability of vm instances by pinging to them.
148     Get OvsDebugInfo
149     OpenStackOperations.Ping Vm From DHCP Namespace    l2_net_2    @{NET_2_VM_IPS}[0]
150
151 Ping Vm Instance2 In l2_net_2
152     [Documentation]    Check reachability of vm instances by pinging to them.
153     Get OvsDebugInfo
154     OpenStackOperations.Ping Vm From DHCP Namespace    l2_net_2    @{NET_2_VM_IPS}[1]
155
156 Ping Vm Instance3 In l2_net_2
157     [Documentation]    Check reachability of vm instances by pinging to them.
158     Get OvsDebugInfo
159     OpenStackOperations.Ping Vm From DHCP Namespace    l2_net_2    @{NET_2_VM_IPS}[2]
160
161 Take Down ODL3
162     [Documentation]    Kill the karaf in Third Controller
163     ClusterManagement.Kill Single Member    3
164
165 Connectivity Tests From Vm Instance1 In l2_net_1
166     [Documentation]    Logging to the vm instance using generated key pair.
167     OpenStackOperations.Test Operations From Vm Instance    l2_net_1    @{NET_1_VM_IPS}[0]    ${NET_1_VM_IPS}
168
169 Connectivity Tests From Vm Instance2 In l2_net_1
170     [Documentation]    Logging to the vm instance using generated key pair.
171     OpenStackOperations.Test Operations From Vm Instance    l2_net_1    @{NET_1_VM_IPS}[1]    ${NET_1_VM_IPS}
172
173 Connectivity Tests From Vm Instance3 In l2_net_1
174     [Documentation]    Logging to the vm instance using generated key pair.
175     OpenStackOperations.Test Operations From Vm Instance    l2_net_1    @{NET_1_VM_IPS}[2]    ${NET_1_VM_IPS}
176
177 Bring Up ODL3
178     [Documentation]    Bring up ODL3 again
179     ClusterManagement.Start Single Member    3
180
181 Take Down ODL1 and ODL2
182     [Documentation]    Kill the karaf in First and Second Controller
183     ClusterManagement.Kill Members From List Or All    ${cluster_down_list}
184
185 Connectivity Tests From Vm Instance1 In l2_net_2
186     [Documentation]    Logging to the vm instance using generated key pair.
187     OpenStackOperations.Test Operations From Vm Instance    l2_net_2    @{NET_2_VM_IPS}[0]    ${NET_2_VM_IPS}
188
189 Connectivity Tests From Vm Instance2 In l2_net_2
190     [Documentation]    Logging to the vm instance using generated key pair.
191     OpenStackOperations.Test Operations From Vm Instance    l2_net_2    @{NET_2_VM_IPS}[1]    ${NET_2_VM_IPS}
192
193 Connectivity Tests From Vm Instance3 In l2_net_2
194     [Documentation]    Logging to the vm instance using generated key pair.
195     OpenStackOperations.Test Operations From Vm Instance    l2_net_2    @{NET_2_VM_IPS}[2]    ${NET_2_VM_IPS}
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_net_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}
231
232 Delete Security Group
233     [Documentation]    Delete security groups with neutron request
234     Delete SecurityGroup    ${SECURITY_GROUP}
235
236 Verify Flows Cleanup
237     [Documentation]    Verify that flows have been cleaned up properly after removing all neutron configurations
238     Verify Flows Are Cleaned Up On All OpenStack Nodes