X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Fsuites%2Fopenstack%2Fconnectivity%2Fl2.robot;fp=csit%2Fsuites%2Fopenstack%2Fconnectivity%2Fl2.robot;h=8ae59d0f6951185c4a358577f90d554c8f2e5487;hb=d7b7c20493d2f213c5934d8fe9e7c8b55183d91c;hp=0000000000000000000000000000000000000000;hpb=4bc6d322cadd82c7e9ca56824b3d2c267c128cb4;p=integration%2Ftest.git diff --git a/csit/suites/openstack/connectivity/l2.robot b/csit/suites/openstack/connectivity/l2.robot new file mode 100644 index 0000000000..8ae59d0f69 --- /dev/null +++ b/csit/suites/openstack/connectivity/l2.robot @@ -0,0 +1,165 @@ +*** Settings *** +Documentation Test suite to verify packet flows between vm instances. +Suite Setup BuiltIn.Run Keywords SetupUtils.Setup_Utils_For_Setup_And_Teardown +... AND DevstackUtils.Devstack Suite Setup +Suite Teardown Close All Connections +Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing +Test Teardown Get Test Teardown Debugs +Library SSHLibrary +Library OperatingSystem +Library RequestsLibrary +Resource ../../../libraries/DevstackUtils.robot +Resource ../../../libraries/DataModels.robot +Resource ../../../libraries/OpenStackOperations.robot +Resource ../../../libraries/SetupUtils.robot +Resource ../../../libraries/Utils.robot +Resource ../../../libraries/KarafKeywords.robot +Resource ../../../variables/netvirt/Variables.robot + +*** Variables *** +${SECURITY_GROUP} sg-connectivity +@{NETWORKS_NAME} l2_network_1 l2_network_2 +@{SUBNETS_NAME} l2_subnet_1 l2_subnet_2 +@{NET_1_VM_GRP_NAME} NET1-VM +@{NET_2_VM_GRP_NAME} NET2-VM +@{NET_1_VM_INSTANCES} NET1-VM-1 NET1-VM-2 NET1-VM-3 +@{NET_2_VM_INSTANCES} NET2-VM-1 NET2-VM-2 NET2-VM-3 +@{SUBNETS_RANGE} 30.0.0.0/24 40.0.0.0/24 +${network1_vlan_id} 1235 + +*** Test Cases *** +Create VLAN Network (l2_network_1) + [Documentation] Create Network with neutron request. + # in the case that the controller under test is using legacy netvirt features, vlan segmentation is not supported, + # and we cannot create a vlan network. If those features are installed we will instead stick with vxlan. + : FOR ${feature_name} IN @{legacy_feature_list} + \ ${feature_check_status}= Run Keyword And Return Status Verify Feature Is Installed ${feature_name} + \ Exit For Loop If '${feature_check_status}' == 'True' + Run Keyword If '${feature_check_status}' == 'True' Create Network @{NETWORKS_NAME}[0] + ... ELSE Create Network @{NETWORKS_NAME}[0] --provider-network-type vlan --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} --provider-segment ${network1_vlan_id} + +Create VXLAN Network (l2_network_2) + [Documentation] Create Network with neutron request. + Create Network @{NETWORKS_NAME}[1] + +Create Subnets For l2_network_1 + [Documentation] Create Sub Nets for the Networks with neutron request. + Create SubNet @{NETWORKS_NAME}[0] @{SUBNETS_NAME}[0] @{SUBNETS_RANGE}[0] + +Create Subnets For l2_network_2 + [Documentation] Create Sub Nets for the Networks with neutron request. + Create SubNet @{NETWORKS_NAME}[1] @{SUBNETS_NAME}[1] @{SUBNETS_RANGE}[1] + +Add Ssh Allow Rule + [Documentation] Allow all TCP/UDP/ICMP packets for this suite + OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} + +Create Vm Instances For l2_network_1 + [Documentation] Create Four Vm instances using flavor and image names for a network. + Create Vm Instances l2_network_1 ${NET_1_VM_GRP_NAME} sg=${SECURITY_GROUP} min=3 max=3 + +Create Vm Instances For l2_network_2 + [Documentation] Create Four Vm instances using flavor and image names for a network. + Create Vm Instances l2_network_2 ${NET_2_VM_GRP_NAME} sg=${SECURITY_GROUP} min=3 max=3 + +Check Vm Instances Have Ip Address + @{NET1_VM_IPS} ${NET1_DHCP_IP} = Get VM IPs @{NET_1_VM_INSTANCES} + @{NET2_VM_IPS} ${NET2_DHCP_IP} = Get VM IPs @{NET_2_VM_INSTANCES} + Set Suite Variable @{NET1_VM_IPS} + Set Suite Variable @{NET2_VM_IPS} + Should Not Contain ${NET1_VM_IPS} None + Should Not Contain ${NET2_VM_IPS} None + Should Not Contain ${NET1_DHCP_IP} None + Should Not Contain ${NET2_DHCP_IP} None + [Teardown] Run Keywords Show Debugs @{NET_1_VM_INSTANCES} @{NET_2_VM_INSTANCES} + ... AND Get Test Teardown Debugs + +Ping Vm Instance1 In l2_network_1 + [Documentation] Check reachability of vm instances by pinging to them. + Ping Vm From DHCP Namespace l2_network_1 @{NET1_VM_IPS}[0] + +Ping Vm Instance2 In l2_network_1 + [Documentation] Check reachability of vm instances by pinging to them. + Ping Vm From DHCP Namespace l2_network_1 @{NET1_VM_IPS}[1] + +Ping Vm Instance3 In l2_network_1 + [Documentation] Check reachability of vm instances by pinging to them. + Ping Vm From DHCP Namespace l2_network_1 @{NET1_VM_IPS}[2] + +Ping Vm Instance1 In l2_network_2 + [Documentation] Check reachability of vm instances by pinging to them. + Ping Vm From DHCP Namespace l2_network_2 @{NET2_VM_IPS}[0] + +Ping Vm Instance2 In l2_network_2 + [Documentation] Check reachability of vm instances by pinging to them. + Ping Vm From DHCP Namespace l2_network_2 @{NET2_VM_IPS}[1] + +Ping Vm Instance3 In l2_network_2 + [Documentation] Check reachability of vm instances by pinging to them. + Ping Vm From DHCP Namespace l2_network_2 @{NET2_VM_IPS}[2] + +Connectivity Tests From Vm Instance1 In l2_network_1 + [Documentation] Login to the vm instance and test some operations + Test Operations From Vm Instance l2_network_1 @{NET1_VM_IPS}[0] ${NET1_VM_IPS} + +Connectivity Tests From Vm Instance2 In l2_network_1 + [Documentation] Login to the vm instance and test operations + Test Operations From Vm Instance l2_network_1 @{NET1_VM_IPS}[1] ${NET1_VM_IPS} + +Connectivity Tests From Vm Instance3 In l2_network_1 + [Documentation] Login to the vm instance and test operations + Test Operations From Vm Instance l2_network_1 @{NET1_VM_IPS}[2] ${NET1_VM_IPS} + +Connectivity Tests From Vm Instance1 In l2_network_2 + [Documentation] Login to the vm instance and test operations + Test Operations From Vm Instance l2_network_2 @{NET2_VM_IPS}[0] ${NET2_VM_IPS} + +Connectivity Tests From Vm Instance2 In l2_network_2 + [Documentation] Logging to the vm instance using generated key pair. + Test Operations From Vm Instance l2_network_2 @{NET2_VM_IPS}[1] ${NET2_VM_IPS} + +Connectivity Tests From Vm Instance3 In l2_network_2 + [Documentation] Login to the vm instance using generated key pair. + Test Operations From Vm Instance l2_network_2 @{NET2_VM_IPS}[2] ${NET2_VM_IPS} + +Delete A Vm Instance + [Documentation] Delete Vm instances using instance names. + Delete Vm Instance NET1-VM-1 + +No Ping For Deleted Vm + [Documentation] Check non reachability of deleted vm instances by pinging to them. + ${output}= Ping From DHCP Should Not Succeed l2_network_1 @{NET_1_VM_IPS}[0] + +Delete Vm Instances In l2_network_1 + [Documentation] Delete Vm instances using instance names in l2_network_1. + : FOR ${VmElement} IN @{NET_1_VM_INSTANCES} + \ Delete Vm Instance ${VmElement} + +Delete Vm Instances In l2_network_2 + [Documentation] Delete Vm instances using instance names in l2_network_2. + : FOR ${VmElement} IN @{NET_2_VM_INSTANCES} + \ Delete Vm Instance ${VmElement} + [Teardown] Run Keywords Show Debugs @{NET_1_VM_INSTANCES} @{NET_2_VM_INSTANCES} + ... AND Get Test Teardown Debugs + +Delete Sub Networks In l2_network_1 + [Documentation] Delete Sub Nets for the Networks with neutron request. + Delete SubNet l2_subnet_1 + +Delete Sub Networks In l2_network_2 + [Documentation] Delete Sub Nets for the Networks with neutron request. + Delete SubNet l2_subnet_2 + +Delete Networks + [Documentation] Delete Networks with neutron request. + : FOR ${NetworkElement} IN @{NETWORKS_NAME} + \ Delete Network ${NetworkElement} + +Delete Security Group + [Documentation] Delete security groups with neutron request + Delete SecurityGroup ${SECURITY_GROUP} + +Verify Flows Cleanup + [Documentation] Verify that flows have been cleaned up properly after removing all neutron configurations + ${feature_check_status}= Run Keyword And Return Status Verify Feature Is Installed odl-vtn-manager-neutron + Run Keyword If '${feature_check_status}' != 'True' Verify Flows Are Cleaned Up On All OpenStack Nodes