Skip to content

Commit 2de6203

Browse files
author
Marc Schöchlin
committed
Be more tolerant with not needed roles
1 parent 42b7e80 commit 2de6203

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

src/openstack_workload_generator/entities/project.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ def create_and_get_project(self) -> Project:
236236
self.adapt_quota()
237237

238238
self.assign_role_to_user_for_project("manager")
239-
self.assign_role_to_user_for_project("load-balancer_member")
239+
self.assign_role_to_user_for_project("load-balancer_member", required=False)
240240
self.assign_role_to_user_for_project("member")
241241

242242
self.workload_network = WorkloadGeneratorNetwork(

src/openstack_workload_generator/entities/user.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,16 @@ def __init__(self, conn: Connection, user_name: str, domain: Domain):
2020
user_name, query={"domain_id": self.domain.id}
2121
)
2222

23-
def assign_role_to_user(self, role_name: str):
23+
def assign_role_to_user(self, role_name: str, mandatory: bool = True):
24+
25+
role_id = self.get_role_id_by_name(role_name, mandatory)
26+
27+
if role_id is None:
28+
LOGGER.warning(f"Role '{role_name}' not found, not assigning it")
29+
return
30+
2431
self.conn.identity.assign_project_role_to_user(
25-
self.obj.id, self.domain.id, self.get_role_id_by_name(role_name)
32+
self.obj.id, self.domain.id, role_id
2633
)
2734
LOGGER.info(
2835
f"Assigned role '{role_name}' to user '{self.obj.name}' in {DomainCache.ident_by_id(self.domain.id)}"
@@ -55,8 +62,11 @@ def delete_user(self):
5562
LOGGER.warning(f"Deleted user: {self.obj.name} / {self.obj.id}")
5663
self.obj = None
5764

58-
def get_role_id_by_name(self, role_name) -> str:
65+
def get_role_id_by_name(self, role_name, mandatory: bool = True) -> str | None:
5966
for role in self.conn.identity.roles():
6067
if role.name == role_name:
6168
return role.id
62-
raise RuntimeError(f"No such role {role_name}")
69+
if mandatory:
70+
raise RuntimeError(f"No such role {role_name}")
71+
else:
72+
return None

0 commit comments

Comments
 (0)