2 Documentation Test suite to verify packet flows between vm instances.
3 Suite Setup BuiltIn.Run Keywords SetupUtils.Setup_Utils_For_Setup_And_Teardown
4 ... AND DevstackUtils.Devstack Suite Setup Tests
5 Suite Teardown Close All Connections
6 Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
7 Test Teardown Get OvsDebugInfo
9 Library OperatingSystem
10 Library RequestsLibrary
11 Resource ../../../libraries/Utils.robot
12 Resource ../../../libraries/OpenStackOperations.robot
13 Resource ../../../libraries/DevstackUtils.robot
14 Resource ../../../libraries/SetupUtils.robot
17 @{NETWORKS_NAME} l2_network_1 l2_network_2
18 @{SUBNETS_NAME} l2_subnet_1 l2_subnet_2
19 @{NET_1_VM_INSTANCES} MyFirstInstance_1 MySecondInstance_1 MyThirdInstance_1
20 @{NET_2_VM_INSTANCES} MyFirstInstance_2 MySecondInstance_2 MyThirdInstance_2
21 @{SUBNETS_RANGE} 30.0.0.0/24 40.0.0.0/24
25 [Documentation] Create Network with neutron request.
26 : FOR ${NetworkElement} IN @{NETWORKS_NAME}
27 \ Create Network ${NetworkElement}
29 Create Subnets For l2_network_1
30 [Documentation] Create Sub Nets for the Networks with neutron request.
31 Create SubNet l2_network_1 l2_subnet_1 @{SUBNETS_RANGE}[0]
33 Create Subnets For l2_network_2
34 [Documentation] Create Sub Nets for the Networks with neutron request.
35 Create SubNet l2_network_2 l2_subnet_2 @{SUBNETS_RANGE}[1]
38 [Documentation] Allow all TCP/UDP/ICMP packets for this suite
39 Neutron Security Group Create csit
40 Neutron Security Group Rule Create csit direction=ingress port_range_max=65535 port_range_min=1 protocol=tcp remote_ip_prefix=0.0.0.0/0
41 Neutron Security Group Rule Create csit direction=egress port_range_max=65535 port_range_min=1 protocol=tcp remote_ip_prefix=0.0.0.0/0
42 Neutron Security Group Rule Create csit direction=ingress protocol=icmp remote_ip_prefix=0.0.0.0/0
43 Neutron Security Group Rule Create csit direction=egress protocol=icmp remote_ip_prefix=0.0.0.0/0
44 Neutron Security Group Rule Create csit direction=ingress port_range_max=65535 port_range_min=1 protocol=udp remote_ip_prefix=0.0.0.0/0
45 Neutron Security Group Rule Create csit direction=egress port_range_max=65535 port_range_min=1 protocol=udp remote_ip_prefix=0.0.0.0/0
47 Create Vm Instances For l2_network_1
48 [Documentation] Create Four Vm instances using flavor and image names for a network.
49 Create Vm Instances l2_network_1 ${NET_1_VM_INSTANCES} sg=csit
51 Create Vm Instances For l2_network_2
52 [Documentation] Create Four Vm instances using flavor and image names for a network.
53 Create Vm Instances l2_network_2 ${NET_2_VM_INSTANCES} sg=csit
55 Check Vm Instances Have Ip Address
56 [Documentation] Test case to verify that all created VMs are ready and have received their ip addresses.
57 ... We are polling first and longest on the last VM created assuming that if it's received it's address
58 ... already the other instances should have theirs already or at least shortly thereafter.
59 # first, ensure all VMs are in ACTIVE state. if not, we can just fail the test case and not waste time polling
61 : FOR ${vm} IN @{NET_1_VM_INSTANCES} @{NET_2_VM_INSTANCES}
62 \ Wait Until Keyword Succeeds 15s 5s Verify VM Is ACTIVE ${vm}
63 ${NET1_VM_IPS} ${NET1_DHCP_IP} Wait Until Keyword Succeeds 180s 10s Verify VMs Received DHCP Lease @{NET_1_VM_INSTANCES}
64 ${NET2_VM_IPS} ${NET2_DHCP_IP} Wait Until Keyword Succeeds 180s 10s Verify VMs Received DHCP Lease @{NET_2_VM_INSTANCES}
65 Append To List ${NET1_VM_IPS} ${NET1_DHCP_IP}
66 Set Suite Variable ${NET1_VM_IPS}
67 Append To List ${NET2_VM_IPS} ${NET2_DHCP_IP}
68 Set Suite Variable ${NET2_VM_IPS}
69 [Teardown] Run Keywords Show Debugs ${NET_1_VM_INSTANCES}
70 ... AND Show Debugs ${NET_2_VM_INSTANCES}
71 ... AND Get OvsDebugInfo
73 Ping Vm Instance1 In l2_network_1
74 [Documentation] Check reachability of vm instances by pinging to them.
75 Ping Vm From DHCP Namespace l2_network_1 @{NET1_VM_IPS}[0]
77 Ping Vm Instance2 In l2_network_1
78 [Documentation] Check reachability of vm instances by pinging to them.
79 Ping Vm From DHCP Namespace l2_network_1 @{NET1_VM_IPS}[1]
81 Ping Vm Instance3 In l2_network_1
82 [Documentation] Check reachability of vm instances by pinging to them.
83 Ping Vm From DHCP Namespace l2_network_1 @{NET1_VM_IPS}[2]
85 Ping Vm Instance1 In l2_network_2
86 [Documentation] Check reachability of vm instances by pinging to them.
87 Ping Vm From DHCP Namespace l2_network_2 @{NET2_VM_IPS}[0]
89 Ping Vm Instance2 In l2_network_2
90 [Documentation] Check reachability of vm instances by pinging to them.
91 Ping Vm From DHCP Namespace l2_network_2 @{NET2_VM_IPS}[1]
93 Ping Vm Instance3 In l2_network_2
94 [Documentation] Check reachability of vm instances by pinging to them.
95 Ping Vm From DHCP Namespace l2_network_2 @{NET2_VM_IPS}[2]
97 Connectivity Tests From Vm Instance1 In l2_network_1
98 [Documentation] Login to the vm instance and test some operations
99 Test Operations From Vm Instance l2_network_1 @{NET1_VM_IPS}[0] ${NET1_VM_IPS}
101 Connectivity Tests From Vm Instance2 In l2_network_1
102 [Documentation] Login to the vm instance and test operations
103 Test Operations From Vm Instance l2_network_1 @{NET1_VM_IPS}[1] ${NET1_VM_IPS}
105 Connectivity Tests From Vm Instance3 In l2_network_1
106 [Documentation] Login to the vm instance and test operations
107 Test Operations From Vm Instance l2_network_1 @{NET1_VM_IPS}[2] ${NET1_VM_IPS}
109 Connectivity Tests From Vm Instance1 In l2_network_2
110 [Documentation] Login to the vm instance and test operations
111 Test Operations From Vm Instance l2_network_2 @{NET2_VM_IPS}[0] ${NET2_VM_IPS}
113 Connectivity Tests From Vm Instance2 In l2_network_2
114 [Documentation] Logging to the vm instance using generated key pair.
115 Test Operations From Vm Instance l2_network_2 @{NET2_VM_IPS}[1] ${NET2_VM_IPS}
117 Connectivity Tests From Vm Instance3 In l2_network_2
118 [Documentation] Login to the vm instance using generated key pair.
119 Test Operations From Vm Instance l2_network_2 @{NET2_VM_IPS}[2] ${NET2_VM_IPS}
122 [Documentation] Delete Vm instances using instance names.
123 Delete Vm Instance MyFirstInstance_1
125 No Ping For Deleted Vm
126 [Documentation] Check non reachability of deleted vm instances by pinging to them.
127 ${output}= Ping From DHCP Should Not Succeed l2_network_1 @{NET_1_VM_IPS}[0]
129 Delete Vm Instances In l2_network_1
130 [Documentation] Delete Vm instances using instance names in l2_network_1.
131 : FOR ${VmElement} IN @{NET_1_VM_INSTANCES}
132 \ Delete Vm Instance ${VmElement}
134 Delete Vm Instances In l2_network_2
135 [Documentation] Delete Vm instances using instance names in l2_network_2.
136 : FOR ${VmElement} IN @{NET_2_VM_INSTANCES}
137 \ Delete Vm Instance ${VmElement}
138 [Teardown] Run Keywords Show Debugs ${NET_1_VM_INSTANCES}
139 ... AND Show Debugs ${NET_2_VM_INSTANCES}
140 ... AND Get OvsDebugInfo
142 Delete Sub Networks In l2_network_1
143 [Documentation] Delete Sub Nets for the Networks with neutron request.
144 Delete SubNet l2_subnet_1
146 Delete Sub Networks In l2_network_2
147 [Documentation] Delete Sub Nets for the Networks with neutron request.
148 Delete SubNet l2_subnet_2
151 [Documentation] Delete Networks with neutron request.
152 : FOR ${NetworkElement} IN @{NETWORKS_NAME}
153 \ Delete Network ${NetworkElement}