Merge "Unify check for TF backend" into mcp/epoxy
diff --git a/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py b/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py
index 1d089f6..551cc12 100644
--- a/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py
+++ b/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py
@@ -229,6 +229,25 @@
def test_get_advertised_routes_null_address_scope(self):
self.useFixture(fixtures.LockFixture('gateway_network_binding'))
bgp_speaker = self.create_bgp_speaker(**self.default_bgp_speaker_args)
+
+ addr_scope1 = self.create_address_scope(
+ 'get-advertised-routes-null-address-scope',
+ ip_version=4)
+ ext_net = self.create_shared_network(**{'router:external': True})
+ ext_subnetpool = self.create_subnetpool(
+ 'get-advertised-routes-null-address-pool-ext',
+ is_admin=True,
+ default_prefixlen=24,
+ address_scope_id=addr_scope1['id'],
+ prefixes=['8.0.0.0/8'])
+ self.create_subnet({'id': ext_net['id']},
+ cidr=netaddr.IPNetwork('8.1.0.0/24'),
+ ip_version=4,
+ client=self.admin_client,
+ subnetpool_id=ext_subnetpool['id'])
+ ext_gw_info = {'network_id': ext_net['id']}
+ router = self.create_router(ext_gw_info)
+ self.admin_routers.append(router)
bgp_speaker_id = bgp_speaker['id']
self.bgp_adm_client.add_bgp_gateway_network(bgp_speaker_id,
self.ext_net_id)
@@ -238,6 +257,21 @@
@decorators.idempotent_id('cae9cdb1-ad65-423c-9604-d4cd0073616e')
def test_get_advertised_routes_floating_ips(self):
self.useFixture(fixtures.LockFixture('gateway_network_binding'))
+ addr_scope1 = self.create_address_scope(
+ 'get-advertised-routes-floating-ip-scope',
+ ip_version=4)
+ ext_net = self.create_shared_network(**{'router:external': True})
+ ext_subnetpool = self.create_subnetpool(
+ 'get-advertised-routes-floating-ip-ext',
+ is_admin=True,
+ default_prefixlen=24,
+ address_scope_id=addr_scope1['id'],
+ prefixes=['8.0.0.0/8'])
+ self.create_subnet({'id': ext_net['id']},
+ cidr=netaddr.IPNetwork('8.2.0.0/24'),
+ ip_version=4,
+ client=self.admin_client,
+ subnetpool_id=ext_subnetpool['id'])
bgp_speaker = self.create_bgp_speaker(**self.default_bgp_speaker_args)
bgp_speaker_id = bgp_speaker['id']
self.bgp_adm_client.add_bgp_gateway_network(bgp_speaker_id,
diff --git a/neutron_tempest_plugin/scenario/test_connectivity.py b/neutron_tempest_plugin/scenario/test_connectivity.py
index a6fc893..be0fc35 100644
--- a/neutron_tempest_plugin/scenario/test_connectivity.py
+++ b/neutron_tempest_plugin/scenario/test_connectivity.py
@@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+import time
+
import netaddr
from neutron_lib import constants
@@ -105,6 +107,10 @@
self.create_router_interface(ap1_rt['id'], ap1_subnet['id'])
self.create_router_interface(ap2_rt['id'], ap2_subnet['id'])
+ # NOTE(ohryhorov): the sleep below is added to avoid the situation
+ # when a port is not in active state yet but static route is added.
+ time.sleep(15)
+
self.client.update_router(
ap1_rt['id'],
routes=[{"destination": ap2_subnet['cidr'],
diff --git a/neutron_tempest_plugin/scenario/test_security_groups.py b/neutron_tempest_plugin/scenario/test_security_groups.py
index dc0f5ef..21453a0 100644
--- a/neutron_tempest_plugin/scenario/test_security_groups.py
+++ b/neutron_tempest_plugin/scenario/test_security_groups.py
@@ -20,6 +20,7 @@
from oslo_log import log
from tempest.common import utils as tempest_utils
from tempest.common import waiters
+from tempest import config as tempestconf
from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils import test_utils
from tempest.lib import decorators
@@ -605,7 +606,7 @@
direction=constants.INGRESS_DIRECTION,
remote_group_id=secgroups[1]['id'])
- self.create_secgroup_rules(
+ secgroup_rules = self.create_secgroup_rules(
rule_list, secgroup_id=secgroups[1]['id'])
# verify that conections are working
@@ -615,9 +616,19 @@
self._test_connection_and_log(con)
# list the tcp rule id by SG id and port-range
- sg_rule_id = self.os_primary.network_client.list_security_group_rules(
- security_group_id=secgroups[1]['id'],
- port_range_min=80)['security_group_rules'][0]['id']
+ # (gzimin): due to TungstenFabric lack of subnet filtering,
+ # secgroup rule to delete should be taken directly
+ # from create request.
+ if tempestconf.is_tungstenfabric_backend_enabled():
+ for rule in secgroup_rules:
+ if rule['port_range_min'] == 80:
+ sg_rule_id = rule['id']
+ break
+ else:
+ sg_rule_id = \
+ self.os_primary.network_client.list_security_group_rules(
+ security_group_id=secgroups[1]['id'],
+ port_range_min=80)['security_group_rules'][0]['id']
# delete the tcp rule from the security group
self.client.delete_security_group_rule(sg_rule_id)