From 962ab9bb5311957b3304ccf3d25b9d8d0e15d095 Mon Sep 17 00:00:00 2001 From: jont33 Date: Wed, 25 Oct 2023 16:55:43 +0200 Subject: [PATCH] Barbican tempest missing IDs Several tests in the Barbican-tempest-plugin are missing idempotent IDs. The check-uuid tool was used to ensure that all tests have an ID. Closes-Bug: #2030965 Change-Id: Ice8a1c210e0ac2e50044f9a37e15b00fd9f306f4 --- .../tests/api/test_quotas.py | 1 + .../tests/rbac/v1/test_containers.py | 29 ++++++++++ .../tests/rbac/v1/test_orders.py | 11 ++++ .../tests/rbac/v1/test_quotas.py | 16 ++++++ .../tests/rbac/v1/test_secret_metadata.py | 19 +++++++ .../tests/rbac/v1/test_secret_stores.py | 9 +++ .../tests/rbac/v1/test_secrets.py | 56 +++++++++++++++++++ .../tests/rbac/v1/test_transport_keys.py | 6 ++ 8 files changed, 147 insertions(+) diff --git a/barbican_tempest_plugin/tests/api/test_quotas.py b/barbican_tempest_plugin/tests/api/test_quotas.py index 7840406..7b26d33 100644 --- a/barbican_tempest_plugin/tests/api/test_quotas.py +++ b/barbican_tempest_plugin/tests/api/test_quotas.py @@ -56,6 +56,7 @@ class ProjectQuotasTest(base.BaseKeyManagerTest): raise cls.skipException("enforce_scope is enabled for barbican, " "skipping project quota tests.") + @decorators.idempotent_id('07dec492-7f19-4d94-a9d7-28c0643db1bc') def test_manage_project_quotas(self): # Confirm that there are no quotas body = self.quota_client.list_quotas() diff --git a/barbican_tempest_plugin/tests/rbac/v1/test_containers.py b/barbican_tempest_plugin/tests/rbac/v1/test_containers.py index 16d743f..dd2123c 100644 --- a/barbican_tempest_plugin/tests/rbac/v1/test_containers.py +++ b/barbican_tempest_plugin/tests/rbac/v1/test_containers.py @@ -13,6 +13,7 @@ import abc from tempest import config from tempest.lib.common.utils import data_utils +from tempest.lib import decorators from tempest.lib import exceptions from barbican_tempest_plugin.tests.rbac.v1 import base @@ -195,34 +196,40 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacContainers): **self.test_consumer ) + @decorators.idempotent_id('1f0879ae-7e02-4d37-a37c-ee9bc11b40ef') def test_list_containers(self): self.assertRaises( exceptions.Forbidden, self.client.list_containers) + @decorators.idempotent_id('91406373-339d-4322-bf69-e2842564b9d1') def test_create_container(self): self.assertRaises( exceptions.Forbidden, self.client.create_container) + @decorators.idempotent_id('c2f5e209-82db-48c7-b11b-2719d3305753') def test_get_container(self): self.assertRaises( exceptions.Forbidden, self.client.get_container, container_id=self.container_id) + @decorators.idempotent_id('af342d75-67de-4341-9e96-6a58c75a3226') def test_delete_container(self): self.assertRaises( exceptions.Forbidden, self.client.delete_container, container_id=self.container_id) + @decorators.idempotent_id('baa049d5-72a3-4848-8997-a4abd43e00b3') def test_get_container_acl(self): self.assertRaises( exceptions.Forbidden, self.client.get_container_acl, self.container_id) + @decorators.idempotent_id('6b330e3b-4696-496c-9d65-1cdff39439b9') def test_update_container_acl(self): self.assertRaises( exceptions.Forbidden, @@ -230,6 +237,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacContainers): self.container_id, self.valid_acl) + @decorators.idempotent_id('f78cd73f-e01f-47d3-be5a-83f56837efa1') def test_create_container_acl(self): self.assertRaises( exceptions.Forbidden, @@ -237,18 +245,21 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacContainers): self.container_id, self.valid_acl) + @decorators.idempotent_id('79ef4f66-4a77-44fd-b014-94c075c26bd6') def test_delete_container_acl(self): self.assertRaises( exceptions.Forbidden, self.client.delete_container, self.container_id) + @decorators.idempotent_id('71b335fc-8cb6-4229-bd02-866df4ede926') def test_list_container_consumers(self): self.assertRaises( exceptions.Forbidden, self.consumer_client.list_consumers_in_container, self.container_id) + @decorators.idempotent_id('7c64295e-5584-4673-99f8-a87275072f95') def test_create_container_consumer(self): self.assertRaises( exceptions.Forbidden, @@ -256,6 +267,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacContainers): self.container_id, **self.test_consumer) + @decorators.idempotent_id('f3dac21e-cfc2-4a97-bd0e-2a207241e9cf') def test_delete_container_consumer(self): self.assertRaises( exceptions.Forbidden, @@ -263,6 +275,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacContainers): self.container_id, **self.test_consumer) + @decorators.idempotent_id('96cfab13-67f6-488b-868d-f0609c26553a') def test_add_secret_to_container(self): self.assertRaises( exceptions.Forbidden, @@ -270,6 +283,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacContainers): container_id=self.container_id, secret_id=self.secret_id) + @decorators.idempotent_id('d9590a9d-a8be-481e-b50f-22f26973cba4') def test_delete_secret_from_container(self): self.assertRaises( exceptions.Forbidden, @@ -286,12 +300,14 @@ class ProjectMemberTests(ProjectReaderTests): cls.client = cls.container_client cls.consumer_client = cls.member_consumer_client + @decorators.idempotent_id('028f8858-d463-4f51-befc-63a350e87da2') def test_list_containers(self): resp = self.client.list_containers() containers = resp['containers'] self.assertGreaterEqual(len(containers), 1) + @decorators.idempotent_id('db79462a-e6fd-44f5-9d4d-da3c7fda6896') def test_create_container(self): container_id = self.create_test_container( self.client, @@ -299,6 +315,7 @@ class ProjectMemberTests(ProjectReaderTests): _ = self.container_client.get_container(container_id) + @decorators.idempotent_id('8d47fec6-487e-43a5-984d-0c3ef08d23e3') def test_get_container(self): resp = self.client.get_container(self.container_id) @@ -306,6 +323,7 @@ class ProjectMemberTests(ProjectReaderTests): self.container_id, self.client.ref_to_uuid(resp['container_ref'])) + @decorators.idempotent_id('3c96cec6-02c9-4cae-bea9-be11b22d21aa') def test_delete_container(self): self.client.delete_container(self.container_id) @@ -314,6 +332,7 @@ class ProjectMemberTests(ProjectReaderTests): for c in resp['containers']] self.assertNotIn(self.container_id, container_ids) + @decorators.idempotent_id('64f5bc21-51b5-451a-932b-e6091bf113c3') def test_add_secret_to_container(self): self.client.add_secret_to_container( container_id=self.container_id, @@ -324,6 +343,7 @@ class ProjectMemberTests(ProjectReaderTests): for sr in resp['secret_refs']] self.assertIn(self.secret_id, secret_ids) + @decorators.idempotent_id('8efb0a35-9b6d-4bde-84f7-43a72ef86bf3') def test_delete_secret_from_container(self): self.client.add_secret_to_container( self.container_id, @@ -342,16 +362,19 @@ class ProjectMemberTests(ProjectReaderTests): for sr in resp['secret_refs']] self.assertNotIn(self.secret_id, secret_ids) + @decorators.idempotent_id('167a7fd7-3a08-4d9b-8e5f-2e0d438deea4') def test_get_container_acl(self): resp = self.client.get_container_acl(self.container_id) self.assertIn('read', resp.keys()) + @decorators.idempotent_id('072fd676-36da-44e5-ab53-29a0f1dfe3f1') def test_create_container_acl(self): _ = self.client.put_container_acl(self.container_id, self.valid_acl) acl = self.client.get_container_acl(self.container_id) self.assertIn(self.other_secret_client.user_id, acl['read']['users']) + @decorators.idempotent_id('f5fb9d69-5942-45a3-8c71-2d723e816d52') def test_update_container_acl(self): _ = self.client.put_container_acl(self.container_id, self.valid_acl) acl = self.client.get_container_acl(self.container_id) @@ -368,6 +391,7 @@ class ProjectMemberTests(ProjectReaderTests): self.assertNotIn(self.other_secret_client.user_id, acl['read']['users']) + @decorators.idempotent_id('03a94e74-13da-40d5-ac63-19e9e7552379') def test_delete_container_acl(self): _ = self.client.put_container_acl(self.container_id, self.valid_acl) acl = self.client.get_container_acl(self.container_id) @@ -378,12 +402,14 @@ class ProjectMemberTests(ProjectReaderTests): acl = self.client.get_container_acl(self.container_id) self.assertNotIn('users', acl['read'].keys()) + @decorators.idempotent_id('7d171230-0ec5-443c-84df-ba79bea52064') def test_list_container_consumers(self): resp = self.consumer_client.list_consumers_in_container( self.container_id ) self.assertEqual(1, resp['total']) + @decorators.idempotent_id('a7f3b9cb-7be1-49bb-9505-e8b16e30b24f') def test_create_container_consumer(self): second_consumer = { 'name': 'another-test-consumer', @@ -396,6 +422,7 @@ class ProjectMemberTests(ProjectReaderTests): self.assertEqual(2, len(resp['consumers'])) + @decorators.idempotent_id('b28e5ed5-797a-46fc-81c4-96a8bfa80757') def test_delete_container_consumer(self): resp = self.consumer_client.delete_consumer_from_container( self.container_id, @@ -442,10 +469,12 @@ class ProjectReaderTestsAcrossProjects(ProjectReaderTests): self.other_container_client, data_utils.rand_name('test-containers')) + @decorators.idempotent_id('23857de9-c335-4778-b10b-75191990e20c') def test_list_containers(self): """This is not possible across projects""" pass + @decorators.idempotent_id('cff55c34-fdca-44ab-a136-3b70c75fd8ff') def test_create_container(self): """This is not possible across projects""" pass diff --git a/barbican_tempest_plugin/tests/rbac/v1/test_orders.py b/barbican_tempest_plugin/tests/rbac/v1/test_orders.py index 964d95d..d054bc9 100644 --- a/barbican_tempest_plugin/tests/rbac/v1/test_orders.py +++ b/barbican_tempest_plugin/tests/rbac/v1/test_orders.py @@ -11,6 +11,7 @@ # limitations under the License. import abc +from tempest.lib import decorators from tempest.lib import exceptions from barbican_tempest_plugin.tests.rbac.v1 import base @@ -89,9 +90,11 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacOrders): super().setup_clients() cls.client = cls.os_project_reader.secret_v1.OrderClient() + @decorators.idempotent_id('78c66385-c8ae-44a7-942e-5e1f87072198') def test_list_orders(self): self.assertRaises(exceptions.Forbidden, self.client.list_orders) + @decorators.idempotent_id('fa5f861d-a376-437d-ab88-b3eea9a20403') def test_create_order(self): self.assertRaises( exceptions.Forbidden, @@ -100,6 +103,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacOrders): 'create_orders_s' ) + @decorators.idempotent_id('39227b64-4d99-42ce-9acb-0fc4df2949ab') def test_get_order(self): order_id = self.create_test_order(self.order_client, 'test_get_order') self.assertRaises( @@ -107,6 +111,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacOrders): self.client.get_order, order_id=order_id) + @decorators.idempotent_id('ca5ef19c-19f3-45fd-a20d-920c1bb6414c') def test_delete_order(self): order_id = self.create_test_order(self.order_client, 'test_delete_order') @@ -115,6 +120,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacOrders): self.client.delete_order, order_id=order_id) + @decorators.idempotent_id('9689c961-2b91-4d4d-b3f3-4f185e7ae1cc') def test_get_other_project_order(self): order_id = self.create_test_order( self.other_order_client, @@ -124,6 +130,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacOrders): self.client.get_order, order_id) + @decorators.idempotent_id('ee9d022c-90d5-427b-b430-b10323270a49') def test_delete_other_project_order(self): order_id = self.create_test_order( self.other_order_client, @@ -141,19 +148,23 @@ class ProjectMemberTests(ProjectReaderTests): super().setup_clients() cls.client = cls.os_project_member.secret_v1.OrderClient() + @decorators.idempotent_id('789262f2-34fd-46c3-824a-f780d5b5c603') def test_list_orders(self): _ = self.create_test_order(self.order_client, 'test_list_orders') resp = self.client.list_orders() self.assertGreaterEqual(len(resp['orders']), 1) + @decorators.idempotent_id('898154b7-b4e0-44d8-bf84-e87de5d0b48b') def test_create_order(self): self.create_test_order(self.client, 'create_orders_s') + @decorators.idempotent_id('798c715d-37fb-4c8b-89c5-e679b016fde7') def test_get_order(self): order_id = self.create_test_order(self.order_client, 'test_get_order') resp = self.client.get_order(order_id) self.assertEqual(order_id, self.client.ref_to_uuid(resp['order_ref'])) + @decorators.idempotent_id('fe26f0a1-bcfe-449d-8fd1-ccc4c28f13c2') def test_delete_order(self): order_id = self.create_test_order(self.order_client, 'test_delete_order') diff --git a/barbican_tempest_plugin/tests/rbac/v1/test_quotas.py b/barbican_tempest_plugin/tests/rbac/v1/test_quotas.py index ffabc1e..0c72f38 100644 --- a/barbican_tempest_plugin/tests/rbac/v1/test_quotas.py +++ b/barbican_tempest_plugin/tests/rbac/v1/test_quotas.py @@ -11,6 +11,7 @@ # limitations under the License. import abc +from tempest.lib import decorators from tempest.lib import exceptions from barbican_tempest_plugin.tests.rbac.v1 import base @@ -117,13 +118,16 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacQuota): super().setup_clients() cls.client = cls.os_project_reader.secret_v1.QuotaClient() + @decorators.idempotent_id('936e480a-f603-4d9e-bc77-9a69ef05ac28') def test_get_effective_project_quota(self): resp = self.client.get_default_project_quota() self.assertIn('quotas', resp) + @decorators.idempotent_id('528907ad-efd8-481e-b57e-7faed7198405') def test_list_project_quotas(self): self.assertRaises(exceptions.Forbidden, self.client.list_quotas) + @decorators.idempotent_id('948afb0d-35e8-4a23-880f-b2dc3eebf1bd') def test_get_custom_quota_for_project(self): project_id = self.client.tenant_id self.assertRaises( @@ -131,6 +135,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacQuota): self.client.get_project_quota, project_id) + @decorators.idempotent_id('c29af3ed-561e-48da-8a1b-81ba19c943bb') def test_set_new_quota_for_project(self): project_id = self.client.tenant_id self.assertRaises( @@ -144,6 +149,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacQuota): } ) + @decorators.idempotent_id('7382fb20-01f6-4322-9ebc-5bf6038e3e1b') def test_remove_custom_quota_for_project(self): project_id = self.client.tenant_id self.assertRaises( @@ -151,6 +157,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacQuota): self.client.delete_project_quota, project_id) + @decorators.idempotent_id('5d062790-6754-4d21-bd0c-08d4a74fa6f3') def test_get_custom_quota_for_other_project(self): project_id = self.other_secret_client.tenant_id self.assertRaises( @@ -158,6 +165,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacQuota): self.client.get_project_quota, project_id) + @decorators.idempotent_id('26bd25ab-92c2-4437-a742-f301703ce523') def test_set_new_quota_for_other_project(self): project_id = self.other_secret_client.tenant_id self.assertRaises( @@ -171,6 +179,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, BarbicanV1RbacQuota): } ) + @decorators.idempotent_id('7a763152-c64b-42d5-9669-213681327c58') def test_remove_custom_quota_for_other_project(self): project_id = self.other_secret_client.tenant_id self.assertRaises( @@ -194,10 +203,12 @@ class ProjectAdminTests(ProjectMemberTests): super().setup_clients() cls.client = cls.os_project_admin.secret_v1.QuotaClient() + @decorators.idempotent_id('9099766d-96b3-448d-b400-3b08563d15fc') def test_list_project_quotas(self): quotas = self.client.list_quotas() self.assertIn("project_quotas", quotas) + @decorators.idempotent_id('dc5125a6-bc94-4426-ba9d-03e2b03c81a8') def test_get_custom_quota_for_project(self): project_id = self.client.tenant_id self.client.create_project_quota( @@ -210,6 +221,7 @@ class ProjectAdminTests(ProjectMemberTests): quota = self.client.get_project_quota(project_id) self.assertIn("project_quotas", quota) + @decorators.idempotent_id('6b169f51-9b17-4d05-aee8-849b94101246') def test_set_new_quota_for_project(self): project_id = self.client.tenant_id self.client.create_project_quota( @@ -222,6 +234,7 @@ class ProjectAdminTests(ProjectMemberTests): quota = self.client.get_project_quota(project_id) self.assertIn("project_quotas", quota) + @decorators.idempotent_id('7a16b9d6-cfdc-4eb7-9e89-b824c612609e') def test_remove_custom_quota_for_project(self): project_id = self.client.tenant_id self.client.create_project_quota( @@ -239,6 +252,7 @@ class ProjectAdminTests(ProjectMemberTests): self.client.get_project_quota, project_id) + @decorators.idempotent_id('17936c5b-5e89-4717-9826-a22243b947cb') def test_get_custom_quota_for_other_project(self): project_id = self.other_secret_client.tenant_id self.client.create_project_quota( @@ -251,6 +265,7 @@ class ProjectAdminTests(ProjectMemberTests): quota = self.client.get_project_quota(project_id) self.assertIn("project_quotas", quota) + @decorators.idempotent_id('d41c97e6-e77d-4bc4-a72d-b068294a0ef6') def test_set_new_quota_for_other_project(self): project_id = self.other_secret_client.tenant_id self.client.create_project_quota( @@ -263,6 +278,7 @@ class ProjectAdminTests(ProjectMemberTests): quota = self.client.get_project_quota(project_id) self.assertIn("project_quotas", quota) + @decorators.idempotent_id('89fb47fd-bf05-4df0-bd47-282417c110b9') def test_remove_custom_quota_for_other_project(self): project_id = self.other_secret_client.tenant_id self.client.create_project_quota( diff --git a/barbican_tempest_plugin/tests/rbac/v1/test_secret_metadata.py b/barbican_tempest_plugin/tests/rbac/v1/test_secret_metadata.py index a8e61a7..72aa668 100644 --- a/barbican_tempest_plugin/tests/rbac/v1/test_secret_metadata.py +++ b/barbican_tempest_plugin/tests/rbac/v1/test_secret_metadata.py @@ -13,6 +13,7 @@ import abc from tempest.lib.common.utils import data_utils +from tempest.lib import decorators from tempest.lib import exceptions from barbican_tempest_plugin.tests.rbac.v1 import base @@ -178,6 +179,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, 'foo', 'bar') + @decorators.idempotent_id('2dd1cb04-67e9-4c3c-a40e-12184eff5bc6') def test_create_key_value_pair(self): self.assertRaises( exceptions.Forbidden, @@ -187,6 +189,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, 'foo' ) + @decorators.idempotent_id('33c1d271-5367-4f0e-a2e7-c28ea1130fa6') def test_put_secret_metadata(self): meta = { 'foo': 'bar', @@ -198,12 +201,14 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, self.secret_id, **meta) + @decorators.idempotent_id('8f22488b-52d5-4a28-ae32-faf1514ef390') def test_get_secret_metadata(self): self.assertRaises( exceptions.Forbidden, self.client.get_secret_metadata, self.secret_id) + @decorators.idempotent_id('df6bbafc-f836-44b4-a0a7-3d0f94f5b9ac') def test_update_secret_metadata_by_key(self): self.assertRaises( exceptions.Forbidden, @@ -212,6 +217,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, 'foo', 'baz') + @decorators.idempotent_id('b2f3bafb-4a21-47da-966f-3e3010571596') def test_get_secret_metadata_by_key(self): self.assertRaises( exceptions.Forbidden, @@ -219,6 +225,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, self.secret_id, 'foo') + @decorators.idempotent_id('0d80db72-fc6f-445f-b402-f86c91233b4f') def test_delete_secret_metadata_by_key(self): self.assertRaises( exceptions.Forbidden, @@ -226,6 +233,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, self.secret_id, 'foo') + @decorators.idempotent_id('7c6223b6-5a2f-4989-ae54-db253702af98') def test_create_key_value_pair_on_other_secret(self): self.assertRaises( exceptions.Forbidden, @@ -235,6 +243,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, 'foo' ) + @decorators.idempotent_id('c1738dd5-e67a-4b48-8064-c198ca0a7970') def test_put_secret_metadata_on_other_secret(self): meta = { 'foo': 'bar', @@ -246,12 +255,14 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, self.other_secret_id, **meta) + @decorators.idempotent_id('efb8d207-5418-4c3a-bb30-d1d5e1695c41') def test_get_secret_metadata_from_other_secret(self): self.assertRaises( exceptions.Forbidden, self.client.get_secret_metadata, self.other_secret_id) + @decorators.idempotent_id('489d52ae-3324-420b-b69c-938f2eb41f6f') def test_update_other_secret_metadata_by_key(self): self.assertRaises( exceptions.Forbidden, @@ -260,6 +271,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, 'foo', 'baz') + @decorators.idempotent_id('f2cbaec3-94ff-4a9c-bc2d-4c728f46313b') def test_get_other_secret_metadata_by_key(self): self.assertRaises( exceptions.Forbidden, @@ -267,6 +279,7 @@ class ProjectReaderTests(base.BarbicanV1RbacBase, self.other_secret_id, 'foo') + @decorators.idempotent_id('fb581f6c-1d59-420c-b05b-227514c75789') def test_delete_other_secret_metadata_by_key(self): self.assertRaises( exceptions.Forbidden, @@ -282,6 +295,7 @@ class ProjectMemberTests(ProjectReaderTests): super().setup_clients() cls.client = cls.secret_metadata_client + @decorators.idempotent_id('73d4c9cc-b7ad-4706-bec4-e7dc70698711') def test_create_key_value_pair(self): resp = self.client.create_key_value_pair( self.secret_id, @@ -291,6 +305,7 @@ class ProjectMemberTests(ProjectReaderTests): self.assertEqual('mykey', resp['key']) self.assertEqual('foo', resp['value']) + @decorators.idempotent_id('f7178757-5ae4-4041-a57c-322f7665f055') def test_put_secret_metadata(self): test_meta = { 'foo': 'baz', @@ -302,23 +317,27 @@ class ProjectMemberTests(ProjectReaderTests): self.assertIn('bar', resp.keys()) self.assertEqual('baz', resp['foo']) + @decorators.idempotent_id('054348d4-c4b4-446a-ad98-c79f6de42eec') def test_get_secret_metadata(self): resp = self.client.get_secret_metadata(self.secret_id) self.assertIn('foo', resp.keys()) self.assertEqual('bar', resp['foo']) + @decorators.idempotent_id('7ed07736-39e7-4c4f-b5c9-f59017f3e80b') def test_update_secret_metadata_by_key(self): self.client.update_secret_metadata(self.secret_id, 'foo', 'baz') resp = self.secret_metadata_client.get_secret_metadata(self.secret_id) self.assertEqual('baz', resp['foo']) + @decorators.idempotent_id('26160af4-ff17-4023-9238-a2a9dca9946c') def test_get_secret_metadata_by_key(self): resp = self.client.get_secret_metadata_by_key(self.secret_id, 'foo') self.assertEqual('foo', resp['key']) self.assertEqual('bar', resp['value']) + @decorators.idempotent_id('3740d6ec-304f-43ce-aa54-af62006715d8') def test_delete_secret_metadata_by_key(self): self.client.delete_secret_metadata_by_key(self.secret_id, 'foo') self.assertRaises( diff --git a/barbican_tempest_plugin/tests/rbac/v1/test_secret_stores.py b/barbican_tempest_plugin/tests/rbac/v1/test_secret_stores.py index 6c12624..769c91d 100644 --- a/barbican_tempest_plugin/tests/rbac/v1/test_secret_stores.py +++ b/barbican_tempest_plugin/tests/rbac/v1/test_secret_stores.py @@ -12,6 +12,7 @@ import abc from tempest import config +from tempest.lib import decorators from tempest.lib import exceptions from barbican_tempest_plugin.tests.rbac.v1 import base @@ -102,10 +103,12 @@ class ProjectMemberTests(base.BarbicanV1RbacBase, BarbicanV1RbacSecretStores): super().setup_clients() cls.client = cls.os_project_member.secret_v1.SecretStoresClient() + @decorators.idempotent_id('bf31560c-42e5-4afc-b1d6-a3a8aa7773d3') def test_list_secret_stores(self): resp = self.do_request('list_secret_stores') self.assertIn('secret_stores', resp) + @decorators.idempotent_id('28d8e43b-af38-4985-8f70-3c1098116561') def test_get_secret_store(self): resp = self.do_request('list_secret_stores') secret_store_id = self.ref_to_uuid( @@ -116,10 +119,12 @@ class ProjectMemberTests(base.BarbicanV1RbacBase, BarbicanV1RbacSecretStores): self.assertEqual(secret_store_id, self.ref_to_uuid(resp['secret_store_ref'])) + @decorators.idempotent_id('e97d0cbe-112c-490e-b3d7-02981161d471') def test_get_global_secret_store(self): resp = self.do_request('get_global_secret_store') self.assertTrue(resp['global_default']) + @decorators.idempotent_id('c3554210-8960-4d09-a1ba-369b8df6ca1f') def test_get_preferred_secret_store(self): # First use project admin to set preferred secret store resp = self.do_request('list_secret_stores') @@ -136,6 +141,7 @@ class ProjectMemberTests(base.BarbicanV1RbacBase, BarbicanV1RbacSecretStores): resp = self.do_request('get_preferred_secret_store') self.assertEqual('ACTIVE', resp['status']) + @decorators.idempotent_id('ada28e3a-ec67-4994-9dde-410463d6d06e') def test_set_preferred_secret_store(self): resp = self.do_request('list_secret_stores') secret_store_id = self.ref_to_uuid( @@ -145,6 +151,7 @@ class ProjectMemberTests(base.BarbicanV1RbacBase, BarbicanV1RbacSecretStores): expected_status=exceptions.Forbidden, secret_store_id=secret_store_id) + @decorators.idempotent_id('c3f52fd1-5d18-498f-81b2-45df5cb09a87') def test_unset_preferred_secret_store(self): resp = self.do_request('list_secret_stores') secret_store_id = self.ref_to_uuid( @@ -162,6 +169,7 @@ class ProjectAdminTests(ProjectMemberTests): super().setup_clients() cls.client = cls.os_project_admin.secret_v1.SecretStoresClient() + @decorators.idempotent_id('c459deb6-6447-43c4-820b-384903e700cb') def test_set_preferred_secret_store(self): resp = self.do_request('list_secret_stores') secret_store_id = self.ref_to_uuid( @@ -173,6 +181,7 @@ class ProjectAdminTests(ProjectMemberTests): self.assertEqual(secret_store_id, self.ref_to_uuid(resp['secret_store_ref'])) + @decorators.idempotent_id('d21ca9b6-b62e-43d1-9c9f-a6e16c939c01') def test_unset_preferred_secret_store(self): resp = self.do_request('list_secret_stores') secret_store_id = self.ref_to_uuid( diff --git a/barbican_tempest_plugin/tests/rbac/v1/test_secrets.py b/barbican_tempest_plugin/tests/rbac/v1/test_secrets.py index bdd56b2..f6e1a73 100644 --- a/barbican_tempest_plugin/tests/rbac/v1/test_secrets.py +++ b/barbican_tempest_plugin/tests/rbac/v1/test_secrets.py @@ -17,6 +17,7 @@ from datetime import timedelta from tempest import config from tempest.lib.common.utils import data_utils +from tempest.lib import decorators from tempest.lib import exceptions from barbican_tempest_plugin.tests.rbac.v1 import base as rbac_base @@ -270,6 +271,7 @@ class ProjectReaderBase(rbac_base.BarbicanV1RbacBase): class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): + @decorators.idempotent_id('e4dfbae6-faca-42a7-a06b-2655e29df193') def test_create_secret(self): """Test add_secret policy.""" self.assertRaises(exceptions.Forbidden, self.client.create_secret) @@ -285,6 +287,7 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): payload_content_encoding="base64" ) + @decorators.idempotent_id('f2649794-10d2-4742-a81c-af78eb3d9c0e') def test_list_secrets(self): """Test get_secrets policy.""" # create two secrets @@ -308,6 +311,7 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): # list all secrets self.assertRaises(exceptions.Forbidden, self.client.list_secrets) + @decorators.idempotent_id('6a4cfca5-1841-49f4-ae1d-bbde0fa94bd7') def test_delete_secret(self): """Test delete_secrets policy.""" sec = self.create_empty_secret_admin('secret_1') @@ -319,6 +323,7 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): secret_id=uuid ) + @decorators.idempotent_id('9c5b46b4-8f0b-4f75-b751-61ddf943fbf3') def test_get_secret(self): """Test get_secret policy.""" sec = self.create_empty_secret_admin('secret_1') @@ -329,6 +334,7 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): secret_id=uuid ) + @decorators.idempotent_id('b2760216-e492-4081-b981-a5d40bcc6a0e') def test_get_secret_payload(self): """Test get_secret payload policy.""" key, sec = self.create_aes_secret_admin('secret_1') @@ -341,6 +347,7 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): secret_id=uuid ) + @decorators.idempotent_id('64b4e2e7-0121-46e7-949f-34332efdec6f') def test_put_secret_payload(self): """Test put_secret policy.""" sec = self.create_empty_secret_admin('secret_1') @@ -355,6 +362,7 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): secret_id=uuid, payload=key ) + @decorators.idempotent_id('5219c830-fe82-4f3b-9eda-e3b5e918ba60') def test_get_other_project_secret(self): other_secret_id = self.create_other_project_secret( 'get_other_secret', @@ -364,6 +372,7 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): self.client.get_secret_metadata, other_secret_id) + @decorators.idempotent_id('dff3d49e-9e31-46bb-b069-d4c72f591718') def test_get_other_project_secret_payload(self): other_secret_id = self.create_other_project_secret( 'get_other_payload', @@ -373,6 +382,7 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): self.client.get_secret_payload, other_secret_id) + @decorators.idempotent_id('fb2fe2a4-2ca9-4b64-b18f-cc0877eb27bc') def test_put_other_project_secret_payload(self): other_secret_id = self.create_other_project_secret('put_other_payload') self.assertRaises( @@ -381,6 +391,7 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): other_secret_id, 'Shhhh... secret!') + @decorators.idempotent_id('fc2f42ec-6bf4-4121-9698-4f0a7d01d8f3') def test_delete_other_project_secret(self): other_secret_id = self.create_other_project_secret( 'get_other_payload', @@ -390,12 +401,14 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): self.client.delete_secret, other_secret_id) + @decorators.idempotent_id('effafb29-fd10-41fb-9404-585af3de3602') def test_get_secret_acl(self): self.assertRaises( exceptions.Forbidden, self.client.get_secret_acl, self.secret_id) + @decorators.idempotent_id('d5058429-4e98-43ac-bda4-8160b2b95ef7') def test_put_secret_acl(self): self.assertRaises( exceptions.Forbidden, @@ -403,6 +416,7 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): self.secret_id, self.valid_acl) + @decorators.idempotent_id('3350274a-b3f4-4178-927f-2591ef2dbea8') def test_patch_secret_acl(self): self.assertRaises( exceptions.Forbidden, @@ -410,18 +424,21 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): self.secret_id, self.valid_acl) + @decorators.idempotent_id('07104bf1-104b-4fa5-b855-82cba69bf24c') def test_delete_secret_acl(self): self.assertRaises( exceptions.Forbidden, self.client.delete_secret_acl, self.secret_id) + @decorators.idempotent_id('434187eb-1dd2-4544-bb1e-6be0dca8cd25') def test_get_other_secret_acl(self): self.assertRaises( exceptions.Forbidden, self.client.get_secret_acl, self.other_secret_id) + @decorators.idempotent_id('32312a70-8f02-4663-b7e0-4432950c2c11') def test_put_other_secret_acl(self): self.assertRaises( exceptions.Forbidden, @@ -429,6 +446,7 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): self.other_secret_id, self.valid_acl) + @decorators.idempotent_id('ad95395f-45b0-4b34-b92a-e6c25f90e798') def test_patch_other_secret_acl(self): self.assertRaises( exceptions.Forbidden, @@ -436,6 +454,7 @@ class ProjectReaderTests(ProjectReaderBase, BarbicanV1RbacSecrets): self.other_secret_id, self.valid_acl) + @decorators.idempotent_id('1470e2fc-46ce-4d06-a11a-201e9b5950c6') def test_delete_other_secret_acl(self): self.assertRaises( exceptions.Forbidden, @@ -465,12 +484,14 @@ class ProjectReaderV1_1Tests(ProjectReaderBase, BarbicanV1_1SecretConsumers): **self.test_consumer ) + @decorators.idempotent_id('be85626b-ca83-4c90-9bf0-b918b9de21b6') def test_list_secret_consumers(self): self.assertRaises( exceptions.Forbidden, self.secret_consumer_client.list_consumers_in_secret, self.secret_id) + @decorators.idempotent_id('d7389369-62e9-4a25-b759-2a64f72fcba2') def test_create_secret_consumer(self): self.assertRaises( exceptions.Forbidden, @@ -478,6 +499,7 @@ class ProjectReaderV1_1Tests(ProjectReaderBase, BarbicanV1_1SecretConsumers): self.secret_id, **self.test_consumer) + @decorators.idempotent_id('dbfba5e4-cd52-4ce9-bf50-a7e933ce5dcc') def test_delete_secret_consumer(self): self.assertRaises( exceptions.Forbidden, @@ -493,6 +515,7 @@ class ProjectMemberTests(ProjectReaderTests): super().setup_clients() cls.client = cls.secret_client + @decorators.idempotent_id('69f24625-0d8a-4412-b9c2-5a96fc689c87') def test_create_secret(self): """Test add_secret policy.""" self.client.create_secret(name='test_create_secret') @@ -507,6 +530,7 @@ class ProjectMemberTests(ProjectReaderTests): payload_content_encoding="base64" ) + @decorators.idempotent_id('ff89eaa4-0014-4935-80cf-f8b7970387e1') def test_list_secrets(self): """Test get_secrets policy.""" # create two secrets @@ -528,12 +552,14 @@ class ProjectMemberTests(ProjectReaderTests): secrets = resp['secrets'] self.assertGreaterEqual(len(secrets), 2) + @decorators.idempotent_id('bffcf1e6-b9a2-43d8-b95c-b3683d6c4549') def test_delete_secret(self): """Test delete_secrets policy.""" sec = self.create_empty_secret_admin('test_delete_secret_1') uuid = self.client.ref_to_uuid(sec['secret_ref']) self.client.delete_secret(uuid) + @decorators.idempotent_id('72a59d44-1967-44fc-84a1-157a7bf124fa') def test_get_secret(self): """Test get_secret policy.""" sec = self.create_empty_secret_admin('test_get_secret') @@ -541,6 +567,7 @@ class ProjectMemberTests(ProjectReaderTests): resp = self.client.get_secret_metadata(uuid) self.assertEqual(uuid, self.client.ref_to_uuid(resp['secret_ref'])) + @decorators.idempotent_id('cb848266-0172-4f93-add3-9d6f41a3bc46') def test_get_secret_payload(self): """Test get_secret payload policy.""" key, sec = self.create_aes_secret_admin('test_get_secret_payload') @@ -550,6 +577,7 @@ class ProjectMemberTests(ProjectReaderTests): payload = self.client.get_secret_payload(uuid) self.assertEqual(key, base64.b64encode(payload)) + @decorators.idempotent_id('f6c58ca1-50f2-4454-b3b2-b338a7dcf3cb') def test_put_secret_payload(self): """Test put_secret policy.""" sec = self.create_empty_secret_admin('test_put_secret_payload') @@ -564,10 +592,12 @@ class ProjectMemberTests(ProjectReaderTests): payload = self.client.get_secret_payload(uuid) self.assertEqual(key, base64.b64encode(payload)) + @decorators.idempotent_id('63482006-18b5-40d3-82da-fdc078d6e5fe') def test_get_secret_acl(self): acl = self.client.get_secret_acl(self.secret_id) self.assertIn("read", acl.keys()) + @decorators.idempotent_id('915bdc2a-94d2-4835-a46e-a27f16ae57a2') def test_put_secret_acl(self): self.assertRaises( exceptions.Forbidden, @@ -580,6 +610,7 @@ class ProjectMemberTests(ProjectReaderTests): resp = self.other_secret_client.get_secret_metadata(self.secret_id) self.assertIn(self.secret_id, resp['secret_ref']) + @decorators.idempotent_id('d6128f75-e7af-43dc-bf43-cf5fdc5f83be') def test_patch_secret_acl(self): _ = self.client.put_secret_acl(self.secret_id, self.valid_acl) acl = self.client.get_secret_acl(self.secret_id) @@ -594,6 +625,7 @@ class ProjectMemberTests(ProjectReaderTests): self.assertNotIn(self.other_secret_client.user_id, acl['read']['users']) + @decorators.idempotent_id('d566f1ab-c318-42cc-80d9-1ff9178d2c63') def test_delete_secret_acl(self): _ = self.client.put_secret_acl(self.secret_id, self.valid_acl) acl = self.client.get_secret_acl(self.secret_id) @@ -612,12 +644,14 @@ class ProjectMemberV1_1Tests(ProjectReaderV1_1Tests): super().setup_clients() cls.secret_consumer_client = cls.member_secret_consumer_client + @decorators.idempotent_id('ca2bbfa3-90b2-4f4e-8e57-3a3562d202a6') def test_list_secret_consumers(self): resp = self.secret_consumer_client.list_consumers_in_secret( self.secret_id ) self.assertEqual(1, resp['total']) + @decorators.idempotent_id('86cadb1e-f748-4d99-9477-4d171d4e9240') def test_create_secret_consumer(self): second_consumer = { 'service': 'service2', @@ -631,6 +665,7 @@ class ProjectMemberV1_1Tests(ProjectReaderV1_1Tests): self.assertEqual(2, len(resp['consumers'])) + @decorators.idempotent_id('f56c4c14-e8c7-4335-8d84-00f34355b53c') def test_delete_secret_consumer(self): resp = self.secret_consumer_client.delete_consumer_from_secret( self.secret_id, @@ -653,12 +688,15 @@ class ProjectAdminV1_1Tests(ProjectMemberV1_1Tests): super().setup_clients() cls.secret_consumer_client = cls.admin_secret_consumer_client + @decorators.idempotent_id('2da9bfb4-f53b-45c0-b8c9-f657ced99bd4') def test_create_secret_consumer(self): pass + @decorators.idempotent_id('2a4eaac5-76a1-48e2-b648-b1b02344130b') def test_delete_secret_consumer(self): pass + @decorators.idempotent_id('34e2ded6-30ea-4f8a-b4e1-3aecac8fdd49') def test_list_secret_consumers(self): pass @@ -670,57 +708,75 @@ class SystemReaderTests(rbac_base.BarbicanV1RbacBase, BarbicanV1RbacSecrets): super().setup_clients() cls.client = cls.secret_client + @decorators.idempotent_id('104f71f0-8099-43ae-b4d9-cce5781a79b9') def test_create_secret(self): pass + @decorators.idempotent_id('5a29b825-4f28-4733-90fa-579b63ae2b96') def test_list_secrets(self): pass + @decorators.idempotent_id('b637c7db-64a9-46c8-b322-c4d282e05164') def test_delete_secret(self): pass + @decorators.idempotent_id('8d0a7f54-61f3-432e-8f4b-c04945b40373') def test_get_secret(self): pass + @decorators.idempotent_id('1bc76c3a-a69e-4285-8f8e-f7bacd01fef8') def test_get_secret_payload(self): pass + @decorators.idempotent_id('c2f38e3d-cc52-43c0-9fb3-8065797c40da') def test_put_secret_payload(self): pass + @decorators.idempotent_id('be392729-af43-4aab-bbc7-43fcd5df9140') def test_get_other_project_secret(self): pass + @decorators.idempotent_id('cc021881-7fba-48a2-aa6e-68c426b382f9') def test_get_other_project_secret_payload(self): pass + @decorators.idempotent_id('e87f5e40-7bb3-4fc8-aa5a-23cc1a8850f5') def test_put_other_project_secret_payload(self): pass + @decorators.idempotent_id('ce878824-d424-4abb-8217-068c9a99333b') def test_delete_other_project_secret(self): pass + @decorators.idempotent_id('be04944b-b4e2-4f66-b58a-3d047c99d939') def test_get_secret_acl(self): pass + @decorators.idempotent_id('65ce0063-d6f1-463c-b752-d4871a9df684') def test_put_secret_acl(self): pass + @decorators.idempotent_id('81423acc-240c-46f0-8de9-4cf6ab5d4bc4') def test_patch_secret_acl(self): pass + @decorators.idempotent_id('d55d5798-c23f-4108-8005-963d350d9d41') def test_delete_secret_acl(self): pass + @decorators.idempotent_id('5490d517-ba6c-4e28-8712-07dbc9bb9ada') def test_get_other_secret_acl(self): pass + @decorators.idempotent_id('1ae61619-104a-4497-999c-00671335bc4f') def test_put_other_secret_acl(self): pass + @decorators.idempotent_id('5ec28567-111b-405f-93c9-ed5d4259e918') def test_patch_other_secret_acl(self): pass + @decorators.idempotent_id('65cfefb4-69a6-4f31-b8e1-defad1b57645') def test_delete_other_secret_acl(self): pass diff --git a/barbican_tempest_plugin/tests/rbac/v1/test_transport_keys.py b/barbican_tempest_plugin/tests/rbac/v1/test_transport_keys.py index fa142f1..65a5c9b 100644 --- a/barbican_tempest_plugin/tests/rbac/v1/test_transport_keys.py +++ b/barbican_tempest_plugin/tests/rbac/v1/test_transport_keys.py @@ -11,6 +11,7 @@ # limitations under the License. import abc +from tempest.lib import decorators from tempest.lib import exceptions from barbican_tempest_plugin.tests.rbac.v1 import base @@ -66,16 +67,19 @@ class ProjectMemberTests(base.BarbicanV1RbacBase, BarbicanV1RbacTransportKeys): super().setup_clients() cls.client = cls.os_project_member.secret_v1.TransportKeyClient() + @decorators.idempotent_id('dc647930-d89d-449c-8bf6-b0aff0cd95da') def test_list_transport_keys(self): resp = self.do_request('list_transport_keys') self.assertIn('transport_keys', resp) + @decorators.idempotent_id('981d9ec3-7974-40ab-abf0-d19cd17311e0') def test_create_transport_key(self): self.do_request('create_transport_key', expected_status=exceptions.Forbidden, plugin_name='simple-crypto', transport_key='???') + @decorators.idempotent_id('4d4d46df-ec90-4755-a6e3-aa0ff9204113') def test_get_transport_key(self): # TODO(redorobot): # We need to sort out how system admins create keys before we @@ -90,6 +94,7 @@ class ProjectMemberTests(base.BarbicanV1RbacBase, BarbicanV1RbacTransportKeys): # self.assertEqual(transport_key_id, resp['transport_key_id']) pass + @decorators.idempotent_id('aeae2541-af87-40d6-a4b6-767fcb7416d4') def test_delete_transport_key(self): # TODO(redorobot): # We need to sort out how system admins create keys before we @@ -112,6 +117,7 @@ class ProjectAdminTests(ProjectMemberTests): super().setup_clients() cls.client = cls.os_project_admin.secret_v1.TransportKeyClient() + @decorators.idempotent_id('bed9bace-9b44-448b-b68e-bff46c4c181e') def test_create_transport_key(self): transport_key = self.client.create_transport_key( plugin_name="simple-crypto",