Documentation Test suite to validate IPv6 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.
-Suite Setup BuiltIn.Run Keywords OpenStackOperations.Get OvsDebugInfo
-... AND VpnOperations.Basic Vpnservice Suite Setup
-... AND OpenStackOperations.Get OvsDebugInfo
-Suite Teardown SSHLibrary.Close All Connections
+Suite Setup VpnOperations.Basic Suite Setup
+Suite Teardown OpenStackOperations.OpenStack Suite Teardown
Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
Test Teardown OpenStackOperations.Get Test Teardown Debugs
Library OperatingSystem
\ OpenStackOperations.Add Router Interface ${ROUTER} ${interface}
${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
: FOR ${interface} IN @{SUBNETS}
- \ ${subnet_id} = OpenStackOperations.Get Subnet Id ${interface} ${devstack_conn_id}
+ \ ${subnet_id} = OpenStackOperations.Get Subnet Id ${interface}
\ BuiltIn.Should Contain ${interface_output} ${subnet_id}
${GWMAC_ADDRS} ${GWIP_ADDRS} = VpnOperations.Get Gateway MAC And IP Address ${ROUTER} ${IP6_REGEX}
BuiltIn.Set Suite Variable ${GWMAC_ADDRS}
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}
- Update Port @{PORTS}[0] additional_args=--name ${UPDATE_PORT}
+ BuiltIn.Wait Until Keyword Succeeds 3s 1s Check For Elements At URI ${PORT_URL} ${PORTS}
+ OpenStackOperations.Update Port @{PORTS}[0] additional_args=--name ${UPDATE_PORT}
${output} = Show Port ${UPDATE_PORT}
- Should Contain ${output} ${UPDATE_PORT}
- Update Port ${UPDATE_PORT} additional_args=--name @{PORTS}[0]
+ BuiltIn.Should Contain ${output} ${UPDATE_PORT}
+ OpenStackOperations.Update Port ${UPDATE_PORT} additional_args=--name @{PORTS}[0]
Create Nova VMs
OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[0] @{NET_1_VMS}[0] ${OS_COMPUTE_1_IP} sg=${SECURITY_GROUP}
BuiltIn.Wait Until Keyword Succeeds 30s 10s Wait For Routes To Propogate ${NETWORKS} ${SUBNET_CIDRS}
${prefix_net10} = Replace String @{SUBNET_CIDRS}[0] ::/64 (:[a-f0-9]{,4}){,4}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
- ... true ${prefix_net10} @{NET_1_VMS}
+ ... fail_on_none=true vm_list=${NET_1_VMS} network=@{NETWORKS}[0] subnet=${prefix_net10}
${prefix_net20} = Replace String @{SUBNET_CIDRS}[1] ::/64 (:[a-f0-9]{,4}){,4}
${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
- ... true ${prefix_net20} @{NET_2_VMS}
- ${VM_IP_NET10} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${prefix_net10} @{NET_1_VMS}
- ${VM_IP_NET20} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${prefix_net20} @{NET_2_VMS}
+ ... fail_on_none=true vm_list=${NET_2_VMS} network=@{NETWORKS}[1] subnet=${prefix_net20}
+ ${VM_IP_NET10} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${NET_1_VMS} network=@{NETWORKS}[0] subnet=${prefix_net10}
+ ${VM_IP_NET20} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses fail_on_none=false vm_list=${NET_2_VMS} network=@{NETWORKS}[1] subnet=${prefix_net20}
${VM_INSTANCES} = Collections.Combine Lists ${NET_1_VMS} ${NET_2_VMS}
${VM_IPS}= Collections.Combine Lists ${VM_IP_NET10} ${VM_IP_NET20}
${LOOP_COUNT} BuiltIn.Get Length ${NET_1_VMS}
: FOR ${index} IN RANGE 0 ${LOOP_COUNT}
\ ${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain @{VM_IPS}[${index}] None
\ Run Keyword If '${status}' == 'FAIL' DevstackUtils.Write Commands Until Prompt openstack console log show @{VM_INSTANCES}[${index}] 30s
+ OpenStackOperations.Copy DHCP Files From Control Node
BuiltIn.Set Suite Variable ${VM_IP_NET10}
BuiltIn.Set Suite Variable ${VM_IP_NET20}
BuiltIn.Should Not Contain ${VM_IP_NET10} None
... AND OpenStackOperations.Get Test Teardown Debugs
Create L3VPN
- ${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0] ${devstack_conn_id}
+ ${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}
${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}
+ ${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}
OpenStackOperations.Test Operations From Vm Instance @{NETWORKS}[1] @{VM_IP_NET20}[0] ${dst_ip_list}
Dissociate L3VPN From Routers
- ${router_id}= OpenStackOperations.Get Router Id ${ROUTER} ${devstack_conn_id}
+ ${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}
Delete Router And Router Interfaces With L3VPN
- ${router_id}= OpenStackOperations.Get Router Id ${ROUTER} ${devstack_conn_id}
+ ${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}
\ OpenStackOperations.Remove Interface ${ROUTER} ${INTERFACE}
${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
: FOR ${INTERFACE} IN @{SUBNETS}
- \ ${subnet_id} = OpenStackOperations.Get Subnet Id ${INTERFACE} ${devstack_conn_id}
+ \ ${subnet_id} = OpenStackOperations.Get Subnet Id ${INTERFACE}
\ BuiltIn.Should Not Contain ${interface_output} ${subnet_id}
OpenStackOperations.Delete Router ${ROUTER}
${router_output} = OpenStackOperations.List Routers
BuiltIn.Should Match Regexp ${output} Unable to find router with name or id 'nonExistentRouter'|Unable to find router\\(s\\) with id\\(s\\) 'nonExistentRouter'
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}
+ ${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}
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}
+ ${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.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_IDS}[0]
Create Multiple L3VPN
- ${net_id} = Get Net Id @{NETWORKS}[0] ${devstack_conn_id}
+ ${net_id} = Get Net Id @{NETWORKS}[0]
${tenant_id} = 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 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_VMS} @{NET_2_VMS}
- @{sgs} = BuiltIn.Create List ${SECURITY_GROUP}
- Basic Vpnservice Suite Cleanup ${VPN_INSTANCE_IDS} ${vms} ${NETWORKS} ${SUBNETS} ${PORTS} ${sgs}