Merge "Add tempest plugin testing in stable release testing"
diff --git a/tempest/api/compute/floating_ips/base.py b/tempest/api/compute/floating_ips/base.py
index d6c302d..d39e955 100644
--- a/tempest/api/compute/floating_ips/base.py
+++ b/tempest/api/compute/floating_ips/base.py
@@ -41,3 +41,8 @@
     def setup_clients(cls):
         super(BaseFloatingIPsTest, cls).setup_clients()
         cls.client = cls.floating_ips_client
+        if CONF.enforce_scope.nova and hasattr(cls, 'os_project_reader'):
+            cls.reader_floating_ips_client = (
+                cls.os_project_reader.compute_floating_ips_client)
+        else:
+            cls.reader_floating_ips_client = cls.client
diff --git a/tempest/api/compute/floating_ips/test_floating_ips_actions.py b/tempest/api/compute/floating_ips/test_floating_ips_actions.py
index 6097bbc..8d569c3 100644
--- a/tempest/api/compute/floating_ips/test_floating_ips_actions.py
+++ b/tempest/api/compute/floating_ips/test_floating_ips_actions.py
@@ -37,10 +37,11 @@
         floating_ip_id_allocated = body['id']
         self.addCleanup(self.client.delete_floating_ip,
                         floating_ip_id_allocated)
-        floating_ip_details = self.client.show_floating_ip(
+        floating_ip_details = self.reader_floating_ips_client.show_floating_ip(
             floating_ip_id_allocated)['floating_ip']
         # Checking if the details of allocated IP is in list of floating IP
-        body = self.client.list_floating_ips()['floating_ips']
+        body = self.reader_floating_ips_client.list_floating_ips()[
+            'floating_ips']
         self.assertIn(floating_ip_details, body)
 
     @decorators.idempotent_id('de45e989-b5ca-4a9b-916b-04a52e7bbb8b')
@@ -87,8 +88,8 @@
             self.server_id)
 
         # Check instance_id in the floating_ip body
-        body = (self.client.show_floating_ip(self.floating_ip_id)
-                ['floating_ip'])
+        body = (self.reader_floating_ips_client.show_floating_ip(
+                self.floating_ip_id)['floating_ip'])
         self.assertEqual(self.server_id, body['instance_id'])
 
         # Disassociation of floating IP that was associated in this method
diff --git a/tempest/api/compute/floating_ips/test_floating_ips_actions_negative.py b/tempest/api/compute/floating_ips/test_floating_ips_actions_negative.py
index e99e218..4e98cbe 100644
--- a/tempest/api/compute/floating_ips/test_floating_ips_actions_negative.py
+++ b/tempest/api/compute/floating_ips/test_floating_ips_actions_negative.py
@@ -34,7 +34,8 @@
         super(FloatingIPsNegativeTestJSON, cls).resource_setup()
 
         # Generating a nonexistent floatingIP id
-        body = cls.client.list_floating_ips()['floating_ips']
+        body = cls.reader_floating_ips_client.list_floating_ips()[
+            'floating_ips']
         floating_ip_ids = [floating_ip['id'] for floating_ip in body]
         while True:
             if CONF.service_available.neutron:
diff --git a/tempest/api/compute/floating_ips/test_list_floating_ips.py b/tempest/api/compute/floating_ips/test_list_floating_ips.py
index fcbea2f..3eecab3 100644
--- a/tempest/api/compute/floating_ips/test_list_floating_ips.py
+++ b/tempest/api/compute/floating_ips/test_list_floating_ips.py
@@ -39,7 +39,8 @@
     @decorators.idempotent_id('16db31c3-fb85-40c9-bbe2-8cf7b67ff99f')
     def test_list_floating_ips(self):
         """Test listing floating ips"""
-        body = self.client.list_floating_ips()['floating_ips']
+        body = self.reader_floating_ips_client.list_floating_ips()[
+            'floating_ips']
         floating_ips = body
         self.assertNotEmpty(floating_ips,
                             "Expected floating IPs. Got zero.")
@@ -58,7 +59,8 @@
         floating_ip_instance_id = body['instance_id']
         floating_ip_ip = body['ip']
         floating_ip_fixed_ip = body['fixed_ip']
-        body = self.client.show_floating_ip(floating_ip_id)['floating_ip']
+        body = self.reader_floating_ips_client.show_floating_ip(
+            floating_ip_id)['floating_ip']
         # Comparing the details of floating IP
         self.assertEqual(floating_ip_instance_id,
                          body['instance_id'])
diff --git a/tempest/api/compute/floating_ips/test_list_floating_ips_negative.py b/tempest/api/compute/floating_ips/test_list_floating_ips_negative.py
index aa0320d..3919147 100644
--- a/tempest/api/compute/floating_ips/test_list_floating_ips_negative.py
+++ b/tempest/api/compute/floating_ips/test_list_floating_ips_negative.py
@@ -41,4 +41,5 @@
         else:
             non_exist_id = data_utils.rand_int_id(start=999)
         self.assertRaises(lib_exc.NotFound,
-                          self.client.show_floating_ip, non_exist_id)
+                          self.reader_floating_ips_client.show_floating_ip,
+                          non_exist_id)
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index b5f5320..35ce263 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -121,7 +121,7 @@
         - tempest-full-test-account-py3:
             voting: false
             irrelevant-files: *tempest-irrelevant-files
-        - ironic-tempest-bios-ipmi-direct:
+        - ironic-tempest-bios-ipmi-autodetect:
             irrelevant-files: *tempest-irrelevant-files
         - openstack-tox-bashate:
             irrelevant-files: *tempest-irrelevant-files-2
@@ -154,7 +154,7 @@
             irrelevant-files: *tempest-irrelevant-files
         - nova-live-migration:
             irrelevant-files: *tempest-irrelevant-files
-        - ironic-tempest-bios-ipmi-direct:
+        - ironic-tempest-bios-ipmi-autodetect:
             irrelevant-files: *tempest-irrelevant-files
     experimental:
       jobs: