Skip to content

Commit 2e49119

Browse files
committed
Fix ignored --user-domain in role assignment list
Fix the wrong value assignment which made the --user-domain option ignored. Unit tests are updated to verify usage of domain options to avoid further regressions. Also drop the redundant look up of domain id to avoid unnecessary API call. Closes-Bug: #2085604 Change-Id: I5112b8e831fb26eb6544615277f0d3fe4f15dc5a
1 parent 7c6b47b commit 2e49119

File tree

3 files changed

+284
-35
lines changed

3 files changed

+284
-35
lines changed

openstackclient/identity/common.py

Lines changed: 22 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -184,62 +184,50 @@ def _get_token_resource(client, resource, parsed_name, parsed_domain=None):
184184
return parsed_name
185185

186186

187-
def _get_domain_id_if_requested(identity_client, domain_name_or_id):
188-
if not domain_name_or_id:
189-
return None
190-
domain = find_domain(identity_client, domain_name_or_id)
191-
return domain.id
192-
193-
194187
def find_domain(identity_client, name_or_id):
195188
return _find_identity_resource(
196189
identity_client.domains, name_or_id, domains.Domain
197190
)
198191

199192

200193
def find_group(identity_client, name_or_id, domain_name_or_id=None):
201-
domain_id = _get_domain_id_if_requested(identity_client, domain_name_or_id)
202-
if not domain_id:
194+
if domain_name_or_id is None:
203195
return _find_identity_resource(
204196
identity_client.groups, name_or_id, groups.Group
205197
)
206-
else:
207-
domain_id = find_domain(identity_client, domain_id).id
208-
return _find_identity_resource(
209-
identity_client.groups,
210-
name_or_id,
211-
groups.Group,
212-
domain_id=domain_id,
213-
)
198+
199+
domain_id = find_domain(identity_client, domain_name_or_id).id
200+
return _find_identity_resource(
201+
identity_client.groups,
202+
name_or_id,
203+
groups.Group,
204+
domain_id=domain_id,
205+
)
214206

215207

216208
def find_project(identity_client, name_or_id, domain_name_or_id=None):
217-
domain_id = _get_domain_id_if_requested(identity_client, domain_name_or_id)
218-
if not domain_id:
209+
if domain_name_or_id is None:
219210
return _find_identity_resource(
220211
identity_client.projects, name_or_id, projects.Project
221212
)
222-
else:
223-
domain_id = find_domain(identity_client, domain_id).id
224-
return _find_identity_resource(
225-
identity_client.projects,
226-
name_or_id,
227-
projects.Project,
228-
domain_id=domain_id,
229-
)
213+
domain_id = find_domain(identity_client, domain_name_or_id).id
214+
return _find_identity_resource(
215+
identity_client.projects,
216+
name_or_id,
217+
projects.Project,
218+
domain_id=domain_id,
219+
)
230220

231221

232222
def find_user(identity_client, name_or_id, domain_name_or_id=None):
233-
domain_id = _get_domain_id_if_requested(identity_client, domain_name_or_id)
234-
if not domain_id:
223+
if domain_name_or_id is None:
235224
return _find_identity_resource(
236225
identity_client.users, name_or_id, users.User
237226
)
238-
else:
239-
domain_id = find_domain(identity_client, domain_id).id
240-
return _find_identity_resource(
241-
identity_client.users, name_or_id, users.User, domain_id=domain_id
242-
)
227+
domain_id = find_domain(identity_client, domain_name_or_id).id
228+
return _find_identity_resource(
229+
identity_client.users, name_or_id, users.User, domain_id=domain_id
230+
)
243231

244232

245233
def _find_identity_resource(

openstackclient/identity/v3/role_assignment.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ def take_action(self, parsed_args):
148148

149149
user_domain_id = None
150150
if parsed_args.user_domain:
151-
project_domain_id = _find_sdk_id(
151+
user_domain_id = _find_sdk_id(
152152
identity_client.find_domain,
153153
name_or_id=parsed_args.user_domain,
154154
)

0 commit comments

Comments
 (0)