Merge "[stable/{train,stein}] Use old guest image for these branches"
diff --git a/neutron_tempest_plugin/config.py b/neutron_tempest_plugin/config.py
index 36fec30..a40fb0d 100644
--- a/neutron_tempest_plugin/config.py
+++ b/neutron_tempest_plugin/config.py
@@ -141,6 +141,12 @@
                      'If True, multicast test(s) will assert that multicast '
                      'traffic is not being flooded to all ports. Defaults '
                      'to False.'),
+    # Option for scheduling BGP speakers to agents explicitly
+    # The default is false with automatic scheduling on creation
+    # happening with the default scheduler
+    cfg.BoolOpt('bgp_schedule_speakers_to_agents',
+                default=False,
+                help='Schedule BGP speakers to agents explicitly.'),
 ]
 
 # TODO(amuller): Redo configuration options registration as part of the planned
diff --git a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py
index b4be57b..c7023af 100644
--- a/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py
+++ b/neutron_tempest_plugin/neutron_dynamic_routing/scenario/base.py
@@ -25,9 +25,9 @@
 from tempest import config
 
 from neutron_tempest_plugin.api import base
+from neutron_tempest_plugin import config as nconfig
 from neutron_tempest_plugin.services.bgp import bgp_client
 
-
 CONF = config.CONF
 
 Scope = collections.namedtuple('Scope', 'name')
@@ -149,6 +149,9 @@
         if auto_delete:
             self.addCleanup(self.bgp_adm_client.delete_bgp_speaker,
                             bgp_speaker_id)
+        if nconfig.CONF.neutron_plugin_options.bgp_schedule_speakers_to_agents:
+            self.add_bgp_speaker_to_dragent(self.get_dragent_id(),
+                                            bgp_speaker_id)
         return bgp_speaker['bgp_speaker']
 
     def delete_bgp_speaker(self, id):
diff --git a/zuul.d/master_jobs.yaml b/zuul.d/master_jobs.yaml
index 68c7209..b167689 100644
--- a/zuul.d/master_jobs.yaml
+++ b/zuul.d/master_jobs.yaml
@@ -380,7 +380,7 @@
 - job:
     name: neutron-tempest-plugin-scenario-ovn
     parent: neutron-tempest-plugin-scenario
-    timeout: 10000
+    timeout: 10800
     vars:
       network_api_extensions: *api_extensions
       network_api_extensions_ovn:
diff --git a/zuul.d/stein_jobs.yaml b/zuul.d/stein_jobs.yaml
index e38b028..f505a90 100644
--- a/zuul.d/stein_jobs.yaml
+++ b/zuul.d/stein_jobs.yaml
@@ -96,9 +96,14 @@
         - dvr
       network_available_features: &available_features
         -
-      # NOTE(bcafarel): remove port forwarding test as pinned version
-      # used in this EM branch is unstable
-      tempest_black_regex: "(^neutron_tempest_plugin.scenario.test_port_forwardings.PortForwardingTestJSON.test_port_forwarding_to_2_servers)"
+      # NOTE(bcafarel): filtering out unstable tests or tests with known
+      # issues in the used pinned version for this EM branch
+      tempest_black_regex: &stein_tempest_exclude "\
+          (^neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest.test_connectivity_min_max_mtu)|\
+          (^neutron_tempest_plugin.scenario.test_port_forwardings.PortForwardingTestJSON.test_port_forwarding_to_2_servers)|\
+          (^neutron_tempest_plugin.scenario.test_trunk.TrunkTest.test_parent_port_connectivity_after_trunk_deleted_lb)|\
+          (^neutron_tempest_plugin.scenario.test_trunk.TrunkTest.test_subport_connectivity)|\
+          (^neutron_tempest_plugin.scenario.test_vlan_transparency.VlanTransparencyTest)"
       devstack_localrc:
         NEUTRON_DEPLOY_MOD_WSGI: false
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}"
@@ -131,9 +136,7 @@
       branch_override: stable/stein
       network_api_extensions: *api_extensions
       network_available_features: *available_features
-      # NOTE(bcafarel): remove port forwarding test as pinned version
-      # used in this EM branch is unstable
-      tempest_black_regex: "(^neutron_tempest_plugin.scenario.test_port_forwardings.PortForwardingTestJSON.test_port_forwarding_to_2_servers)"
+      tempest_black_regex: *stein_tempest_exclude
       devstack_localrc:
         NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
         # NOTE(bcafarel) guestmount binary not available on host OS
@@ -181,13 +184,7 @@
         q-metering: true
       network_api_extensions: *api_extensions
       network_available_features: *available_features
-      # TODO(slaweq): remove trunks subport_connectivity test from blacklist
-      # when bug https://bugs.launchpad.net/neutron/+bug/1838760 will be fixed
-      # NOTE(bcafarel): remove port forwarding test as pinned version
-      # used in this EM branch is unstable
-      tempest_black_regex: "\
-          (^neutron_tempest_plugin.scenario.test_trunk.TrunkTest.test_subport_connectivity)|\
-          (^neutron_tempest_plugin.scenario.test_port_forwardings.PortForwardingTestJSON.test_port_forwarding_to_2_servers)"
+      tempest_black_regex: *stein_tempest_exclude
       devstack_localrc:
         Q_AGENT: openvswitch
         Q_ML2_TENANT_NETWORK_TYPE: vxlan
@@ -277,9 +274,7 @@
       network_api_extensions_linuxbridge:
         - vlan-transparent
       network_available_features: *available_features
-      # TODO(eolivare): remove VLAN Transparency tests from blacklist
-      # when bug https://bugs.launchpad.net/neutron/+bug/1907548 will be fixed
-      tempest_black_regex: "(^neutron_tempest_plugin.scenario.test_vlan_transparency.VlanTransparencyTest)"
+      tempest_black_regex: *stein_tempest_exclude
       devstack_localrc:
         Q_AGENT: linuxbridge
         NETWORK_API_EXTENSIONS: "{{ (network_api_extensions + network_api_extensions_linuxbridge) | join(',') }}"