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
This commit is contained in:
Ghanshyam
2025-05-12 13:10:30 -07:00
parent 905cb14d8d
commit 42e4ba7aa2
2 changed files with 13 additions and 2 deletions

View File

@@ -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

View File

@@ -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()