From 42e4ba7aa29869aecece62632f8afa27b651ee80 Mon Sep 17 00:00:00 2001 From: Ghanshyam Date: Mon, 12 May 2025 13:10:30 -0700 Subject: [PATCH] Fix project manager user to be created in samae project Tempest dynamic credential creates the project per test class and adds requested role users to the same project. Project members, project admins, and project readers share the same project, but the project manager does not share the same project; instead, the project ends up being created as a separate project. Fixing the same and also add the unit test. Closes-Bug: #2110507 Change-Id: I63a0395025272202bb62851b76e8ec22f5f6db24 --- tempest/lib/common/dynamic_creds.py | 5 +++-- tempest/tests/lib/common/test_dynamic_creds.py | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/tempest/lib/common/dynamic_creds.py b/tempest/lib/common/dynamic_creds.py index 6c90938244..1815dc6792 100644 --- a/tempest/lib/common/dynamic_creds.py +++ b/tempest/lib/common/dynamic_creds.py @@ -384,8 +384,9 @@ class DynamicCredentialProvider(cred_provider.CredentialProvider): subnet_id=subnet_id) def _get_project_id(self, credential_type, scope): - same_creds = [['admin'], ['member'], ['reader']] - same_alt_creds = [['alt_admin'], ['alt_member'], ['alt_reader']] + same_creds = [['admin'], ['manager'], ['member'], ['reader']] + same_alt_creds = [['alt_admin'], ['alt_manager'], + ['alt_member'], ['alt_reader']] search_in = [] if credential_type in same_creds: search_in = same_creds diff --git a/tempest/tests/lib/common/test_dynamic_creds.py b/tempest/tests/lib/common/test_dynamic_creds.py index 4c2ea30d87..4122db3604 100644 --- a/tempest/tests/lib/common/test_dynamic_creds.py +++ b/tempest/tests/lib/common/test_dynamic_creds.py @@ -252,6 +252,7 @@ class TestDynamicCredentialProvider(base.TestCase): reader_func = creds.get_project_alt_reader_creds else: admin_func = creds.get_project_admin_creds + manager_func = creds.get_project_manager_creds member_func = creds.get_project_member_creds reader_func = creds.get_project_reader_creds self._mock_assign_user_role() @@ -286,6 +287,15 @@ class TestDynamicCredentialProvider(base.TestCase): self._request_and_check_second_creds( creds, admin_func, member_creds, show_mock, sm_count=2) + # Now request for the project manager creds which should not create new + # project instead should use the project_id of member_creds already + # created project. + # TODO(gmaan): test test_alt_creds also once alt project + # manager is available. + if not test_alt_creds: + self._request_and_check_second_creds( + creds, manager_func, member_creds, show_mock, sm_count=3) + def test_creds_within_same_project(self): self._creds_within_same_project()