X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Fsuites%2Fnetvirt%2Fvpnservice%2Fvpn_basic.robot;fp=csit%2Fsuites%2Fnetvirt%2Fvpnservice%2Fvpn_basic.robot;h=0000000000000000000000000000000000000000;hb=3f2f2837fee8669538ebf36b8cc9eb0abdad8565;hp=02b08a2004a3f16b70c7b63f013c6652d90dec26;hpb=bf53c6c85bb53ee48269e4cd22453d3963aae90e;p=integration%2Ftest.git diff --git a/csit/suites/netvirt/vpnservice/vpn_basic.robot b/csit/suites/netvirt/vpnservice/vpn_basic.robot deleted file mode 100644 index 02b08a2004..0000000000 --- a/csit/suites/netvirt/vpnservice/vpn_basic.robot +++ /dev/null @@ -1,551 +0,0 @@ -*** Settings *** -Documentation Test suite to validate vpnservice functionality in an openstack integrated environment. -... The assumption of this suite is that the environment is already configured with the proper -... integration bridges and vxlan tunnels. - -Library OperatingSystem -Library RequestsLibrary -Resource ../../../libraries/CompareStream.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/OpenStackOperations.robot -Resource ../../../libraries/DevstackUtils.robot -Resource ../../../libraries/VpnOperations.robot -Resource ../../../libraries/OVSDB.robot -Resource ../../../libraries/SetupUtils.robot -Resource ../../../libraries/Tcpdump.robot -Resource ../../../variables/Variables.robot -Resource ../../../variables/netvirt/Variables.robot - -Suite Setup Suite Setup -Suite Teardown Suite Teardown -Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing -Test Teardown OpenStackOperations.Get Test Teardown Debugs - - -*** Variables *** -${SECURITY_GROUP} vpn_sg -@{NETWORKS} vpn_net_1 vpn_net_2 -@{SUBNETS} vpn_sub_1 vpn_sub_2 -@{SUBNET_CIDRS} 10.1.1.0/24 20.1.1.0/24 -@{PORTS} vpn_net_1_port_1 vpn_net_1_port_2 vpn_net_2_port_1 vpn_net_2_port_2 -@{NET_1_VMS} vpn_net_1_vm_1 vpn_net_1_vm_2 -@{NET_2_VMS} vpn_net_2_vm_1 vpn_net_2_vm_2 -${ROUTER} vpn_router -@{EXTRA_NW_IP} 71.1.1.2 72.1.1.2 -@{EXTRA_NW_SUBNET} 71.1.1.0/24 72.1.1.0/24 -${UPDATE_NETWORK} UpdateNetwork -${UPDATE_SUBNET} UpdateSubnet -${UPDATE_PORT} UpdatePort -@{VPN_INSTANCE_IDS} -... 4ae8cd92-48ca-49b5-94e1-b2921a261441 -... 4ae8cd92-48ca-49b5-94e1-b2921a261442 -... 4ae8cd92-48ca-49b5-94e1-b2921a261443 -@{VPN_NAMES} vpn_1 vpn_2 vpn_3 -@{RDS} ["2200:2"] ["2300:2"] ["2400:2"] -${PORT_NEW} vpn_net_1_port_new -${VM_NAME_NEW} vpn_net_1_vm_new -${INVALID_VPN_INSTANCE_ID} AAAAAAAAAA-4848-4949-9494-666666666666 - - -*** Test Cases *** -Check ELAN Datapath Traffic Within The Networks - [Documentation] Checks datapath within the same network with different vlans. - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[0] - ... ping -c 3 ${NET_1_VM_IPS}[1] - BuiltIn.Should Contain ${output} 64 bytes - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[1] - ... ${NET_2_VM_IPS}[0] - ... ping -c 3 ${NET_2_VM_IPS}[1] - BuiltIn.Should Contain ${output} 64 bytes - -Create Router - OpenStackOperations.Create Router ${ROUTER} - ${router_list} = BuiltIn.Create List ${ROUTER} - BuiltIn.Wait Until Keyword Succeeds - ... 3s - ... 1s - ... Utils.Check For Elements At URI - ... ${ROUTER_URL} - ... ${router_list} - -Add Interfaces To Router - FOR ${interface} IN @{SUBNETS} - OpenStackOperations.Add Router Interface ${ROUTER} ${interface} - END - ${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER} - ${GWMAC_ADDRS} ${GWIP_ADDRS} = VpnOperations.Get Gateway MAC And IP Address ${ROUTER} - BuiltIn.Set Suite Variable ${GWMAC_ADDRS} - BuiltIn.Set Suite Variable ${GWIP_ADDRS} - -Check L3_Datapath Traffic Across Networks With Router - @{tcpdump_conn_ids} = OpenStackOperations.Start Packet Capture On Nodes - ... tcpdump_vpn - ... ${EMPTY} - ... @{OS_ALL_IPS} - ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS} - BuiltIn.Wait Until Keyword Succeeds - ... 30s - ... 10s - ... Utils.Check For Elements At URI - ... ${FIB_ENTRY_URL} - ... ${vm_ips} - Verify Flows Are Present For L3VPN On All Compute Nodes ${vm_ips} - BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS} - Verify GWMAC Flow Entry On Flow Table On All Compute Nodes - ${dst_ip_list} = BuiltIn.Create List ${NET_1_VM_IPS}[1] @{NET_2_VM_IPS} - OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${dst_ip_list} - ${dst_ip_list} = BuiltIn.Create List ${NET_2_VM_IPS}[1] @{NET_1_VM_IPS} - OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ${dst_ip_list} - [Teardown] VpnOperations.Test Teardown With Tcpdump Stop ${tcpdump_conn_ids} - -Add Multiple Extra Routes And Check Datapath Before L3VPN Creation - ${CONFIG_EXTRA_ROUTE_IP1} = BuiltIn.Catenate sudo ifconfig eth0:1 ${EXTRA_NW_IP}[0] netmask 255.255.255.0 up - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[0] - ... ${CONFIG_EXTRA_ROUTE_IP1} - ${CONFIG_EXTRA_ROUTE_IP2} = BuiltIn.Catenate sudo ifconfig eth0:2 ${EXTRA_NW_IP}[1] netmask 255.255.255.0 up - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[0] - ... ${CONFIG_EXTRA_ROUTE_IP2} - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[0] - ... ifconfig - ${ext_rt1} = BuiltIn.Set Variable destination=${EXTRA_NW_SUBNET}[0],gateway=${NET_1_VM_IPS}[0] - ${ext_rt2} = BuiltIn.Set Variable destination=${EXTRA_NW_SUBNET}[1],gateway=${NET_1_VM_IPS}[0] - ${cmd} = BuiltIn.Catenate ${RT_OPTIONS} ${ext_rt1} ${RT_OPTIONS} ${ext_rt2} - OpenStackOperations.Update Router ${ROUTER} ${cmd} - OpenStackOperations.Show Router ${ROUTER} - ${vm_ips} = BuiltIn.Create List @{EXTRA_NW_SUBNET} - BuiltIn.Wait Until Keyword Succeeds - ... 30s - ... 10s - ... Utils.Check For Elements At URI - ... ${FIB_ENTRY_URL} - ... ${vm_ips} - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[1] - ... ping -c 3 ${EXTRA_NW_IP}[1] - BuiltIn.Should Contain ${output} 64 bytes - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[1] - ... ${NET_2_VM_IPS}[1] - ... ping -c 3 ${EXTRA_NW_IP}[1] - BuiltIn.Should Contain ${output} 64 bytes - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[1] - ... ping -c 3 ${EXTRA_NW_IP}[0] - BuiltIn.Should Contain ${output} 64 bytes - -Delete Extra Route - OpenStackOperations.Update Router ${ROUTER} ${RT_CLEAR} - OpenStackOperations.Show Router ${ROUTER} - -Delete And Recreate Extra Route - [Documentation] Recreate multiple extra route and check data path before L3VPN creation - ${CONFIG_EXTRA_ROUTE_IP1} = BuiltIn.Catenate sudo ifconfig eth0:1 ${EXTRA_NW_IP}[0] netmask 255.255.255.0 up - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[0] - ... ${CONFIG_EXTRA_ROUTE_IP1} - ${ext_rt1} = BuiltIn.Set Variable destination=${EXTRA_NW_SUBNET}[0],gateway=${NET_1_VM_IPS}[0] - ${cmd} = BuiltIn.Catenate ${RT_OPTIONS} ${ext_rt1} - OpenStackOperations.Update Router ${ROUTER} ${cmd} - OpenStackOperations.Show Router ${ROUTER} - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[1] - ... ping -c 3 ${EXTRA_NW_IP}[0] - BuiltIn.Should Contain ${output} 64 bytes - # clear off extra-routes before the next set of tests - [Teardown] BuiltIn.Run Keywords OpenStackOperations.Update Router ${ROUTER} ${RT_CLEAR} - ... AND OpenStackOperations.Show Router ${ROUTER} - ... AND OpenStackOperations.Get Test Teardown Debugs - -Create L3VPN - ${net_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0] - ${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id} - BuiltIn.Log ${RDS}[0] - VpnOperations.VPN Create L3VPN - ... vpnid=${VPN_INSTANCE_IDS}[0] - ... name=${VPN_NAMES}[0] - ... rd=${RDS}[0] - ... exportrt=${RDS}[0] - ... importrt=${RDS}[0] - ... tenantid=${tenant_id} - ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0] - BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_IDS}[0] - -Associate L3VPN To Routers - ${router_id} = OpenStackOperations.Get Router Id ${ROUTER} - VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_IDS}[0] - ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0] - BuiltIn.Should Contain ${resp} ${router_id} - -Verify L3VPN Datapath With Router Association - ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS} - CompareStream.Run_Keyword_If_Less_Than_Magnesium - ... BuiltIn.Wait Until Keyword Succeeds - ... 30s - ... 10s - ... Utils.Check For Elements At URI - ... ${VPN_IFACES_URL} - ... ${vm_ips} - CompareStream.Run_Keyword_If_At_Least_Magnesium - ... BuiltIn.Wait Until Keyword Succeeds - ... 30s - ... 10s - ... Utils.Check For Elements At URI - ... ${VPN_INST_IFACES_URL} - ... ${vm_ips} - ${RD} = Strip String ${RDS}[0] characters="[] - BuiltIn.Wait Until Keyword Succeeds - ... 60s - ... 15s - ... Utils.Check For Elements At URI - ... ${CONFIG_API}/odl-fib:fibEntries/vrfTables/${RD}/ - ... ${vm_ips} - Verify Flows Are Present For L3VPN On All Compute Nodes ${vm_ips} - BuiltIn.Wait Until Keyword Succeeds 30s 15s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS} - Verify GWMAC Flow Entry On Flow Table On All Compute Nodes - BuiltIn.Log Check datapath from network1 to network2 - ${dst_ip_list} = BuiltIn.Create List ${NET_1_VM_IPS}[1] @{NET_2_VM_IPS} - OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${dst_ip_list} - BuiltIn.Log Check datapath from network2 to network1 - ${dst_ip_list} = BuiltIn.Create List ${NET_2_VM_IPS}[1] @{NET_1_VM_IPS} - OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[1] ${NET_2_VM_IPS}[0] ${dst_ip_list} - -Delete Router Failure When Associated With L3VPN - ${router_id} = OpenStackOperations.Get Router Id ${ROUTER} - ${rc} ${output} = Run And Return Rc And Output openstack router delete ${ROUTER} - BuiltIn.Should Match Regexp ${output} Failed to delete router.*${ROUTER} - BuiltIn.Should Be True '${rc}' == '1' - ${router_output} = OpenStackOperations.List Routers - BuiltIn.Should Contain ${router_output} ${ROUTER} - @{router_list} = BuiltIn.Create List ${ROUTER} - BuiltIn.Wait Until Keyword Succeeds - ... 3s - ... 1s - ... Utils.Check For Elements At URI - ... ${ROUTER_URL} - ... ${router_list} - ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0] - BuiltIn.Should Contain ${resp} ${router_id} - Verify GWMAC Flow Entry On Flow Table On All Compute Nodes - -Verify Remove Interface From Router When Associated With L3VPN - OpenStackOperations.Remove Interface ${ROUTER} ${SUBNETS}[0] - OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${NET_1_VM_IPS} - OpenStackOperations.Test Operations From Vm Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[0] - ... ${NET_2_VM_IPS} - ... ping_should_succeed=False - -Verify L3VPN Datapath With Router Dissociation When Interfaces are Added To Router - OpenStackOperations.Add Router Interface ${ROUTER} ${SUBNETS}[0] - ${vm_ips} = BuiltIn.Create List @{NET_1_VM_IPS} @{NET_2_VM_IPS} - ${router_id} = OpenStackOperations.Get Router Id ${ROUTER} - VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=${VPN_INSTANCE_IDS}[0] - ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0] - BuiltIn.Should Not Contain ${resp} ${router_id} - Verify Flows Are Present For L3VPN On All Compute Nodes ${vm_ips} - ${dst_ip_list} = BuiltIn.Create List ${NET_1_VM_IPS}[1] @{NET_2_VM_IPS} - OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${dst_ip_list} - BuiltIn.Log Check datapath from network2 to network1 - ${dst_ip_list} = BuiltIn.Create List ${NET_2_VM_IPS}[1] @{NET_1_VM_IPS} - BuiltIn.Wait Until Keyword Succeeds - ... 60s - ... 10s - ... OpenStackOperations.Test Operations From Vm Instance - ... ${NETWORKS}[1] - ... ${NET_2_VM_IPS}[0] - ... ${dst_ip_list} - -Remove Router Interfaces And Check L3_Datapath Traffic Across Networks - ${router_id} = OpenStackOperations.Get Router Id ${ROUTER} - FOR ${INTERFACE} IN @{SUBNETS} - OpenStackOperations.Remove Interface ${ROUTER} ${INTERFACE} - OpenStackOperations.Test Operations From Vm Instance ${NETWORKS}[0] ${NET_1_VM_IPS}[0] ${NET_1_VM_IPS} - OpenStackOperations.Test Operations From Vm Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[0] - ... ${NET_2_VM_IPS} - ... ping_should_succeed=False - END - ${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER} - FOR ${INTERFACE} IN @{SUBNETS} - ${subnet_id} = OpenStackOperations.Get Subnet Id ${INTERFACE} - BuiltIn.Should Not Contain ${interface_output} ${subnet_id} - END - -Delete Router - Delete Router ${ROUTER} - ${router_output} = OpenStackOperations.List Routers - BuiltIn.Should Not Contain ${router_output} ${ROUTER} - @{router_list} = BuiltIn.Create List ${ROUTER} - BuiltIn.Wait Until Keyword Succeeds - ... 3s - ... 1s - ... Utils.Check For Elements Not At URI - ... ${ROUTER_URL} - ... ${router_list} - ... check_for_null=True - ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0] - BuiltIn.Should Not Contain ${resp} ${ROUTER} - Verify GWMAC Flow Entry Removed From Flow Table On All Compute Nodes - -Delete Router With NonExistentRouter Name - [Documentation] Delete router with nonExistentRouter name - ${result} = Process.Run Process openstack router delete nonExistentRouter shell=True - BuiltIn.Log ${result.stdout} - BuiltIn.Log ${result.stderr} - BuiltIn.Should Be True '${result.rc}' == '1' - BuiltIn.Should Match Regexp - ... ${result.stderr} - ... Failed to delete router with name or ID 'nonExistentRouter': No Router found for nonExistentRouter - -Associate Networks To L3VPN - [Documentation] Associates L3VPN to networks and verify - ${network1_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0] - ${network2_id} = OpenStackOperations.Get Net Id ${NETWORKS}[1] - VpnOperations.Associate L3VPN To Network networkid=${network1_id} vpnid=${VPN_INSTANCE_IDS}[0] - ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0] - BuiltIn.Should Contain ${resp} ${network1_id} - VpnOperations.Associate L3VPN To Network networkid=${network2_id} vpnid=${VPN_INSTANCE_IDS}[0] - ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0] - BuiltIn.Should Contain ${resp} ${network2_id} - -Check Datapath Traffic Across Networks With L3VPN - [Documentation] Datapath Test Across the networks with VPN. - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[0] - ... ping -c 20 ${NET_1_VM_IPS}[1] - BuiltIn.Should Contain ${output} 64 bytes - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[0] - ... ping -c 20 ${NET_2_VM_IPS}[1] - BuiltIn.Should Contain ${output} 64 bytes - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[0] - ... ping -c 20 ${NET_2_VM_IPS}[0] - BuiltIn.Should Contain ${output} 64 bytes - -Verification of route update after VM port removed and re added to VPN - [Documentation] Verify route update after VM port removed and re added to VPN - OpenStackOperations.Delete Port ${PORTS}[0] - ${net_list} = BuiltIn.Create List ${NET_1_VM_IPS[0]} - BuiltIn.Wait Until Keyword Succeeds - ... 30s - ... 10s - ... Utils.Check For Elements Not At URI - ... ${FIB_ENTRY_URL} - ... ${net_list} - OpenStackOperations.Delete Vm Instance ${NET_1_VMS}[0] - OpenStackOperations.Create Port ${NETWORKS}[0] ${PORTS}[0] sg=${SECURITY_GROUP} - BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${PORT_URL} ${PORTS} - OpenStackOperations.Create Vm Instance With Port On Compute Node - ... ${PORTS}[0] - ... ${NET_1_VMS}[0] - ... ${OS_CMP1_HOSTNAME} - ... sg=${SECURITY_GROUP} - OpenStackOperations.Poll VM Is ACTIVE ${NET_1_VMS}[0] - ${status} ${ips_and_console_log} = BuiltIn.Run Keyword And Ignore Error - ... BuiltIn.Wait Until Keyword Succeeds - ... 360s - ... 15s - ... OpenStackOperations.Get VM IP - ... true - ... ${NET_1_VMS}[0] - @{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS} - BuiltIn.Set Suite Variable @{NET_1_VM_IPS} - BuiltIn.Wait Until Keyword Succeeds - ... 30s - ... 10s - ... Utils.Check For Elements At URI - ... ${FIB_ENTRY_URL} - ... ${NET_1_VM_IPS} - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[0] - ... ping -c 10 ${NET_1_VM_IPS}[1] - BuiltIn.Should Contain ${output} 64 bytes - ${output} = OpenStackOperations.Execute Command on VM Instance - ... ${NETWORKS}[0] - ... ${NET_1_VM_IPS}[0] - ... ping -c 10 ${NET_2_VM_IPS}[0] - BuiltIn.Should Contain ${output} 64 bytes - -Verification of route update after reconfiguring vpn by adding new ports - [Documentation] Verify route update after reconfiguring vpn by creating new VM with new port on openvswitch1 - OpenStackOperations.Create Port ${NETWORKS}[0] ${PORT_NEW} sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance With Port On Compute Node - ... ${PORT_NEW} - ... ${VM_NAME_NEW} - ... ${OS_CMP1_HOSTNAME} - ... sg=${SECURITY_GROUP} - OpenStackOperations.Poll VM Is ACTIVE ${VM_NAME_NEW} - ${status} ${ips_and_console_log} = BuiltIn.Run Keyword And Ignore Error - ... BuiltIn.Wait Until Keyword Succeeds - ... 360s - ... 15s - ... OpenStackOperations.Get VM IP - ... true - ... ${VM_NAME_NEW} - ${output} = VpnOperations.Get Fib Entries session - BuiltIn.Should Contain ${output} ${ips_and_console_log[0]} - OpenStackOperations.Delete Vm Instance ${VM_NAME_NEW} - OpenStackOperations.Delete Port ${PORT_NEW} - -Dissociate L3VPN From Networks - [Documentation] Dissociate L3VPN from networks - ${network1_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0] - ${network2_id} = OpenStackOperations.Get Net Id ${NETWORKS}[1] - VpnOperations.Dissociate L3VPN From Networks networkid=${network1_id} vpnid=${VPN_INSTANCE_IDS}[0] - ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0] - BuiltIn.Should Not Contain ${resp} ${network1_id} - VpnOperations.Dissociate L3VPN From Networks networkid=${network2_id} vpnid=${VPN_INSTANCE_IDS}[0] - ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0] - BuiltIn.Should Not Contain ${resp} ${network2_id} - -Delete Unknown L3VPN - [Documentation] Verification of a failure response with deletion of an unknown L3VPN - ${status} ${message} = BuiltIn.Run Keyword And Ignore Error - ... VpnOperations.VPN Delete L3VPN - ... vpnid=${INVALID_VPN_INSTANCE_ID} - BuiltIn.Should Contain ${status} FAIL - -Delete L3VPN - [Documentation] Delete L3VPN - VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_IDS}[0] - -Create Multiple L3VPN - [Documentation] Creates three L3VPNs and then verify the same - ${net_id} = OpenStackOperations.Get Net Id ${NETWORKS}[0] - ${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id} - VpnOperations.VPN Create L3VPN - ... vpnid=${VPN_INSTANCE_IDS}[0] - ... name=${VPN_NAMES}[0] - ... rd=${RDS}[0] - ... exportrt=${RDS}[0] - ... importrt=${RDS}[0] - ... tenantid=${tenant_id} - VpnOperations.VPN Create L3VPN - ... vpnid=${VPN_INSTANCE_IDS}[1] - ... name=${VPN_NAMES}[1] - ... rd=${RDS}[1] - ... exportrt=${RDS}[1] - ... importrt=${RDS}[1] - ... tenantid=${tenant_id} - VpnOperations.VPN Create L3VPN - ... vpnid=${VPN_INSTANCE_IDS}[2] - ... name=${VPN_NAMES}[2] - ... rd=${RDS}[2] - ... exportrt=${RDS}[2] - ... importrt=${RDS}[2] - ... tenantid=${tenant_id} - ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[0] - BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_IDS}[0] - ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[1] - BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_IDS}[1] - ${resp} = VpnOperations.VPN Get L3VPN vpnid=${VPN_INSTANCE_IDS}[2] - BuiltIn.Should Contain ${resp} ${VPN_INSTANCE_IDS}[2] - - -*** Keywords *** -Suite Setup - VpnOperations.Basic Suite Setup - OpenStackOperations.Create Network ${NETWORKS}[0] - OpenStackOperations.Create Network ${NETWORKS}[1] - BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${NETWORK_URL} ${NETWORKS} - OpenStackOperations.Update Network ${NETWORKS}[0] additional_args=--description ${UPDATE_NETWORK} - ${output} = OpenStackOperations.Show Network ${NETWORKS}[0] - BuiltIn.Should Contain ${output} ${UPDATE_NETWORK} - OpenStackOperations.Create SubNet ${NETWORKS}[0] ${SUBNETS}[0] ${SUBNET_CIDRS}[0] - OpenStackOperations.Create SubNet ${NETWORKS}[1] ${SUBNETS}[1] ${SUBNET_CIDRS}[1] - BuiltIn.Wait Until Keyword Succeeds - ... 3s - ... 1s - ... Utils.Check For Elements At URI - ... ${SUBNETWORK_URL} - ... ${SUBNETS} - OpenStackOperations.Update SubNet ${SUBNETS}[0] additional_args=--description ${UPDATE_SUBNET} - ${output} = OpenStackOperations.Show SubNet ${SUBNETS}[0] - BuiltIn.Should Contain ${output} ${UPDATE_SUBNET} - OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP} - ${allowed_address_pairs_args} = BuiltIn.Set Variable - ... --allowed-address ip-address=${EXTRA_NW_SUBNET}[0] --allowed-address ip-address=${EXTRA_NW_SUBNET}[1] - Create Port - ... ${NETWORKS}[0] - ... ${PORTS}[0] - ... sg=${SECURITY_GROUP} - ... additional_args=${allowed_address_pairs_args} - Create Port - ... ${NETWORKS}[0] - ... ${PORTS}[1] - ... sg=${SECURITY_GROUP} - ... additional_args=${allowed_address_pairs_args} - Create Port - ... ${NETWORKS}[1] - ... ${PORTS}[2] - ... sg=${SECURITY_GROUP} - ... additional_args=${allowed_address_pairs_args} - Create Port - ... ${NETWORKS}[1] - ... ${PORTS}[3] - ... sg=${SECURITY_GROUP} - ... additional_args=${allowed_address_pairs_args} - Wait Until Keyword Succeeds 3s 1s Check For Elements At URI ${PORT_URL} ${PORTS} - ${PORTS_MACADDR} = Get Ports MacAddr ${PORTS} - Set Suite Variable ${PORTS_MACADDR} - Update Port ${PORTS}[0] additional_args=--description ${UPDATE_PORT} - ${output} = Show Port ${PORTS}[0] - Should Contain ${output} ${UPDATE_PORT} - OpenStackOperations.Create Vm Instance With Port On Compute Node - ... ${PORTS}[0] - ... ${NET_1_VMS}[0] - ... ${OS_CMP1_HOSTNAME} - ... sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance With Port On Compute Node - ... ${PORTS}[1] - ... ${NET_1_VMS}[1] - ... ${OS_CMP2_HOSTNAME} - ... sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance With Port On Compute Node - ... ${PORTS}[2] - ... ${NET_2_VMS}[0] - ... ${OS_CMP1_HOSTNAME} - ... sg=${SECURITY_GROUP} - OpenStackOperations.Create Vm Instance With Port On Compute Node - ... ${PORTS}[3] - ... ${NET_2_VMS}[1] - ... ${OS_CMP2_HOSTNAME} - ... sg=${SECURITY_GROUP} - @{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VMS} - @{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS} - BuiltIn.Set Suite Variable @{NET_1_VM_IPS} - BuiltIn.Set Suite Variable @{NET_2_VM_IPS} - BuiltIn.Should Not Contain ${NET_1_VM_IPS} None - BuiltIn.Should Not Contain ${NET_2_VM_IPS} None - BuiltIn.Should Not Contain ${NET_1_DHCP_IP} None - BuiltIn.Should Not Contain ${NET_2_DHCP_IP} None - BuiltIn.Wait Until Keyword Succeeds 30s 10s Wait For Routes To Propogate ${NETWORKS} ${SUBNET_CIDRS} - OpenStackOperations.Show Debugs @{NET_1_VMS} @{NET_2_VMS} - OpenStackOperations.Get Suite Debugs - -Suite Teardown - [Documentation] Delete the setup - BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_IDS}[0] - BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_IDS}[1] - BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=${VPN_INSTANCE_IDS}[2] - OpenStackOperations.OpenStack Suite Teardown