\ ${cmd}= Set Variable If ${length} == 0 ip route ip -6 route
\ ${output}= Write Commands Until Expected Prompt sudo ip netns exec qdhcp-${net_id} ${cmd} ]>
\ Should Contain ${output} @{subnets}[${INDEX}]
+
+Neutron Cleanup
+ [Arguments] ${vms}=@{EMPTY} ${networks}=@{EMPTY} ${subnets}=@{EMPTY} ${ports}=@{EMPTY} ${sgs}=@{EMPTY}
+ : FOR ${vm} IN @{vms}
+ \ BuiltIn.Run Keyword And Ignore Error Delete Vm Instance ${vm}
+ : FOR ${port} IN @{ports}
+ \ BuiltIn.Run Keyword And Ignore Error Delete Port ${port}
+ : FOR ${subnet} IN @{subnets}
+ \ BuiltIn.Run Keyword And Ignore Error Delete SubNet ${subnet}
+ : FOR ${network} IN @{networks}
+ \ BuiltIn.Run Keyword And Ignore Error Delete Network ${network}
+ : FOR ${sg} IN @{sgs}
+ \ BuiltIn.Run Keyword And Ignore Error Delete SecurityGroup ${sg}
SetupUtils.Setup_Utils_For_Setup_And_Teardown
DevstackUtils.Devstack Suite Setup
-Basic Vpnservice Suite Teardown
- # Delete three L3VPNs created using Multiple L3VPN Test
- Run Keyword And Ignore Error VPN Delete L3VPN vpnid=${VPN_INSTANCE_ID[0]}
- Run Keyword And Ignore Error VPN Delete L3VPN vpnid=${VPN_INSTANCE_ID[1]}
- Run Keyword And Ignore Error VPN Delete L3VPN vpnid=${VPN_INSTANCE_ID[2]}
- ${VM_INSTANCES} = Create List @{NET_1_VM_INSTANCES} @{NET_2_VM_INSTANCES}
- : FOR ${VmInstance} IN @{VM_INSTANCES}
- \ Run Keyword And Ignore Error Delete Vm Instance ${VmInstance}
- : FOR ${Port} IN @{PORT_LIST}
- \ Run Keyword And Ignore Error Delete Port ${Port}
- : FOR ${Subnet} IN @{SUBNETS}
- \ Run Keyword And Ignore Error Delete SubNet ${Subnet}
- : FOR ${Network} IN @{NETWORKS}
- \ Run Keyword And Ignore Error Delete Network ${Network}
- Run Keyword And Ignore Error Delete SecurityGroup ${SECURITY_GROUP}
- Close All Connections
+Basic Vpnservice Suite Cleanup
+ [Arguments] ${vpn_instance_ids}=@{EMPTY} ${vms}=@{EMPTY} ${networks}=@{EMPTY} ${subnets}=@{EMPTY} ${ports}=@{EMPTY} ${sgs}=@{EMPTY}
+ : FOR ${vpn_instance_id} IN @{vpn_instance_ids}
+ \ BuiltIn.Run Keyword And Ignore Error VPN Delete L3VPN vpnid=${vpn_instance_id}
+ OpenStackOperations.Neutron Cleanup ${vms} ${networks} ${subnets} ${ports} ${sgs}
VPN Create L3VPN
[Arguments] &{Kwargs}
${SECURITY_GROUP} elan_sg
@{NETWORKS} elan_net_1 elan_net_2 elan_net_3
@{SUBNETS} elan_sub_1 elan_sub_2 elan_sub_3
-@{SUBNET_CIDR} 71.1.1.0/24 72.1.1.0/24 73.1.1.0/24
+@{SUBNET_CIDR} 81.1.1.0/24 82.1.1.0/24 83.1.1.0/24
@{NET_1_PORTS} elan_net_1_port_1 elan_net_1_port_2
@{NET_2_PORTS} elan_net_2_port_1 elan_net_2_port_2
@{NET_3_PORTS} elan_net_3_port_1 elan_net_3_port_2
@{NET_1_VMS} elan_net_1_vm_1 elan_net_1_vm_2
@{NET_2_VMS} elan_net_2_vm_1 elan_net_2_vm_2
@{NET_3_VMS} elan_net_3_vm_1 elan_net_3_vm_2
-${PING_PASS} , 0% packet loss
*** Test Cases ***
Create Single Elan
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_1_IP} ${smac_cn1} ${NET_1_MACS}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_2_IP} ${smac_cn2} ${NET_1_MACS}
${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} ${PING_PASS}
+ BuiltIn.Should Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_1_VM_IPS}[0]
- BuiltIn.Should Contain ${output} ${PING_PASS}
+ BuiltIn.Should Contain ${output} ${PING_REGEXP}
Verify Datapath After OVS Restart
[Documentation] Verify datapath after OVS restart
BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_1_IP} ${smac_cn1} ${NET_1_MACS}
BuiltIn.Wait Until Keyword Succeeds 60s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_2_IP} ${smac_cn2} ${NET_1_MACS}
${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} ${PING_PASS}
+ BuiltIn.Should Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_1_VM_IPS}[0]
- BuiltIn.Should Contain ${output} ${PING_PASS}
+ BuiltIn.Should Contain ${output} ${PING_REGEXP}
Verify Datapath After Recreate VM Instance
[Documentation] Verify datapath after recreating Vm instance
BuiltIn.Should Not Contain ${NET_1_DHCP_IP} None
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_1_IP} ${smac_cn1} ${NET_1_MACS}
${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} ${PING_PASS}
+ BuiltIn.Should Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{NET_1_VM_IPS}[1] ping -c 3 @{NET_1_VM_IPS}[0]
- BuiltIn.Should Contain ${output} ${PING_PASS}
+ BuiltIn.Should Contain ${output} ${PING_REGEXP}
Delete All elan_net_1 VM And Verify Flow Table Updated
[Documentation] Verify Flow table after all VM instance deleted
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_1_IP} ${smac_cn1} ${MAC_LIST}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_2_IP} ${smac_cn2} ${MAC_LIST}
${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} ${PING_PASS}
+ BuiltIn.Should Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{NET_3_VM_IPS}[1] ping -c 3 ${NET_3_VM_IPS[0]}
- BuiltIn.Should Contain ${output} ${PING_PASS}
+ BuiltIn.Should Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{NET_2_VM_IPS}[0] ping -c 3 ${NET_3_VM_IPS[0]}
- BuiltIn.Should Not Contain ${output} ${PING_PASS}
+ BuiltIn.Should Not Contain ${output} ${PING_REGEXP}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[2] @{NET_3_VM_IPS}[1] ping -c 3 ${NET_2_VM_IPS[1]}
- BuiltIn.Should Not Contain ${output} ${PING_PASS}
+ BuiltIn.Should Not Contain ${output} ${PING_REGEXP}
@{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
BuiltIn.Should Not Contain ${NET_2_VM_IPS} None
BuiltIn.Should Not Contain ${NET_2_DHCP_IP} None
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify Flows Are Present For ELAN Service ${OS_COMPUTE_1_IP} ${smac_cn1} ${MAC_LIST}
${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] ${NET_2_VM_IPS[1]} ping -c 3 @{NET_2_VM_IPS}[0]
- BuiltIn.Should Contain ${output} ${PING_PASS}
+ BuiltIn.Should Contain ${output} ${PING_REGEXP}
[Teardown] BuiltIn.Run Keywords OpenStackOperations.Get Test Teardown Debugs
... AND MultipleElan Testsuite Cleanup
*** Settings ***
Documentation Test suite for ARP Request. More test cases to be added in subsequent patches.
Suite Setup Start Suite
-Suite Teardown End Suite
+Suite Teardown SSHLibrary.Close All Connections
Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
Test Teardown OpenStackOperations.Get Test Teardown Debugs
Library RequestsLibrary
Resource ../../../variables/Variables.robot
*** Variables ***
-${SECURITY_GROUP} arp_sg
-@{VPN_INSTANCE_IDS} 4ae8cd92-48ca-49b5-94e1-b2921a261111 4ae8cd92-48ca-49b5-94e1-b2921a261112
-@{VPN_NAMES} vpn1 vpn2
+${SECURITY_GROUP} vpna_sg
+@{NETWORKS} vpna_net_1 vpna_net_2 vpna_net_3
+@{SUBNETS} vpna_sub_1 vpna_sub_2 vpna_sub_3
+@{SUBNET_CIDR} 10.10.10.0/24 10.20.20.0/24 10.30.30.0/24
+@{PORTS} vpna_net_1_port_1 vpna_net_1_port_2 vpna_net_2_port_1 vpna_net_2_port_2 vpna_net_3_port_1 vpna_net_3_port_2
+@{NET_1_VM_INSTANCES} vpna_net_1_vm_1 vpna_net_1_vm_2
+@{NET_2_VM_INSTANCES} vpna_net_2_vm_1 vpna_net_2_vm_2
+@{NET_3_VM_INSTANCES} vpna_net_3_vm_1 vpna_net_3_vm_2
+${ROUTERS} vpna_router
+@{VPN_INSTANCE_IDS} 4ae8cd92-48ca-49b5-94e1-b2921a261111
+@{VPN_NAMES} vpna_1
${RD1} ["2200:2"]
${RD2} ["2200:3"]
${EXPORT_RT} ["2200:2","2200:3"]
${IMPORT_RT} ["2200:2","2200:3"]
${SUB_IF} eth0:1
+@{EXTRA_NW_IP} 192.168.10.110 192.168.20.110
+${FIB_ENTRY_2} 192.168.10.110
+${FIB_ENTRY_4} 192.168.20.110
+${RPING_MIP_IP} sudo arping -I eth0:1 -c 5 -b -s 192.168.10.110 192.168.10.110
+${RPING_MIP_IP_2} sudo arping -I eth0:1 -c 5 -b -s 192.168.20.110 192.168.20.110
+${RPING_EXP_STR} broadcast
*** Test Cases ***
TC00 Verify Setup
[Documentation] Verify that VMs received ip and ping is happening between different VM
- @{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{VM_INSTANCES_NET1}
- @{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{VM_INSTANCES_NET2}
- @{NET_3_VM_IPS} ${NET_3_DHCP_IP} = OpenStackOperations.Get VM IPs @{VM_INSTANCES_NET3}
+ @{NET_1_VM_IPS} ${NET_1_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_1_VM_INSTANCES}
+ @{NET_2_VM_IPS} ${NET_2_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_2_VM_INSTANCES}
+ @{NET_3_VM_IPS} ${NET_3_DHCP_IP} = OpenStackOperations.Get VM IPs @{NET_3_VM_INSTANCES}
BuiltIn.Set Suite Variable @{NET_1_VM_IPS}
BuiltIn.Set Suite Variable @{NET_2_VM_IPS}
BuiltIn.Set Suite Variable @{NET_3_VM_IPS}
[Tags] not-implemented exclude
TODO
+Cleanup
+ [Documentation] Delete the setup
+ VpnOperations.Dissociate L3VPN From Networks networkid=${net_id} vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ OpenStackOperations.Remove Interface ${ROUTERS} @{SUBNETS}[1]
+ OpenStackOperations.Remove Interface ${ROUTERS} @{SUBNETS}[2]
+ OpenStackOperations.Delete Router ${ROUTERS}
+ @{vms} = BuiltIn.Create List @{NET_1_VM_INSTANCES} @{NET_2_VM_INSTANCES} @{NET_3_VM_INSTANCES}
+ @{sgs} = BuiltIn.Create List ${SECURITY_GROUP}
+ OpenStackOperations.Neutron Cleanup ${vms} ${NETWORKS} ${SUBNETS} ${PORTS} ${sgs}
+
*** Keywords ***
Start Suite
[Documentation] Run at start of the suite
SetupUtils.Setup_Utils_For_Setup_And_Teardown
Create Setup
-End Suite
- [Documentation] Run at end of the suite
- Delete Setup
- SSHLibrary.Close All Connections
-
Create Setup
[Documentation] Create networks, subnets, ports and VMs
: FOR ${network} IN @{NETWORKS}
: FOR ${subnet} IN @{SUBNETS}
\ BuiltIn.Should Contain ${neutron_subnets} ${subnet}
OpenStackOperations.Create Allow All SecurityGroup ${SECURITY_GROUP}
- OpenStackOperations.Create Port @{NETWORKS}[0] @{PORT_LIST}[0] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
- OpenStackOperations.Create Port @{NETWORKS}[0] @{PORT_LIST}[1] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
- OpenStackOperations.Create Port @{NETWORKS}[1] @{PORT_LIST}[2] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
- OpenStackOperations.Create Port @{NETWORKS}[1] @{PORT_LIST}[3] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
- OpenStackOperations.Create Port @{NETWORKS}[1] @{PORT_LIST}[4] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
- OpenStackOperations.Create Port @{NETWORKS}[1] @{PORT_LIST}[5] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORT_LIST}[0] @{VM_INSTANCES_NET1}[0] ${OS_COMPUTE_1_IP} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORT_LIST}[1] @{VM_INSTANCES_NET1}[1] ${OS_COMPUTE_2_IP} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORT_LIST}[2] @{VM_INSTANCES_NET2}[0] ${OS_COMPUTE_1_IP} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORT_LIST}[3] @{VM_INSTANCES_NET2}[1] ${OS_COMPUTE_2_IP} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORT_LIST}[4] @{VM_INSTANCES_NET3}[0] ${OS_COMPUTE_1_IP} sg=${SECURITY_GROUP}
- OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORT_LIST}[5] @{VM_INSTANCES_NET3}[1] ${OS_COMPUTE_2_IP} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Port @{NETWORKS}[0] @{PORTS}[0] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
+ OpenStackOperations.Create Port @{NETWORKS}[0] @{PORTS}[1] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
+ OpenStackOperations.Create Port @{NETWORKS}[1] @{PORTS}[2] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
+ OpenStackOperations.Create Port @{NETWORKS}[1] @{PORTS}[3] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
+ OpenStackOperations.Create Port @{NETWORKS}[2] @{PORTS}[4] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
+ OpenStackOperations.Create Port @{NETWORKS}[2] @{PORTS}[5] sg=${SECURITY_GROUP} allowed_address_pairs=@{EXTRA_NW_IP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[0] @{NET_1_VM_INSTANCES}[0] ${OS_COMPUTE_1_IP} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[1] @{NET_1_VM_INSTANCES}[1] ${OS_COMPUTE_2_IP} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[2] @{NET_2_VM_INSTANCES}[0] ${OS_COMPUTE_1_IP} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[3] @{NET_2_VM_INSTANCES}[1] ${OS_COMPUTE_2_IP} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[4] @{NET_3_VM_INSTANCES}[0] ${OS_COMPUTE_1_IP} sg=${SECURITY_GROUP}
+ OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[5] @{NET_3_VM_INSTANCES}[1] ${OS_COMPUTE_2_IP} sg=${SECURITY_GROUP}
OpenStackOperations.Create Router ${ROUTERS}
OpenStackOperations.Add Router Interface ${ROUTERS} @{SUBNETS}[1]
OpenStackOperations.Add Router Interface ${ROUTERS} @{SUBNETS}[2]
TODO
Fail "Not implemented"
-
-Delete Setup
- [Documentation] Delete the setup
- VpnOperations.Dissociate L3VPN From Networks networkid=${net_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_IDS}[0]
- VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
- OpenStackOperations.Remove Interface ${ROUTERS} @{SUBNETS}[1]
- OpenStackOperations.Remove Interface ${ROUTERS} @{SUBNETS}[2]
- OpenStackOperations.Delete Router ${ROUTERS}
- ${vms} = BuiltIn.Create List @{VM_INSTANCES_NET1} @{VM_INSTANCES_NET2} @{VM_INSTANCES_NET3}
- : FOR ${vm} IN @{vms}
- \ OpenStackOperations.Delete Vm Instance ${vm}
- : FOR ${port} IN @{PORT_LIST}
- \ OpenStackOperations.Delete Port ${port}
- : FOR ${subnet} IN @{SUBNETS}
- \ OpenStackOperations.Delete SubNet ${subnet}
- : FOR ${network} IN @{NETWORKS}
- \ OpenStackOperations.Delete Network ${network}
- OpenStackOperations.Delete SecurityGroup ${SECURITY_GROUP}
... The assumption of this suite is that the environment is already configured with the proper
... integration bridges and vxlan tunnels.
Suite Setup VpnOperations.Basic Vpnservice Suite Setup
-Suite Teardown Basic Vpnservice Suite Teardown
+Suite Teardown SSHLibrary.Close All Connections
Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
Test Teardown OpenStackOperations.Get Test Teardown Debugs
Library OperatingSystem
${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_NAME} vpn_1 vpn_2 vpn_3
+@{RDS} ["2200:2"] ["2300:2"] ["2400:2"]
*** Test Cases ***
Create Neutron Networks
${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0] ${devstack_conn_id}
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
BuiltIn.Log @{RDS}[0]
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_ID}[0] name=@{VPN_NAME}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_ID}[0]
+ VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[0] name=@{VPN_NAME}[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} ${devstack_conn_id}
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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
Disassociate L3VPN From Router
${router_id}= OpenStackOperations.Get Router Id ${ROUTER} ${devstack_conn_id}
- VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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}
Delete Router And Router Interfaces With L3VPN
${router_id}= OpenStackOperations.Get Router Id ${ROUTER} ${devstack_conn_id}
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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}
: FOR ${INTERFACE} IN @{SUBNETS}
\ OpenStackOperations.Remove Interface ${ROUTER} ${INTERFACE}
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}
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${router_id}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry Removed From Flow Table ${OS_COMPUTE_1_IP}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry Removed From Flow Table ${OS_COMPUTE_2_IP}
[Documentation] Associates L3VPN to networks and verify
${network1_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0] ${devstack_conn_id}
${network2_id} = OpenStackOperations.Get Net Id @{NETWORKS}[1] ${devstack_conn_id}
- VpnOperations.Associate L3VPN To Network networkid=${network1_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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_ID}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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}
Dissociate L3VPN From Networks
[Documentation] Dissociate L3VPN from networks
${network1_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0] ${devstack_conn_id}
${network2_id} = OpenStackOperations.Get Net Id @{NETWORKS}[1] ${devstack_conn_id}
- VpnOperations.Dissociate L3VPN From Networks networkid=${network1_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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_ID}[0]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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 L3VPN
[Documentation] Delete L3VPN
- VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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] ${devstack_conn_id}
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_ID}[0] name=@{VPN_NAME}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_ID}[1] name=@{VPN_NAME}[1] rd=@{RDS}[1] exportrt=@{RDS}[1] importrt=@{RDS}[1] tenantid=${tenant_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_ID}[2] name=@{VPN_NAME}[2] rd=@{RDS}[2] exportrt=@{RDS}[2] importrt=@{RDS}[2] tenantid=${tenant_id}
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_ID}[0]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[1]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_ID}[1]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[2]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_ID}[2]
+ VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[0] name=@{VPN_NAME}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
+ VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[1] name=@{VPN_NAME}[1] rd=@{RDS}[1] exportrt=@{RDS}[1] importrt=@{RDS}[1] tenantid=${tenant_id}
+ VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[2] name=@{VPN_NAME}[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]
Check Datapath Traffic Across Networks With L3VPN
[Documentation] Datapath Test Across the networks with VPN.
Delete Multiple L3VPN
[Documentation] Delete three L3VPNs created using Multiple L3VPN Test
- VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
- VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[1]
- VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[2]
+ VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[1]
+ VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[2]
+
+Cleanup
+ @{vms} = BuiltIn.Create List @{NET_1_VM_INSTANCES} @{NET_2_VM_INSTANCES}
+ @{sgs} = BuiltIn.Create List ${SECURITY_GROUP}
+ Basic Vpnservice Suite Cleanup ${VPN_INSTANCE_IDS} ${vms} ${NETWORKS} ${SUBNETS} ${PORTS} ${sgs}
Suite Setup BuiltIn.Run Keywords OpenStackOperations.Get OvsDebugInfo
... AND VpnOperations.Basic Vpnservice Suite Setup
... AND OpenStackOperations.Get OvsDebugInfo
-Suite Teardown BuiltIn.Run Keywords Basic Vpnservice Suite Teardown
+Suite Teardown SSHLibrary.Close All Connections
... AND OpenStackOperations.Get OvsDebugInfo
Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
Test Teardown OpenStackOperations.Get Test Teardown Debugs
Resource ../../../variables/netvirt/Variables.robot
*** Variables ***
+${SECURITY_GROUP} vpn6_sg
@{NETWORKS} vpn6_net_1 vpn6_net_2
@{SUBNETS} vpn6_sub_1 vpn6_sub_2
@{SUBNETS_CIDR} 2001:db8:0:2::/64 2001:db8:0:3::/64
${ROUTER} vpn6_router
@{EXTRA_NW_IP} 2001:db9:cafe:d::10 2001:db9:abcd:d::20
@{EXTRA_NW_SUBNET} 2001:db9:cafe:d::/64 2001:db9:abcd:d::/64
-${SECURITY_GROUP} vpn6_sg
${UPDATE_NETWORK} UpdateNetworkV6
${UPDATE_SUBNET} UpdateSubnetV6
${UPDATE_PORT} UpdatePortV6
+@{VPN_INSTANCE_IDS} 4ae8cd92-48ca-49b5-94e1-b2921a261661 4ae8cd92-48ca-49b5-94e1-b2921a261662 4ae8cd92-48ca-49b5-94e1-b2921a261663
+@{VPN_NAME} vpn6_1 vpn6_2 vpn6_3
+@{RDS} ["2206:2"] ["2306:2"] ["2406:2"]
*** Test Cases ***
Create Neutron Networks
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_1_IP} ${VM_IP_NET10}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_1_IP} ${VM_IP_NET20}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_2_IP}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_1_IP} ipv6
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_2_IP} ipv6
${dst_ip_list} = BuiltIn.Create List @{VM_IP_NET10}[1] @{VM_IP_NET20}
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ${dst_ip_list}
${dst_ip_list} = BuiltIn.Create List @{VM_IP_NET20}[1] @{VM_IP_NET10}
Create L3VPN
${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0] ${devstack_conn_id}
${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_ID}[0] name=@{VPN_NAME}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_ID}[0]
+ VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[0] name=@{VPN_NAME}[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} ${devstack_conn_id}
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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
BuiltIn.Wait Until Keyword Succeeds 60s 15s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_1_IP} ${vm_instances}
BuiltIn.Wait Until Keyword Succeeds 60s 15s VpnOperations.Verify Flows Are Present For L3VPN ${OS_COMPUTE_2_IP} ${vm_instances}
BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Entry On ODL ${GWMAC_ADDRS}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_1_IP}
- BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_2_IP}
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_1_IP} ipv6
+ BuiltIn.Wait Until Keyword Succeeds 30s 10s VpnOperations.Verify GWMAC Flow Entry On Flow Table ${OS_COMPUTE_2_IP} ipv6
BuiltIn.Log Check datapath from network1 to network2
${dst_ip_list} = BuiltIn.Create List @{VM_IP_NET10}[1] @{VM_IP_NET20}
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[0] @{VM_IP_NET10}[0] ${dst_ip_list}
Dissociate L3VPN From Routers
${router_id}= OpenStackOperations.Get Router Id ${ROUTER} ${devstack_conn_id}
- VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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}
Delete Router And Router Interfaces With L3VPN
${router_id}= OpenStackOperations.Get Router Id ${ROUTER} ${devstack_conn_id}
- VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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}
: FOR ${INTERFACE} IN @{SUBNETS}
\ OpenStackOperations.Remove Interface ${ROUTER} ${INTERFACE}
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}
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
BuiltIn.Should Not Contain ${resp} ${router_id}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify GWMAC Flow Entry Removed From Flow Table ${OS_COMPUTE_1_IP}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Verify GWMAC Flow Entry Removed From Flow Table ${OS_COMPUTE_2_IP}
Associate L3VPN To Networks
${network1_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0] ${devstack_conn_id}
${network2_id} = OpenStackOperations.Get Net Id @{NETWORKS}[1] ${devstack_conn_id}
- VpnOperations.Associate L3VPN To Network networkid=${network1_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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_ID}[0]
- ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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}
Dissociate L3VPN From Networks
${network1_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0] ${devstack_conn_id}
${network2_id} = OpenStackOperations.Get Net Id @{NETWORKS}[1] ${devstack_conn_id}
- VpnOperations.Dissociate L3VPN From Networks networkid=${network1_id} vpnid=@{VPN_INSTANCE_ID}[0]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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_ID}[0]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ 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 L3VPN
- VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
+ VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
Create Multiple L3VPN
${net_id} = Get Net Id @{NETWORKS}[0] ${devstack_conn_id}
${tenant_id} = Get Tenant ID From Network ${net_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_ID}[0] name=@{VPN_NAME}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_ID}[1] name=@{VPN_NAME}[1] rd=@{RDS}[1] exportrt=@{RDS}[1] importrt=@{RDS}[1] tenantid=${tenant_id}
- VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_ID}[2] name=@{VPN_NAME}[2] rd=@{RDS}[2] exportrt=@{RDS}[2] importrt=@{RDS}[2] tenantid=${tenant_id}
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_ID}[0]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[1]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_ID}[1]
- ${resp}= VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[2]
- BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_ID}[2]
+ VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[0] name=@{VPN_NAME}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
+ VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[1] name=@{VPN_NAME}[1] rd=@{RDS}[1] exportrt=@{RDS}[1] importrt=@{RDS}[1] tenantid=${tenant_id}
+ VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_IDS}[2] name=@{VPN_NAME}[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]
Delete Multiple L3VPN
- VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
- VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[1]
- VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[2]
+ VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
+ VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[1]
+ VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[2]
+
+Cleanup
+ @{vms} = BuiltIn.Create List @{NET_1_VM_INSTANCES} @{NET_2_VM_INSTANCES}
+ @{sgs} = BuiltIn.Create List ${SECURITY_GROUP}
+ Basic Vpnservice Suite Cleanup ${VPN_INSTANCE_IDS} ${vms} ${NETWORKS} ${SUBNETS} ${PORTS} ${sgs}
Documentation Test Suite for Neutron Security Group
Suite Setup BuiltIn.Run Keywords SetupUtils.Setup_Utils_For_Setup_And_Teardown
... AND DevstackUtils.Devstack Suite Setup
-Suite Teardown Neutron Security Group Suite Teardown
+Suite Teardown SSHLibrary.Close All Connections
Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
Test Teardown OpenStackOperations.Get Test Teardown Debugs
Library SSHLibrary
${SEC_RULE_API} /restconf/config/neutron:neutron/security-rules/
${ADD_ARG_SSH} --direction ingress --ethertype IPv4 --port_range_max 22 --port_range_min 22 --protocol tcp
@{NETWORKS} sgs_net_1
-@{SUBNET} sgs_sub_1
-@{IP_SUBNET} 61.2.1.0/24
+@{SUBNETS} sgs_sub_1
+@{IP_SUBNETS} 61.2.1.0/24
@{PORTS} sgs_port_1 sgs_port_2
${SECURITY_GROUPS} --security-group
@{SGS} sgs_sg_1 sgs_sg_2 sgs_sg_3 sgs_sg_4
+${SG_UPDATED} SSH_UPDATED
${ADD_ARG_SSH5} --direction ingress --ethertype IPv4 --port_range_max 20 --port_range_min 25 --protocol tcp
@{ADD_PARAMS} ingression IPv4 20 25 tcp
${ADD_ARG_SSH6} --direction ingress --ethertype IPv4 --port_range_max 25 --port_range_min -1 --protocol tcp
${sg_id} = BuiltIn.Run Keyword Create Security Group and Validate ${SGS[0]}
Create Security Rule and Validate ${SGS[0]} direction=${ADD_PARAMS[0]} ethertype=${ADD_PARAMS[1]} port_range_max=${ADD_PARAMS[3]} port_range_min=${ADD_PARAMS[2]} protocol=${ADD_PARAMS[4]}
Get Flows ${OS_COMPUTE_1_IP} ${OS_COMPUTE_2_IP}
- Neutron Setup Creation ${NETWORKS[0]} ${SUBNET[0]} ${IP_SUBNET[0]} ${PORTS[0]} ${PORTS[1]} ${SECURITY_GROUPS}
+ Neutron Setup Creation ${NETWORKS[0]} ${SUBNETS[0]} ${IP_SUBNETS[0]} ${PORTS[0]} ${PORTS[1]} ${SECURITY_GROUPS}
... ${sg_id}
Security group verification on Neutron port ${PORTS[0]} ${sg_id}
Security group verification on Neutron port ${PORTS[1]} ${sg_id}
Get Flows ${OS_COMPUTE_1_IP} ${OS_COMPUTE_2_IP}
Neutron Rule Creation With Invalid Parameters ${SGS[3]} ${ADD_ARG_SSH7} ${INVALID_PORT_RANGE_MIN}
+Cleanup
+ @{vms} = BuiltIn.Create List
+ @{sgs} = BuiltIn.Create List ${SG_UPDATED} @{SGS}
+ OpenStackOperations.Neutron Cleanup ${vms} ${NETWORKS} ${SUBNETS} ${PORTS} ${sgs}
+
*** Keywords ***
Get Flows
[Arguments] ${OS_COMPUTE_1_IP} ${OS_COMPUTE_2_IP}
${port_id} OpenStackOperations.Create Neutron Port With Additional Params ${network} ${port1} ${add_args}
${port_id} OpenStackOperations.Create Neutron Port With Additional Params ${network} ${port2} ${add_args}
-Neutron Security Group Suite Teardown
- : FOR ${port} IN @{PORTS}
- \ Run Keyword And Ignore Error OpenStackOperations.Delete Port ${port}
- : FOR ${subnet} IN @{SUBNETS}
- \ Run Keyword And Ignore Error OpenStackOperations.Delete SubNet ${subnet}
- : FOR ${network} IN @{NETWORKS}
- \ Run Keyword And Ignore Error OpenStackOperations.Delete Network ${network}
- : FOR ${sg} IN @{SGS}
- \ Run Keyword And Ignore Error OpenStackOperations.Delete SecurityGroup ${sg}
- SSHLibrary.Close All Connections
-
Security group verification on Neutron port
[Arguments] ${port} ${sg_id}
${port_show} = OpenStackOperations.Neutron Port Show ${port}
${CIRROS_stable/ocata} cirros-0.3.4-x86_64-uec
${CIRROS_stable/pike} cirros-0.3.5-x86_64-disk
${CIRROS_master} cirros-0.3.5-x86_64-disk
-@{NETWORKS} NETWORK1 NETWORK2 NETWORK3
-@{SUBNETS} SUBNET1 SUBNET2 SUBNET3
-@{SUBNET_CIDR} 10.10.10.0/24 10.20.20.0/24 10.30.30.0/24
-@{PORT_LIST} PORT1 PORT2 PORT3 PORT4 PORT5 PORT6
-@{VM_INSTANCES_NET1} VM1 VM2
-@{VM_INSTANCES_NET2} VM3 VM4
-@{VM_INSTANCES_NET3} VM5 VM6
-@{VPN_INSTANCE_ID} 4ae8cd92-48ca-49b5-94e1-b2921a261111 4ae8cd92-48ca-49b5-94e1-b2921a261112 4ae8cd92-48ca-49b5-94e1-b2921a261113
-@{VPN_NAME} vpn1 vpn2 vpn3
${NET1_IPV6_ADDR_POOL} --allocation-pool start=2001:db8:0:2::2,end=2001:db8:0:2:ffff:ffff:ffff:fffe
${NET2_IPV6_ADDR_POOL} --allocation-pool start=2001:db8:0:3::2,end=2001:db8:0:3:ffff:ffff:ffff:fffe
-${ROUTERS} ROUTER_1
${RESP_CODE} 200
${RESP_ERROR_CODE} 400
${MAC_REGEX} ([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})
${IP6_REGEX} (2001:([0-9A-Fa-f]{0,4}:){1,6}([0-9A-Fa-f]{1,4}))
${PING_REGEXP} , 0% packet loss
${NO_PING_REGEXP} , 100% packet loss
-# Values passed for ARP_Learning
-@{EXTRA_NW_IP} 192.168.10.110 192.168.20.110
-${FIB_ENTRY_2} 192.168.10.110
-${FIB_ENTRY_4} 192.168.20.110
-@{RDS} ["2200:2"] ["2300:2"] ["2400:2"]
-${RPING_MIP_IP} sudo arping -I eth0:1 -c 5 -b -s 192.168.10.110 192.168.10.110
-${RPING_MIP_IP_2} sudo arping -I eth0:1 -c 5 -b -s 192.168.20.110 192.168.20.110
-${RPING_EXP_STR} broadcast
# Values passed for extra routes
${RT_OPTIONS} --route
${RT_CLEAR} --no-route