summaryrefslogtreecommitdiff
path: root/openstackclient/identity/common.py
diff options
context:
space:
mode:
authorJuan Antonio Osorio Robles <juan.osorio.robles@ericsson.com>2015-06-08 16:30:06 +0300
committerJuan Antonio Osorio Robles <juan.osorio.robles@ericsson.com>2015-06-08 17:05:10 +0300
commitf7feef7f8d1df7b6a28eb6d2e684bf8f1853d356 (patch)
tree8fee7569183d363b1f43a2c852bb389f1860cd1e /openstackclient/identity/common.py
parent0c5f12aec063c689d859027c2944e1cc3497a1ff (diff)
downloadpython-openstackclient-f7feef7f8d1df7b6a28eb6d2e684bf8f1853d356.tar.gz
Enable specifying domain for group and role commands
Many of the commands for the group and role resources were lacking an option to specify the specific domain groups, projects or users belong to. This commit fixes that. Change-Id: I461d2bcfd01ad2dea970de38ec7ad6f4a631ceb1 Closes-bug: #1446546
Diffstat (limited to 'openstackclient/identity/common.py')
-rw-r--r--openstackclient/identity/common.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/openstackclient/identity/common.py b/openstackclient/identity/common.py
index a6e674c0..b97a1778 100644
--- a/openstackclient/identity/common.py
+++ b/openstackclient/identity/common.py
@@ -43,22 +43,32 @@ def find_service(identity_client, name_type_or_id):
raise exceptions.CommandError(msg)
+def _get_domain_id_if_requested(identity_client, domain_name_or_id):
+ if not domain_name_or_id:
+ return None
+ domain = find_domain(identity_client, domain_name_or_id)
+ return domain.id
+
+
def find_domain(identity_client, name_or_id):
return _find_identity_resource(identity_client.domains, name_or_id,
domains.Domain)
-def find_group(identity_client, name_or_id, domain_id=None):
+def find_group(identity_client, name_or_id, domain_name_or_id=None):
+ domain_id = _get_domain_id_if_requested(identity_client, domain_name_or_id)
return _find_identity_resource(identity_client.groups, name_or_id,
groups.Group, domain_id=domain_id)
-def find_project(identity_client, name_or_id, domain_id=None):
+def find_project(identity_client, name_or_id, domain_name_or_id=None):
+ domain_id = _get_domain_id_if_requested(identity_client, domain_name_or_id)
return _find_identity_resource(identity_client.projects, name_or_id,
projects.Project, domain_id=domain_id)
-def find_user(identity_client, name_or_id, domain_id=None):
+def find_user(identity_client, name_or_id, domain_name_or_id=None):
+ domain_id = _get_domain_id_if_requested(identity_client, domain_name_or_id)
return _find_identity_resource(identity_client.users, name_or_id,
users.User, domain_id=domain_id)