2 Documentation Test suite to check connectivity in L3 using routers.
3 Suite Setup BuiltIn.Run Keywords SetupUtils.Setup_Utils_For_Setup_And_Teardown
4 ... AND DevstackUtils.Devstack Suite Setup
5 Suite Teardown Close All Connections
6 Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
7 Test Teardown Get Test Teardown Debugs
9 Library OperatingSystem
10 Library RequestsLibrary
11 Resource ../../../libraries/DevstackUtils.robot
12 Resource ../../../libraries/OpenStackOperations.robot
13 Resource ../../../libraries/SetupUtils.robot
14 Resource ../../../libraries/Utils.robot
17 @{NETWORKS_NAME} network_1 network_2
18 @{SUBNETS_NAME} subnet_1 subnet_2
19 @{NET_1_VM_INSTANCES} l3_instance_net_1_1 l3_instance_net_1_2 l3_instance_net_1_3
20 @{NET_2_VM_INSTANCES} l3_instance_net_2_1 l3_instance_net_2_2 l3_instance_net_2_3
21 @{SUBNETS_RANGE} 50.0.0.0/24 60.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 network_1
30 [Documentation] Create Sub Nets for the Networks with neutron request.
31 Create SubNet network_1 subnet_1 @{SUBNETS_RANGE}[0]
33 Create Subnets For network_2
34 [Documentation] Create Sub Nets for the Networks with neutron request.
35 Create SubNet network_2 subnet_2 @{SUBNETS_RANGE}[1]
37 Create Vm Instances For network_1
38 [Documentation] Create Four Vm instances using flavor and image names for a network.
39 Create Vm Instances network_1 ${NET_1_VM_INSTANCES} sg=csit
41 Create Vm Instances For network_2
42 [Documentation] Create Four Vm instances using flavor and image names for a network.
43 Create Vm Instances network_2 ${NET_2_VM_INSTANCES} sg=csit
45 Check Vm Instances Have Ip Address
46 [Documentation] Test case to verify that all created VMs are ready and have received their ip addresses.
47 ... We are polling first and longest on the last VM created assuming that if it's received it's address
48 ... already the other instances should have theirs already or at least shortly thereafter.
49 # first, ensure all VMs are in ACTIVE state. if not, we can just fail the test case and not waste time polling
51 : FOR ${vm} IN @{NET_1_VM_INSTANCES} @{NET_2_VM_INSTANCES}
52 \ Wait Until Keyword Succeeds 15s 5s Verify VM Is ACTIVE ${vm}
53 ${NET1_VM_COUNT} Get Length ${NET_1_VM_INSTANCES}
54 ${NET2_VM_COUNT} Get Length ${NET_2_VM_INSTANCES}
55 ${LOOP_COUNT} Evaluate ${NET1_VM_COUNT}+${NET2_VM_COUNT}
56 : FOR ${index} IN RANGE 1 ${LOOP_COUNT}
57 \ ${NET1_L3_VM_IPS} ${NET1_DHCP_IP} Verify VMs Received DHCP Lease @{NET_1_VM_INSTANCES}
58 \ ${NET2_L3_VM_IPS} ${NET2_DHCP_IP} Verify VMs Received DHCP Lease @{NET_2_VM_INSTANCES}
59 \ ${NET1_VM_LIST_LENGTH}= Get Length ${NET1_L3_VM_IPS}
60 \ ${NET2_VM_LIST_LENGTH}= Get Length ${NET2_L3_VM_IPS}
61 \ Exit For Loop If ${NET1_VM_LIST_LENGTH}==${NET1_VM_COUNT} and ${NET2_VM_LIST_LENGTH}==${NET2_VM_COUNT}
62 Set Suite Variable ${NET1_L3_VM_IPS}
63 Set Suite Variable ${NET1_DHCP_IP}
64 Set Suite Variable ${NET2_L3_VM_IPS}
65 Set Suite Variable ${NET2_DHCP_IP}
66 [Teardown] Run Keywords Show Debugs @{NET_1_VM_INSTANCES} @{NET_2_VM_INSTANCES}
67 ... AND Get Test Teardown Debugs
70 [Documentation] Create Router
71 Create Router router_1
73 Add Interfaces To Router
74 [Documentation] Add Interfaces
75 : FOR ${interface} IN @{SUBNETS_NAME}
76 \ Add Router Interface router_1 ${interface}
78 Ping Vm Instance1 In network_2 From network_1
79 [Documentation] Check reachability of vm instances by pinging to them after creating routers.
80 Ping Vm From DHCP Namespace network_1 @{NET2_L3_VM_IPS}[0]
82 Ping Vm Instance2 In network_2 From network_1
83 [Documentation] Check reachability of vm instances by pinging to them after creating routers.
84 Ping Vm From DHCP Namespace network_1 @{NET2_L3_VM_IPS}[1]
86 Ping Vm Instance3 In network_2 From network_1
87 [Documentation] Check reachability of vm instances by pinging to them after creating routers.
88 Ping Vm From DHCP Namespace network_1 @{NET2_L3_VM_IPS}[2]
90 Ping Vm Instance1 In network_1 From network_2
91 [Documentation] Check reachability of vm instances by pinging to them after creating routers.
92 Ping Vm From DHCP Namespace network_2 @{NET1_L3_VM_IPS}[0]
94 Ping Vm Instance2 In network_1 From network_2
95 [Documentation] Check reachability of vm instances by pinging to them after creating routers.
96 Ping Vm From DHCP Namespace network_2 @{NET1_L3_VM_IPS}[1]
98 Ping Vm Instance3 In network_1 From network_2
99 [Documentation] Check reachability of vm instances by pinging to them after creating routers.
100 Ping Vm From DHCP Namespace network_2 @{NET1_L3_VM_IPS}[2]
102 Connectivity Tests From Vm Instance1 In network_1
103 [Documentation] Login to the VM instance and test operations
104 ${dst_list}= Create List @{NET1_L3_VM_IPS} @{NET2_L3_VM_IPS}
106 Test Operations From Vm Instance network_1 @{NET1_L3_VM_IPS}[0] ${dst_list}
108 Connectivity Tests From Vm Instance2 In network_1
109 [Documentation] Login to the vm instance and test operations
110 ${dst_list}= Create List @{NET1_L3_VM_IPS} @{NET2_L3_VM_IPS}
112 Test Operations From Vm Instance network_1 @{NET1_L3_VM_IPS}[1] ${dst_list}
114 Connectivity Tests From Vm Instance3 In network_1
115 [Documentation] Login to the vm instance and test operations
116 ${dst_list}= Create List @{NET1_L3_VM_IPS} @{NET2_L3_VM_IPS}
118 Test Operations From Vm Instance network_1 @{NET1_L3_VM_IPS}[2] ${dst_list}
120 Connectivity Tests From Vm Instance1 In network_2
121 [Documentation] Login to the vm instance and test operations
122 ${dst_list}= Create List @{NET1_L3_VM_IPS} @{NET2_L3_VM_IPS}
124 Test Operations From Vm Instance network_2 @{NET2_L3_VM_IPS}[0] ${dst_list}
126 Connectivity Tests From Vm Instance2 In network_2
127 [Documentation] Logging to the vm instance using generated key pair.
128 ${dst_list}= Create List @{NET1_L3_VM_IPS} @{NET2_L3_VM_IPS}
130 Test Operations From Vm Instance network_2 @{NET2_L3_VM_IPS}[1] ${dst_list}
132 Connectivity Tests From Vm Instance3 In network_2
133 [Documentation] Logging to the vm instance using generated key pair.
134 ${dst_list}= Create List @{NET1_L3_VM_IPS} @{NET2_L3_VM_IPS}
136 Test Operations From Vm Instance network_2 @{NET2_L3_VM_IPS}[2] ${dst_list}
138 Delete Vm Instances In network_1
139 [Documentation] Delete Vm instances using instance names in network_1.
140 : FOR ${VmElement} IN @{NET_1_VM_INSTANCES}
141 \ Delete Vm Instance ${VmElement}
143 Delete Vm Instances In network_2
144 [Documentation] Delete Vm instances using instance names in network_2.
145 : FOR ${VmElement} IN @{NET_2_VM_INSTANCES}
146 \ Delete Vm Instance ${VmElement}
147 [Teardown] Run Keywords Show Debugs @{NET_1_VM_INSTANCES} @{NET_2_VM_INSTANCES}
148 ... AND Get Test Teardown Debugs
150 Delete Router Interfaces
151 [Documentation] Remove Interface to the subnets.
152 : FOR ${interface} IN @{SUBNETS_NAME}
153 \ Remove Interface router_1 ${interface}
156 [Documentation] Delete Router and Interface to the subnets.
157 Delete Router router_1
159 Delete Sub Networks In network_1
160 [Documentation] Delete Sub Nets for the Networks with neutron request.
161 Delete SubNet subnet_1
163 Delete Sub Networks In network_2
164 [Documentation] Delete Sub Nets for the Networks with neutron request.
165 Delete SubNet subnet_2
168 [Documentation] Delete Networks with neutron request.
169 : FOR ${NetworkElement} IN @{NETWORKS_NAME}
170 \ Delete Network ${NetworkElement}