Merge "vpnaas: Wait for site connection status" into mcp/caracal
diff --git a/neutron_tempest_plugin/vpnaas/scenario/test_vpnaas.py b/neutron_tempest_plugin/vpnaas/scenario/test_vpnaas.py
index db1dd84..32181fe 100644
--- a/neutron_tempest_plugin/vpnaas/scenario/test_vpnaas.py
+++ b/neutron_tempest_plugin/vpnaas/scenario/test_vpnaas.py
@@ -116,6 +116,13 @@
cls.extra_subnet_attributes['ipv6_address_mode'] = 'slaac'
cls.extra_subnet_attributes['ipv6_ra_mode'] = 'slaac'
+ left_v4_cidr = netaddr.IPNetwork('10.20.0.0/24')
+ left_v6_cidr = netaddr.IPNetwork('2001:db8:0:2::/64')
+ cls.left_cidr = left_v6_cidr if cls.inner_ipv6 else left_v4_cidr
+ right_v4_cidr = netaddr.IPNetwork('10.10.0.0/24')
+ right_v6_cidr = netaddr.IPNetwork('2001:db8:0:1::/64')
+ cls.right_cidr = right_v6_cidr if cls.inner_ipv6 else right_v4_cidr
+
# LEFT
cls.router = cls.create_router(
data_utils.rand_name('left-router'),
@@ -123,14 +130,22 @@
external_network_id=CONF.network.public_network_id)
cls.network = cls.create_network(network_name='left-network')
ip_version = 6 if cls.inner_ipv6 else 4
- v4_cidr = netaddr.IPNetwork('10.20.0.0/24')
- v6_cidr = netaddr.IPNetwork('2001:db8:0:2::/64')
- cidr = v6_cidr if cls.inner_ipv6 else v4_cidr
- cls.subnet = cls.create_subnet(
- cls.network, ip_version=ip_version, cidr=cidr, name='left-subnet',
- **cls.extra_subnet_attributes)
- cls.create_router_interface(cls.router['id'], cls.subnet['id'])
+ is_distributed = cls.os_admin.network_client.show_router(
+ cls.router['id'])['router'].get('distributed')
+ cls.subnet = cls.create_subnet(
+ cls.network, ip_version=ip_version, cidr=cls.left_cidr,
+ name='left-subnet', **cls.extra_subnet_attributes)
+ cls.create_router_interface(cls.router['id'], cls.subnet['id'])
+ if is_distributed:
+ snat_port = cls.os_admin.network_client.list_ports(
+ device_id=cls.router['id'],
+ device_owner='network:router_centralized_snat')
+ snat_ip = cls._get_ip_on_subnet_for_port(
+ cls, snat_port['ports'][0], cls.subnet['id'])
+ cls.os_admin.network_client.update_subnet(
+ cls.subnet['id'], host_routes=[{"destination": cls.right_cidr,
+ "nexthop": snat_ip}])
# Gives an internal IPv4 subnet for floating IP to the left server,
# we use it to ssh into the left server.
if cls.inner_ipv6:
@@ -164,15 +179,23 @@
data_utils.rand_name('right-router'),
admin_state_up=True,
external_network_id=CONF.network.public_network_id)
+ is_distributed = cls.os_admin.network_client.show_router(
+ router['id'])['router'].get('distributed')
network = cls.create_network(network_name='right-network')
- v4_cidr = netaddr.IPNetwork('10.10.0.0/24')
- v6_cidr = netaddr.IPNetwork('2001:db8:0:1::/64')
- cidr = v6_cidr if cls.inner_ipv6 else v4_cidr
ip_version = 6 if cls.inner_ipv6 else 4
subnet = cls.create_subnet(
- network, ip_version=ip_version, cidr=cidr, name='right-subnet',
- **cls.extra_subnet_attributes)
+ network, ip_version=ip_version, cidr=cls.right_cidr,
+ name='right-subnet', **cls.extra_subnet_attributes)
cls.create_router_interface(router['id'], subnet['id'])
+ if is_distributed:
+ snat_port = cls.os_admin.network_client.list_ports(
+ device_id=router['id'],
+ device_owner='network:router_centralized_snat')
+ snat_ip = cls._get_ip_on_subnet_for_port(
+ cls, snat_port['ports'][0], subnet['id'])
+ cls.os_admin.network_client.update_subnet(
+ subnet['id'], host_routes=[{"destination": cls.left_cidr,
+ "nexthop": snat_ip}])
return network, subnet, router