Adding 'reset_group_status' rbac test
This PS adds 'reset_group_status' test for policy[0],
API ref is available here[1]
[0]https://github.com/openstack/cinder/blob/0cf910d4345c000e8c306b1cb2b2dd291975cf71/cinder/policies/group_actions.py#L42
[1]https://developer.openstack.org/api-ref/block-storage/v3/#reset-group-status
Closes-Bug: #1718527
Change-Id: Ia9e748c1733abd8abdb73c50491ff2f1198e3193
Depends-On: If123e20b10614e8e31ecaecf74e4beda6b575e40
diff --git a/patrole_tempest_plugin/tests/api/volume/test_groups_rbac.py b/patrole_tempest_plugin/tests/api/volume/test_groups_rbac.py
index e1c0910..86ea356 100644
--- a/patrole_tempest_plugin/tests/api/volume/test_groups_rbac.py
+++ b/patrole_tempest_plugin/tests/api/volume/test_groups_rbac.py
@@ -23,20 +23,17 @@
from patrole_tempest_plugin.tests.api.volume import rbac_base
-class GroupsV3RbacTest(rbac_base.BaseVolumeRbacTest):
- min_microversion = '3.14'
- max_microversion = 'latest'
-
+class BaseGroupRbacTest(rbac_base.BaseVolumeRbacTest):
credentials = ['primary', 'admin']
@classmethod
def setup_clients(cls):
- super(GroupsV3RbacTest, cls).setup_clients()
+ super(BaseGroupRbacTest, cls).setup_clients()
cls.admin_groups_client = cls.os_admin.groups_v3_client
cls.admin_volumes_client = cls.os_admin.volumes_v3_client
def setUp(self):
- super(GroupsV3RbacTest, self).setUp()
+ super(BaseGroupRbacTest, self).setUp()
self.volume_type_id = self.create_volume_type()['id']
self.group_type_id = self.create_group_type()['id']
@@ -65,6 +62,11 @@
self.admin_volumes_client.wait_for_resource_deletion(
vol['id'])
+
+class GroupsV3RbacTest(BaseGroupRbacTest):
+ min_microversion = '3.14'
+ max_microversion = 'latest'
+
@decorators.idempotent_id('43235328-66ae-424f-bc7f-f709c0ca268c')
@rbac_rule_validation.action(
service="cinder",
@@ -127,6 +129,27 @@
self._delete_group(group['id'])
+class GroupV320RbacTest(BaseGroupRbacTest):
+ _api_version = 3
+ min_microversion = '3.20'
+ max_microversion = 'latest'
+
+ @decorators.idempotent_id('b849c1d4-3215-4f9d-b1e6-0aeb4b2b65ac')
+ @rbac_rule_validation.action(
+ service="cinder",
+ rule="group:reset_status")
+ def test_reset_group_status(self):
+ group = self._create_group(ignore_notfound=False,
+ group_type=self.group_type_id,
+ volume_types=[self.volume_type_id])
+ status = 'available'
+ with self.rbac_utils.override_role(self):
+ self.groups_client.reset_group_status(group['id'],
+ status)
+ waiters.wait_for_volume_resource_status(
+ self.groups_client, group['id'], status)
+
+
class GroupTypesV3RbacTest(rbac_base.BaseVolumeRbacTest):
min_microversion = '3.11'
max_microversion = 'latest'