X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Fsuites%2Fopenstack%2Fconnectivity%2F03_external_network_tests.robot;h=018aabba2308d88997e579f6adc6c14a31845f30;hb=bfd68bfbb7801e923c05273146c2331610091cbb;hp=c40706be91c9c4c0c87f389e67722190b063f74f;hpb=55275d91f8303dceb4203ac4b73e5540765cc334;p=integration%2Ftest.git diff --git a/csit/suites/openstack/connectivity/03_external_network_tests.robot b/csit/suites/openstack/connectivity/03_external_network_tests.robot index c40706be91..018aabba23 100644 --- a/csit/suites/openstack/connectivity/03_external_network_tests.robot +++ b/csit/suites/openstack/connectivity/03_external_network_tests.robot @@ -9,19 +9,24 @@ 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 *** Variables *** +${SECURITY_GROUP} sg-connectivity @{NETWORKS_NAME} l3_net @{SUBNETS_NAME} l3_subnet @{VM_INSTANCES_FLOATING} VmInstanceFloating1 VmInstanceFloating2 @{VM_INSTANCES_SNAT} VmInstanceSnat3 VmInstanceSnat4 @{SUBNETS_RANGE} 90.0.0.0/24 +# Parameter values below are based on releng/builder - changing them requires updates in releng/builder as well ${external_gateway} 10.10.10.250 +${external_pnf} 10.10.10.253 ${external_subnet} 10.10.10.0/24 -${external_physical_network} physnet1 +${external_subnet_allocation_pool} start=10.10.10.2,end=10.10.10.249 +${external_internet_addr} 10.9.9.9 ${external_net_name} external-net ${external_subnet_name} external-subnet @@ -39,40 +44,31 @@ Create Subnet For Private Network [Documentation] Create Sub Nets for the Networks with neutron request. OpenStackOperations.Create SubNet @{NETWORKS_NAME}[0] @{SUBNETS_NAME}[0] @{SUBNETS_RANGE}[0] +Add Ssh Allow Rule + [Documentation] Allow all TCP/UDP/ICMP packets for this suite + OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} + Create Vm Instances [Documentation] Create VM instances using flavor and image names for a network. - OpenStackOperations.Create Vm Instances @{NETWORKS_NAME}[0] ${VM_INSTANCES_FLOATING} sg=csit - OpenStackOperations.Create Vm Instances @{NETWORKS_NAME}[0] ${VM_INSTANCES_SNAT} sg=csit + OpenStackOperations.Create Vm Instances @{NETWORKS_NAME}[0] ${VM_INSTANCES_FLOATING} sg=${SECURITY_GROUP} + OpenStackOperations.Create Vm Instances @{NETWORKS_NAME}[0] ${VM_INSTANCES_SNAT} sg=${SECURITY_GROUP} Check Vm Instances Have Ip Address - [Documentation] Test case to verify that all created VMs are ready and have received their ip addresses. - ... We are polling first and longest on the last VM created assuming that if it's received it's address - ... already the other instances should have theirs already or at least shortly thereafter. - # first, ensure all VMs are in ACTIVE state. if not, we can just fail the test case and not waste time polling - # for dhcp addresses - : FOR ${vm} IN @{VM_INSTANCES_FLOATING} @{VM_INSTANCES_SNAT} - \ Wait Until Keyword Succeeds 15s 5s Verify VM Is ACTIVE ${vm} - ${FLOATING_VM_COUNT} Get Length ${VM_INSTANCES_FLOATING} - ${SNAT_VM_COUNT} Get Length ${VM_INSTANCES_SNAT} - ${LOOP_COUNT} Evaluate ${FLOATING_VM_COUNT}+${SNAT_VM_COUNT} - : FOR ${index} IN RANGE 1 ${LOOP_COUNT} - \ ${FLOATING_VM_IPS} ${FLOATING_DHCP_IP} Wait Until Keyword Succeeds 180s 10s Verify VMs Received DHCP Lease - \ ... @{VM_INSTANCES_FLOATING} - \ ${SNAT_VM_IPS} ${SNAT_DHCP_IP} Wait Until Keyword Succeeds 180s 10s Verify VMs Received DHCP Lease - \ ... @{VM_INSTANCES_SNAT} - \ ${FLOATING_VM_LIST_LENGTH}= Get Length ${FLOATING_VM_IPS} - \ ${SNAT_VM_LIST_LENGTH}= Get Length ${SNAT_VM_IPS} - \ Exit For Loop If ${FLOATING_VM_LIST_LENGTH}==${FLOATING_VM_COUNT} and ${SNAT_VM_LIST_LENGTH}==${SNAT_VM_COUNT} - Append To List ${FLOATING_VM_IPS} ${FLOATING_DHCP_IP} - Set Suite Variable ${FLOATING_VM_IPS} - Append To List ${SNAT_VM_IPS} ${SNAT_DHCP_IP} - Set Suite Variable ${SNAT_VM_IPS} - [Teardown] Run Keywords Show Debugs ${VM_INSTANCES_FLOATING} ${VM_INSTANCES_SNAT} + @{FLOATING_VM_IPS} ${FLOATING_DHCP_IP} = Get VM IPs @{VM_INSTANCES_FLOATING} + @{SNAT_VM_IPS} ${SNAT_DHCP_IP} = Get VM IPs @{VM_INSTANCES_SNAT} + Set Suite Variable @{FLOATING_VM_IPS} + Set Suite Variable @{SNAT_VM_IPS} + Should Not Contain ${FLOATING_VM_IPS} None + Should Not Contain ${SNAT_VM_IPS} None + Should Not Contain ${FLOATING_DHCP_IP} None + Should Not Contain ${SNAT_DHCP_IP} None + [Teardown] Run Keywords Show Debugs @{VM_INSTANCES_FLOATING} @{VM_INSTANCES_SNAT} ... AND Get Test Teardown Debugs Create External Network And Subnet - Create Network ${external_net_name} --router:external --provider:network_type=flat --provider:physical_network=${external_physical_network} - Create Subnet ${external_net_name} ${external_subnet_name} ${external_subnet} --gateway ${external_gateway} + Create Network ${external_net_name} --provider-network-type flat --provider-physical-network ${PUBLIC_PHYSICAL_NETWORK} + Update Network ${external_net_name} --external + Create Subnet ${external_net_name} ${external_subnet_name} ${external_subnet} --gateway ${external_gateway} --allocation-pool ${external_subnet_allocation_pool} Create Router [Documentation] Create Router and Add Interface to the subnets. @@ -97,23 +93,30 @@ Create And Associate Floating IPs for VMs [Documentation] Create and associate a floating IP for the VM ${VM_FLOATING_IPS} OpenStackOperations.Create And Associate Floating IPs ${external_net_name} @{VM_INSTANCES_FLOATING} Set Suite Variable ${VM_FLOATING_IPS} - [Teardown] Run Keywords Show Debugs ${VM_INSTANCES_FLOATING} + [Teardown] Run Keywords Show Debugs @{VM_INSTANCES_FLOATING} ... AND Get Test Teardown Debugs Ping External Gateway From Control Node [Documentation] Check reachability of external gateway by pinging it from the control node. - OpenStackOperations.Ping Vm From Control Node ${external_gateway} + OpenStackOperations.Ping Vm From Control Node ${external_gateway} additional_args=-I ${external_internet_addr} Ping Vm Instance1 Floating IP From Control Node [Documentation] Check reachability of VM instance through floating IP by pinging them. - OpenStackOperations.Ping Vm From Control Node @{VM_FLOATING_IPS}[0] + OpenStackOperations.Ping Vm From Control Node @{VM_FLOATING_IPS}[0] additional_args=-I ${external_internet_addr} Ping Vm Instance2 Floating IP From Control Node [Documentation] Check reachability of VM instance through floating IP by pinging them. - OpenStackOperations.Ping Vm From Control Node @{VM_FLOATING_IPS}[1] + OpenStackOperations.Ping Vm From Control Node @{VM_FLOATING_IPS}[1] additional_args=-I ${external_internet_addr} + +Ping Vm Instance2 Floating IP From Vm Instance1 With Floating IP (Hairpinning) + [Documentation] Check reachability of VM instance floating IP from another VM instance with FIP (with ttl=1 to make sure no router hops) + ${dst_ip}= Create List @{VM_FLOATING_IPS}[1] + OpenStackOperations.Test Operations From Vm Instance @{NETWORKS_NAME}[0] @{FLOATING_VM_IPS}[0] ${dst_ip} ttl=1 -Prepare SNAT - Install Netcat On Controller - Install Netcat On Controller +Ping External Network PNF from Vm Instance 1 + [Documentation] Check reachability of External Network PNF from VM instance (with ttl=1 to make sure no router hops) + ${dst_ip}= Create List ${external_pnf} + OpenStackOperations.Test Operations From Vm Instance @{NETWORKS_NAME}[0] @{FLOATING_VM_IPS}[0] ${dst_ip} ttl=1 SNAT - TCP connection to External Gateway From SNAT VM Instance1 [Documentation] Login to the VM instance and test TCP connection to the controller via SNAT @@ -162,3 +165,11 @@ Delete Networks : FOR ${NetworkElement} IN @{NETWORKS_NAME} \ OpenStackOperations.Delete Network ${NetworkElement} OpenStackOperations.Delete Network ${external_net_name} + +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 + Verify Flows Are Cleaned Up On All OpenStack Nodes