Test capabilites for srbac feature

Changed the test to keep convention without abstract methods
Also remvoed base.BaseVolumeTest inheritance, to isolate RBAC tests from
the normal tests while they are developed, even though this could be
revisited in the future the base classes for API tests in
cinder-tempest-plugin could be unified.

Change-Id: I7020487fcdb0a8e34be92a2b0f110b885cbeb339
Signed-off-by: Yosi Ben Shimon <ybenshim@redhat.com>
diff --git a/cinder_tempest_plugin/rbac/v3/base.py b/cinder_tempest_plugin/rbac/v3/base.py
index d1a11e5..fe68e97 100644
--- a/cinder_tempest_plugin/rbac/v3/base.py
+++ b/cinder_tempest_plugin/rbac/v3/base.py
@@ -11,11 +11,16 @@
 #    under the License.
 
 from tempest import config
+from tempest.lib.common import api_microversion_fixture
+from tempest.lib.common import api_version_utils
+from tempest import test
 
 CONF = config.CONF
 
 
-class VolumeV3RbacBaseTests(object):
+class VolumeV3RbacBaseTests(
+    api_version_utils.BaseMicroversionTest, test.BaseTestCase
+):
 
     identity_version = 'v3'
 
@@ -28,6 +33,31 @@
                 "skipping RBAC tests. To enable these tests set "
                 "`tempest.conf [enforce_scope] cinder=True`."
             )
+        if not CONF.service_available.cinder:
+            skip_msg = ("%s skipped as Cinder is not available" % cls.__name__)
+            raise cls.skipException(skip_msg)
+
+        api_version_utils.check_skip_with_microversion(
+            cls.min_microversion, cls.max_microversion,
+            CONF.volume.min_microversion, CONF.volume.max_microversion)
+
+    @classmethod
+    def setup_credentials(cls):
+        cls.set_network_resources()
+        super(VolumeV3RbacBaseTests, cls).setup_credentials()
+
+    def setUp(self):
+        super(VolumeV3RbacBaseTests, self).setUp()
+        self.useFixture(api_microversion_fixture.APIMicroversionFixture(
+            volume_microversion=self.request_microversion))
+
+    @classmethod
+    def resource_setup(cls):
+        super(VolumeV3RbacBaseTests, cls).resource_setup()
+        cls.request_microversion = (
+            api_version_utils.select_request_microversion(
+                cls.min_microversion,
+                CONF.volume.min_microversion))
 
     def do_request(self, method, expected_status=200, client=None, **payload):
         if not client: