diff --git a/.zuul.yaml b/.zuul.yaml
index 9f47060..4e1dbba 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -73,6 +73,8 @@
     vars:
       devstack_localrc:
         RBAC_TEST_ROLES: admin
+      # https://storyboard.openstack.org/#!/story/2009048
+      tempest_exclude_regex: patrole_tempest_plugin.tests.api.volume.test_volume_actions_rbac.VolumesActionsV3RbacTest.test_force_detach_volume_from_instance
 
 - job:
     name: patrole-member
@@ -83,6 +85,8 @@
     vars:
       devstack_localrc:
         RBAC_TEST_ROLES: member
+      # https://storyboard.openstack.org/#!/story/2009216
+      tempest_exclude_regex: patrole_tempest_plugin.tests.api.volume.test_volume_types_extra_specs_rbac.VolumeTypesExtraSpecsRbacTest.test_show_volume_type_extra_specs
 
 - job:
     name: patrole-reader
@@ -93,6 +97,8 @@
     vars:
       devstack_localrc:
         RBAC_TEST_ROLES: reader
+      # https://storyboard.openstack.org/#!/story/2009216
+      tempest_exclude_regex: patrole_tempest_plugin.tests.api.volume.test_volume_types_extra_specs_rbac.VolumeTypesExtraSpecsRbacTest.test_show_volume_type_extra_specs
 
 - job:
     name: patrole-member-victoria
@@ -104,6 +110,9 @@
     parent: patrole-member
     nodeset: openstack-single-node-bionic
     override-checkout: stable/ussuri
+    vars:
+      # https://storyboard.openstack.org/#!/story/2009048
+      tempest_exclude_regex: patrole_tempest_plugin.tests.api.volume.test_volume_actions_rbac.VolumesActionsV3RbacTest.test_force_detach_volume_from_instance
 
 - job:
     name: patrole-member-train
diff --git a/patrole_tempest_plugin/tests/api/image/test_images_member_rbac.py b/patrole_tempest_plugin/tests/api/image/test_images_member_rbac.py
index 9450676..18515e2 100644
--- a/patrole_tempest_plugin/tests/api/image/test_images_member_rbac.py
+++ b/patrole_tempest_plugin/tests/api/image/test_images_member_rbac.py
@@ -34,6 +34,7 @@
         super(ImagesMemberRbacTest, cls).setup_clients()
         cls.image_client = cls.os_primary.image_client_v2
         cls.image_member_client = cls.os_primary.image_member_client_v2
+        cls.alt_image_member_client = cls.os_alt.image_member_client_v2
 
     @rbac_rule_validation.action(service="glance",
                                  rules=["add_member"])
@@ -99,15 +100,12 @@
         image_id = self.create_image(visibility='shared')['id']
         self.image_member_client.create_image_member(
             image_id,
-            member=self.tenant_id)
-        self.image_member_client.update_image_member(
-            image_id, self.tenant_id,
-            status='accepted')
+            member=self.alt_tenant_id)
         # Toggle role and update member
         with self.override_role():
-            self.image_member_client.update_image_member(
-                image_id, self.tenant_id,
-                status='pending')
+            self.alt_image_member_client.update_image_member(
+                image_id, self.alt_tenant_id,
+                status='accepted')
 
     @rbac_rule_validation.action(service="glance",
                                  rules=["get_members"])
diff --git a/patrole_tempest_plugin/tests/api/network/test_networks_rbac.py b/patrole_tempest_plugin/tests/api/network/test_networks_rbac.py
index 56ce83b..a024b2c 100644
--- a/patrole_tempest_plugin/tests/api/network/test_networks_rbac.py
+++ b/patrole_tempest_plugin/tests/api/network/test_networks_rbac.py
@@ -189,7 +189,8 @@
         RBAC test for the neutron create_network:provider:network_type policy
         """
         with self.override_role():
-            self._create_network(provider_network_type='vxlan')
+            self._create_network(provider_physical_network='public',
+                                 provider_network_type='vlan')
 
     @utils.requires_ext(extension='provider', service='network')
     @rbac_rule_validation.action(
@@ -204,7 +205,8 @@
         RBAC test for the neutron create_network:provider:segmentation_id
         """
         with self.override_role():
-            self._create_network(provider_network_type='vxlan',
+            self._create_network(provider_physical_network='public',
+                                 provider_network_type='vlan',
                                  provider_segmentation_id=200)
 
     @rbac_rule_validation.action(service="neutron",
@@ -274,7 +276,7 @@
         try:
             with self.override_role():
                 self._update_network(self.network['id'],
-                                     provider_network_type='vxlan')
+                                     provider_network_type='vlan')
         except lib_exc.BadRequest as exc:
             # Per the api documentation, most plugins don't support updating
             # provider attributes
diff --git a/patrole_tempest_plugin/tests/api/volume/test_volume_actions_rbac.py b/patrole_tempest_plugin/tests/api/volume/test_volume_actions_rbac.py
index 497c8ce..9205b58 100644
--- a/patrole_tempest_plugin/tests/api/volume/test_volume_actions_rbac.py
+++ b/patrole_tempest_plugin/tests/api/volume/test_volume_actions_rbac.py
@@ -208,7 +208,8 @@
 
         # Reset volume's status to error.
         self.volumes_client.reset_volume_status(volume['id'], status='error')
-
+        waiters.wait_for_volume_resource_status(self.volumes_client,
+                                                volume['id'], 'error')
         with self.override_role():
             self.volumes_client.force_detach_volume(
                 volume['id'], connector=None,
diff --git a/patrole_tempest_plugin/tests/api/volume/test_volume_types_extra_specs_rbac.py b/patrole_tempest_plugin/tests/api/volume/test_volume_types_extra_specs_rbac.py
index 0d6dc05..f4e625f 100644
--- a/patrole_tempest_plugin/tests/api/volume/test_volume_types_extra_specs_rbac.py
+++ b/patrole_tempest_plugin/tests/api/volume/test_volume_types_extra_specs_rbac.py
@@ -35,7 +35,10 @@
     def resource_setup(cls):
         super(VolumeTypesExtraSpecsRbacTest, cls).resource_setup()
         cls.vol_type = cls.create_volume_type()
-        cls.spec_key = data_utils.rand_name(cls.__name__ + '-Spec')
+
+    def setUp(self):
+        super(VolumeTypesExtraSpecsRbacTest, self).setUp()
+        self.spec_key = data_utils.rand_name('-VolumeTypesExtraSpec')
 
     def _create_volume_type_extra_specs(self, ignore_not_found=False):
         extra_specs = {self.spec_key: "val1"}
