diff --git a/patrole_tempest_plugin/tests/api/compute/rbac_base.py b/patrole_tempest_plugin/tests/api/compute/rbac_base.py
index bab193e..6246446 100644
--- a/patrole_tempest_plugin/tests/api/compute/rbac_base.py
+++ b/patrole_tempest_plugin/tests/api/compute/rbac_base.py
@@ -39,25 +39,6 @@
         cls.tenant_usages_client = cls.os_primary.tenant_usages_client
 
     @classmethod
-    def resource_setup(cls):
-        super(BaseV2ComputeRbacTest, cls).resource_setup()
-        cls.flavors = []
-
-    @classmethod
-    def resource_cleanup(cls):
-        cls.clear_flavors()
-        super(BaseV2ComputeRbacTest, cls).resource_cleanup()
-
-    @classmethod
-    def clear_flavors(cls):
-        for flavor in cls.flavors:
-            test_utils.call_and_ignore_notfound_exc(
-                cls.flavors_client.delete_flavor, flavor['id'])
-        for flavor in cls.flavors:
-            test_utils.call_and_ignore_notfound_exc(
-                cls.flavors_client.wait_for_resource_deletion, flavor['id'])
-
-    @classmethod
     def create_flavor(cls, **kwargs):
         flavor_kwargs = {
             "name": data_utils.rand_name(cls.__name__ + '-flavor'),
@@ -69,5 +50,9 @@
         if kwargs:
             flavor_kwargs.update(kwargs)
         flavor = cls.flavors_client.create_flavor(**flavor_kwargs)['flavor']
-        cls.flavors.append(flavor)
+        cls.addClassResourceCleanup(
+            cls.flavors_client.wait_for_resource_deletion, flavor['id'])
+        cls.addClassResourceCleanup(
+            test_utils.call_and_ignore_notfound_exc,
+            cls.flavors_client.delete_flavor, flavor['id'])
         return flavor
diff --git a/patrole_tempest_plugin/tests/api/compute/test_flavor_extra_specs_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_flavor_extra_specs_rbac.py
index 031d8ad..1cced71 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_flavor_extra_specs_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_flavor_extra_specs_rbac.py
@@ -36,12 +36,6 @@
         super(FlavorExtraSpecsRbacTest, cls).resource_setup()
         cls.flavor = cls.create_flavor()
 
-    @classmethod
-    def resource_cleanup(cls):
-        cls.flavors_client.delete_flavor(cls.flavor['id'])
-        cls.flavors_client.wait_for_resource_deletion(cls.flavor['id'])
-        super(FlavorExtraSpecsRbacTest, cls).resource_cleanup()
-
     def _set_flavor_extra_spec(self):
         rand_key = data_utils.rand_name(self.__class__.__name__ + '-key')
         rand_val = data_utils.rand_name(self.__class__.__name__ + '-val')
diff --git a/patrole_tempest_plugin/tests/api/compute/test_images_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_images_rbac.py
index cdabf6f..e315623 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_images_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_images_rbac.py
@@ -63,11 +63,11 @@
         super(ImagesRbacTest, cls).resource_setup()
         cls.image = cls.glance_image_client.create_image(
             name=data_utils.rand_name(cls.__name__ + '-image'))
-
-    @classmethod
-    def resource_cleanup(cls):
-        cls.glance_image_client.delete_image(cls.image['id'])
-        super(ImagesRbacTest, cls).resource_cleanup()
+        cls.addClassResourceCleanup(
+            cls.glance_image_client.wait_for_resource_deletion,
+            cls.image['id'])
+        cls.addClassResourceCleanup(
+            cls.glance_image_client.delete_image, cls.image['id'])
 
     @decorators.idempotent_id('b861f302-b72b-4055-81db-c62ff30b136d')
     @rbac_rule_validation.action(
diff --git a/patrole_tempest_plugin/tests/api/compute/test_quota_class_sets_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_quota_class_sets_rbac.py
index a7d8997..97650ab 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_quota_class_sets_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_quota_class_sets_rbac.py
@@ -51,12 +51,8 @@
         project_name = data_utils.rand_name(cls.__name__ + '-Project')
         cls.project_id = cls.identity_projects_client.create_project(
             project_name)['project']['id']
-
-    @classmethod
-    def resource_cleanup(cls):
-        cls.identity_projects_client.delete_project(
-            cls.project_id)
-        super(QuotaClassesRbacTest, cls).resource_cleanup()
+        cls.addClassResourceCleanup(
+            cls.identity_projects_client.delete_project, cls.project_id)
 
     @decorators.idempotent_id('c10198ed-9df2-440e-a49b-367dadc6de94')
     @rbac_rule_validation.action(
