summaryrefslogtreecommitdiff
path: root/openstackclient/identity
diff options
context:
space:
mode:
authorSteve Martinelli <stevemar@ca.ibm.com>2014-10-07 02:15:15 -0400
committerSteve Martinelli <stevemar@ca.ibm.com>2014-10-09 14:34:48 -0400
commit364071a90bfe9dcec1d02a349c33dc8422fc14f3 (patch)
tree704c8a12ce913ceb735af4adabb54f1498c16a53 /openstackclient/identity
parent0c77a9fe8baa4df9ea2d0055db9c700af3cae310 (diff)
downloadpython-openstackclient-364071a90bfe9dcec1d02a349c33dc8422fc14f3.tar.gz
Add domain parameters to user show for Identity V3
Update `user show` for Identity V3 to account for a domain argument, in doing so, also update `find resource` to be more flexible by allowing **kwargs. Also update `group show` and `project show` since they follow the same logic as a user within a group. Change-Id: Ib828e4dbeb0bd31164396069ce8a64c873179779 Closes-Bug: #1378165
Diffstat (limited to 'openstackclient/identity')
-rw-r--r--openstackclient/identity/v3/group.py23
-rw-r--r--openstackclient/identity/v3/project.py23
-rw-r--r--openstackclient/identity/v3/user.py22
3 files changed, 50 insertions, 18 deletions
diff --git a/openstackclient/identity/v3/group.py b/openstackclient/identity/v3/group.py
index 4eb14489..fdb9501a 100644
--- a/openstackclient/identity/v3/group.py
+++ b/openstackclient/identity/v3/group.py
@@ -24,6 +24,7 @@ from cliff import lister
from cliff import show
from openstackclient.common import utils
+from openstackclient.identity import common
class AddUserToGroup(command.Command):
@@ -321,14 +322,26 @@ class ShowGroup(show.ShowOne):
parser.add_argument(
'group',
metavar='<group>',
- help='Name or ID of group to display')
+ help='Name or ID of group to display',
+ )
+ parser.add_argument(
+ '--domain',
+ metavar='<domain>',
+ help='Domain where group resides (name or ID)',
+ )
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)', parsed_args)
identity_client = self.app.client_manager.identity
- group = utils.find_resource(identity_client.groups, parsed_args.group)
- info = {}
- info.update(group._info)
- return zip(*sorted(six.iteritems(info)))
+ if parsed_args.domain:
+ domain = common.find_domain(identity_client, parsed_args.domain)
+ group = utils.find_resource(identity_client.groups,
+ parsed_args.group,
+ domain_id=domain.id)
+ else:
+ group = utils.find_resource(identity_client.groups,
+ parsed_args.group)
+
+ return zip(*sorted(six.iteritems(group._info)))
diff --git a/openstackclient/identity/v3/project.py b/openstackclient/identity/v3/project.py
index fa935f0b..ec8e5a3b 100644
--- a/openstackclient/identity/v3/project.py
+++ b/openstackclient/identity/v3/project.py
@@ -264,15 +264,26 @@ class ShowProject(show.ShowOne):
parser.add_argument(
'project',
metavar='<project>',
- help='Name or ID of project to display')
+ help='Name or ID of project to display',
+ )
+ parser.add_argument(
+ '--domain',
+ metavar='<domain>',
+ help='Domain where project resides (name or ID)',
+ )
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)', parsed_args)
identity_client = self.app.client_manager.identity
- project = utils.find_resource(identity_client.projects,
- parsed_args.project)
- info = {}
- info.update(project._info)
- return zip(*sorted(six.iteritems(info)))
+ if parsed_args.domain:
+ domain = common.find_domain(identity_client, parsed_args.domain)
+ project = utils.find_resource(identity_client.projects,
+ parsed_args.project,
+ domain_id=domain.id)
+ else:
+ project = utils.find_resource(identity_client.projects,
+ parsed_args.project)
+
+ return zip(*sorted(six.iteritems(project._info)))
diff --git a/openstackclient/identity/v3/user.py b/openstackclient/identity/v3/user.py
index e4eb7526..73bb7f13 100644
--- a/openstackclient/identity/v3/user.py
+++ b/openstackclient/identity/v3/user.py
@@ -23,6 +23,7 @@ from cliff import lister
from cliff import show
from openstackclient.common import utils
+from openstackclient.identity import common
class CreateUser(show.ShowOne):
@@ -364,17 +365,24 @@ class ShowUser(show.ShowOne):
metavar='<user>',
help='User to display (name or ID)',
)
+ parser.add_argument(
+ '--domain',
+ metavar='<domain>',
+ help='Domain where user resides (name or ID)',
+ )
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)', parsed_args)
identity_client = self.app.client_manager.identity
- user = utils.find_resource(
- identity_client.users,
- parsed_args.user,
- )
+ if parsed_args.domain:
+ domain = common.find_domain(identity_client, parsed_args.domain)
+ user = utils.find_resource(identity_client.users,
+ parsed_args.user,
+ domain_id=domain.id)
+ else:
+ user = utils.find_resource(identity_client.users,
+ parsed_args.user)
- info = {}
- info.update(user._info)
- return zip(*sorted(six.iteritems(info)))
+ return zip(*sorted(six.iteritems(user._info)))