Merge "Remove dvr-multinode-scenario-queens job from the check queue"
diff --git a/neutron_tempest_plugin/api/test_ports.py b/neutron_tempest_plugin/api/test_ports.py
index 8867eee..c59ee83 100644
--- a/neutron_tempest_plugin/api/test_ports.py
+++ b/neutron_tempest_plugin/api/test_ports.py
@@ -136,28 +136,6 @@
         expected = [s['id'], s['id']]
         self.assertEqual(expected, subnets)
 
-    @decorators.idempotent_id('9700828d-86eb-4f21-9fa3-da487a2d77f2')
-    @utils.requires_ext(extension="uplink-status-propagation",
-                        service="network")
-    def test_create_port_with_propagate_uplink_status(self):
-        body = self.create_port(self.network, propagate_uplink_status=True)
-        self.assertTrue(body['propagate_uplink_status'])
-        body = self.client.list_ports(id=body['id'])['ports'][0]
-        self.assertTrue(body['propagate_uplink_status'])
-        body = self.client.show_port(body['id'])['port']
-        self.assertTrue(body['propagate_uplink_status'])
-
-    @decorators.idempotent_id('c396a880-0c7b-409d-a80b-800a3d09bdc4')
-    @utils.requires_ext(extension="uplink-status-propagation",
-                        service="network")
-    def test_create_port_without_propagate_uplink_status(self):
-        body = self.create_port(self.network)
-        self.assertFalse(body['propagate_uplink_status'])
-        body = self.client.list_ports(id=body['id'])['ports'][0]
-        self.assertFalse(body['propagate_uplink_status'])
-        body = self.client.show_port(body['id'])['port']
-        self.assertFalse(body['propagate_uplink_status'])
-
 
 class PortsSearchCriteriaTest(base.BaseSearchCriteriaTest):
 
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 6720c22..5cdd524 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
@@ -26,29 +26,8 @@
 CONF = config.CONF
 
 
-def _setup_client_args(auth_provider):
-    """Set up ServiceClient arguments using config settings. """
-    service = CONF.network.catalog_type or 'network'
-    region = CONF.network.region or 'regionOne'
-    endpoint_type = CONF.network.endpoint_type
-    build_interval = CONF.network.build_interval
-    build_timeout = CONF.network.build_timeout
-
-    # The disable_ssl appears in identity
-    disable_ssl_certificate_validation = (
-        CONF.identity.disable_ssl_certificate_validation)
-    ca_certs = CONF.identity.ca_certificates_file
-
-    # Trace in debug section
-    trace_requests = CONF.debug.trace_requests
-
-    return [auth_provider, service, region, endpoint_type,
-            build_interval, build_timeout,
-            disable_ssl_certificate_validation, ca_certs,
-            trace_requests]
-
-
 class BgpSpeakerTestJSONBase(base.BaseAdminNetworkTest):
+    credentials = ['primary', 'admin']
 
     default_bgp_speaker_args = {'local_as': '1234',
                                 'ip_version': 4,
@@ -65,18 +44,20 @@
         super(BgpSpeakerTestJSONBase, self).setUp()
 
     @classmethod
-    def _setup_bgp_admin_client(cls):
-        mgr = cls.get_client_manager(credential_type='admin')
-        auth_provider = mgr.auth_provider
-        client_args = _setup_client_args(auth_provider)
-        cls.bgp_adm_client = bgp_client.BgpSpeakerClientJSON(*client_args)
+    def setup_clients(cls):
+        super(BgpSpeakerTestJSONBase, cls).setup_clients()
+        cls.bgp_client = cls.os_primary.bgp_client
+        cls.bgp_adm_client = cls.os_admin.bgp_client
 
     @classmethod
-    def _setup_bgp_non_admin_client(cls):
-        mgr = cls.get_client_manager()
-        auth_provider = mgr.auth_provider
-        client_args = _setup_client_args(auth_provider)
-        cls.bgp_client = bgp_client.BgpSpeakerClientJSON(*client_args)
+    def get_client_manager(cls, credential_type=None, roles=None,
+                           force_new=None):
+        manager = super(BgpSpeakerTestJSONBase, cls).get_client_manager(
+            credential_type=credential_type,
+            roles=roles,
+            force_new=force_new
+        )
+        return bgp_client.Manager(manager.credentials)
 
     @classmethod
     def resource_setup(cls):
@@ -89,8 +70,6 @@
         cls.admin_floatingips = []
         cls.admin_routers = []
         cls.ext_net_id = CONF.network.public_network_id
-        cls._setup_bgp_admin_client()
-        cls._setup_bgp_non_admin_client()
 
     @classmethod
     def resource_cleanup(cls):
diff --git a/neutron_tempest_plugin/services/bgp/bgp_client.py b/neutron_tempest_plugin/services/bgp/bgp_client.py
index ae51427..7d46e29 100644
--- a/neutron_tempest_plugin/services/bgp/bgp_client.py
+++ b/neutron_tempest_plugin/services/bgp/bgp_client.py
@@ -15,6 +15,25 @@
 from oslo_serialization import jsonutils
 from tempest.lib.common import rest_client
 
+from neutron_tempest_plugin.api import clients as manager
+from neutron_tempest_plugin import config
+
+
+CONF = config.CONF
+
+
+class Manager(manager.Manager):
+    def __init__(self, credentials=None, service=None):
+        super(Manager, self).__init__(credentials, service)
+        self.bgp_client = BgpSpeakerClientJSON(
+            self.auth_provider,
+            CONF.network.catalog_type,
+            CONF.network.region or CONF.identity.region,
+            endpoint_type=CONF.network.endpoint_type,
+            build_interval=CONF.network.build_interval,
+            build_timeout=CONF.network.build_timeout,
+            **self.default_params)
+
 
 class BgpSpeakerClientJSON(rest_client.RestClient):