Merge "Minimize the tests footprint in multinode job"
diff --git a/tempest/api/image/v2/test_images.py b/tempest/api/image/v2/test_images.py
index e8734e0..1d05f13 100644
--- a/tempest/api/image/v2/test_images.py
+++ b/tempest/api/image/v2/test_images.py
@@ -14,7 +14,6 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-import contextlib
 import io
 import random
 import time
@@ -29,19 +28,7 @@
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
-
-
-@contextlib.contextmanager
-def retry_bad_request(fn):
-    retries = 3
-    for i in range(retries):
-        try:
-            yield
-        except lib_exc.BadRequest:
-            if i < retries:
-                time.sleep(1)
-            else:
-                raise
+BAD_REQUEST_RETRIES = 3
 
 
 class ImportImagesTest(base.BaseV2ImageTest):
@@ -837,9 +824,16 @@
         # HTTP, it will return BadRequest. Because this can be transient in
         # CI, we try this a few times before we agree that it has failed
         # for a reason worthy of failing the test.
-        with retry_bad_request():
-            self.client.update_image(image['id'], [
-                dict(add='/locations/-', value=new_loc)])
+        for i in range(BAD_REQUEST_RETRIES):
+            try:
+                self.client.update_image(image['id'], [
+                    dict(add='/locations/-', value=new_loc)])
+                break
+            except lib_exc.BadRequest:
+                if i + 1 == BAD_REQUEST_RETRIES:
+                    raise
+                else:
+                    time.sleep(1)
 
         # The image should now be active, with one location that looks
         # like we expect
@@ -874,9 +868,16 @@
         # HTTP, it will return BadRequest. Because this can be transient in
         # CI, we try this a few times before we agree that it has failed
         # for a reason worthy of failing the test.
-        with retry_bad_request():
-            self.client.update_image(image['id'], [
-                dict(add='/locations/-', value=new_loc)])
+        for i in range(BAD_REQUEST_RETRIES):
+            try:
+                self.client.update_image(image['id'], [
+                    dict(add='/locations/-', value=new_loc)])
+                break
+            except lib_exc.BadRequest:
+                if i + 1 == BAD_REQUEST_RETRIES:
+                    raise
+                else:
+                    time.sleep(1)
 
         # The image should now have two locations and the last one
         # (locations are ordered) should have the new URL.
diff --git a/zuul.d/integrated-gate.yaml b/zuul.d/integrated-gate.yaml
index a67f6b4..c44a2b2 100644
--- a/zuul.d/integrated-gate.yaml
+++ b/zuul.d/integrated-gate.yaml
@@ -375,6 +375,7 @@
         CINDER_ENFORCE_SCOPE: true
         GLANCE_ENFORCE_SCOPE: true
         NEUTRON_ENFORCE_SCOPE: true
+        PLACEMENT_ENFORCE_SCOPE: true
 
 - project-template:
     name: integrated-gate-networking
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index 126119b..e41a9f7 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -147,6 +147,8 @@
     experimental:
       jobs:
         - nova-multi-cell
+        - nova-ceph-multistore:
+            irrelevant-files: *tempest-irrelevant-files
         - tempest-with-latest-microversion
         - tempest-stestr-master
         - tempest-cinder-v2-api: