Merge "Add Pause/Unpause policy tests"
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_auth_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_auth_rbac.py
index bc096ce..6a26f2b 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_auth_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_auth_rbac.py
@@ -26,8 +26,8 @@
https://github.com/openstack/keystone/blob/master/keystone/common/policies/auth.py
"""
- # TODO(felipemonteiro): Add tests for identity:get_auth_catalog and
- # identity:get_auth_domains once the endpoints are implemented in Tempest's
+ # TODO(felipemonteiro): Add tests for identity:get_auth_catalog
+ # once the endpoints are implemented in Tempest's
# identity v3 client.
@decorators.idempotent_id('2a9fbf7f-6feb-4161-ae4b-faf7d6421b1a')
@@ -36,3 +36,10 @@
def test_list_auth_projects(self):
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
self.identity_client.list_auth_projects()['projects']
+
+ @decorators.idempotent_id('6a40af0d-7265-4657-b6b2-87a2828e263e')
+ @rbac_rule_validation.action(service="keystone",
+ rule="identity:get_auth_domains")
+ def test_list_auth_domain(self):
+ self.rbac_utils.switch_role(self, toggle_rbac_role=True)
+ self.identity_client.list_auth_domains()
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_trusts_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_trusts_rbac.py
index 82feff9..3639520 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_trusts_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_trusts_rbac.py
@@ -127,3 +127,11 @@
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
self.trusts_client.show_trust_role(
self.trust['id'], self.delegated_role_id)['role']
+
+ @decorators.idempotent_id('0184e0fb-641e-4b52-ab73-81c1ce6ca5c1')
+ @rbac_rule_validation.action(
+ service="keystone",
+ rule="identity:get_trust")
+ def test_show_trust(self):
+ self.rbac_utils.switch_role(self, toggle_rbac_role=True)
+ self.trusts_client.show_trust(self.trust['id'])
diff --git a/patrole_tempest_plugin/tests/api/volume/test_snapshots_metadata_rbac.py b/patrole_tempest_plugin/tests/api/volume/test_snapshots_metadata_rbac.py
index 81cd854..3737212 100644
--- a/patrole_tempest_plugin/tests/api/volume/test_snapshots_metadata_rbac.py
+++ b/patrole_tempest_plugin/tests/api/volume/test_snapshots_metadata_rbac.py
@@ -80,6 +80,45 @@
self.snapshots_client.show_snapshot_metadata(
self.snapshot_id)['metadata']
+ @decorators.idempotent_id('7ea597f6-c544-4b10-aab0-ff68f595fb06')
+ @rbac_rule_validation.action(service="cinder",
+ rule="volume:update_snapshot_metadata")
+ def test_update_snapshot_metadata(self):
+ self._create_test_snapshot_metadata()
+ self.rbac_utils.switch_role(self, toggle_rbac_role=True)
+ update = {"key3": "value3_update",
+ "key4": "value4"}
+ self.snapshots_client.update_snapshot_metadata(
+ self.snapshot['id'], metadata=update)
+
+ @decorators.idempotent_id('93068d02-0131-4dd3-af16-fc40d7128d93')
+ @rbac_rule_validation.action(service="cinder",
+ rule="volume:get_snapshot_metadata")
+ def test_show_snapshot_metadata_item(self):
+ self._create_test_snapshot_metadata()
+ self.rbac_utils.switch_role(self, toggle_rbac_role=True)
+ self.snapshots_client.show_snapshot_metadata_item(
+ self.snapshot['id'], "key3")['meta']
+
+ @decorators.idempotent_id('1f8f43e7-da31-4128-bb3c-73fc548650e3')
+ @rbac_rule_validation.action(service="cinder",
+ rule="volume:update_snapshot_metadata")
+ def test_update_snapshot_metadata_item(self):
+ update_item = {"key3": "value3_update"}
+ self._create_test_snapshot_metadata()
+ self.rbac_utils.switch_role(self, toggle_rbac_role=True)
+ self.snapshots_client.update_snapshot_metadata_item(
+ self.snapshot['id'], "key3", meta=update_item)['meta']
+
+ @decorators.idempotent_id('3ec32516-f7cd-4f88-b78a-ddee67492071')
+ @rbac_rule_validation.action(service="cinder",
+ rule="volume:delete_snapshot_metadata")
+ def test_delete_snapshot_metadata_item(self):
+ self._create_test_snapshot_metadata()
+ self.rbac_utils.switch_role(self, toggle_rbac_role=True)
+ self.snapshots_client.delete_snapshot_metadata_item(
+ self.snapshot['id'], "key1")
+
class SnapshotMetadataV3RbacTest(SnapshotMetadataRbacTest):
_api_version = 3
diff --git a/patrole_tempest_plugin/tests/api/volume/test_volumes_backup_rbac.py b/patrole_tempest_plugin/tests/api/volume/test_volumes_backup_rbac.py
index 7ca3d9f..d10c876 100644
--- a/patrole_tempest_plugin/tests/api/volume/test_volumes_backup_rbac.py
+++ b/patrole_tempest_plugin/tests/api/volume/test_volumes_backup_rbac.py
@@ -141,7 +141,7 @@
@decorators.attr(type='slow')
@rbac_rule_validation.action(service="cinder",
- rule="backup:backup-export")
+ rule="backup:export-import")
@decorators.idempotent_id('e984ec8d-e8eb-485c-98bc-f1856020303c')
def test_export_backup(self):
backup = self.create_backup(volume_id=self.volume['id'])
@@ -201,3 +201,31 @@
if expected_attr not in body:
raise rbac_exceptions.RbacMalformedResponse(
attribute=expected_attr)
+
+
+class VolumesBackupsV39RbacTest(rbac_base.BaseVolumeRbacTest):
+ _api_version = 3
+ min_microversion = '3.9'
+ max_microversion = 'latest'
+
+ @classmethod
+ def skip_checks(cls):
+ super(VolumesBackupsV39RbacTest, cls).skip_checks()
+ if not CONF.volume_feature_enabled.backup:
+ raise cls.skipException("Cinder backup feature disabled")
+
+ @decorators.attr(type='slow')
+ @decorators.idempotent_id('b45b0e98-6eb8-4c62-aa53-0f8c7c09faa6')
+ @rbac_rule_validation.action(
+ service="cinder",
+ rule="backup:update")
+ def test_backup_update(self):
+ volume = self.create_volume()
+ backup = self.create_backup(volume_id=volume['id'])
+ update_kwargs = {
+ 'name': data_utils.rand_name(self.__class__.__name__ + '-Backup'),
+ 'description': data_utils.rand_name("volume-backup-description")
+ }
+ self.rbac_utils.switch_role(self, toggle_rbac_role=True)
+ self.backups_client.update_backup(backup['id'],
+ **update_kwargs)
diff --git a/requirements.txt b/requirements.txt
index 0e46596..ba2f2d5 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -6,5 +6,5 @@
oslo.log>=3.30.0 # Apache-2.0
oslo.config>=4.6.0 # Apache-2.0
oslo.policy>=1.23.0 # Apache-2.0
-tempest>=16.1.0 # Apache-2.0
+tempest>=17.1.0 # Apache-2.0
stevedore>=1.20.0 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index 1953685..a8a3044 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -14,4 +14,4 @@
oslotest>=1.10.0 # Apache-2.0
oslo.policy>=1.23.0 # Apache-2.0
oslo.log>=3.30.0 # Apache-2.0
-tempest>=16.1.0 # Apache-2.0
+tempest>=17.1.0 # Apache-2.0