diff options
| author | Jenkins <jenkins@review.openstack.org> | 2015-06-25 21:51:04 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2015-06-25 21:51:04 +0000 |
| commit | ec31a2a12efe54b9b1149e198560a0164f070485 (patch) | |
| tree | 270d1f144fd15a25eb2f9fe38fdd9776133eb966 /openstackclient/identity | |
| parent | 2cc679ed9f855c8dcb40ef2eeaf5f81e447772f6 (diff) | |
| parent | 4fab60634983f9327295cc68edf89824557728f9 (diff) | |
| download | python-openstackclient-ec31a2a12efe54b9b1149e198560a0164f070485.tar.gz | |
Merge "Enables retrieval of project's parents and subtree"
Diffstat (limited to 'openstackclient/identity')
| -rw-r--r-- | openstackclient/identity/v3/project.py | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/openstackclient/identity/v3/project.py b/openstackclient/identity/v3/project.py index 48f547f3..8185d65a 100644 --- a/openstackclient/identity/v3/project.py +++ b/openstackclient/identity/v3/project.py @@ -323,6 +323,18 @@ class ShowProject(show.ShowOne): metavar='<domain>', help='Domain owning <project> (name or ID)', ) + parser.add_argument( + '--parents', + action='store_true', + default=False, + help='Show the project\'s parents as a list', + ) + parser.add_argument( + '--children', + action='store_true', + default=False, + help='Show project\'s subtree (children) as a list', + ) return parser def take_action(self, parsed_args): @@ -331,14 +343,25 @@ class ShowProject(show.ShowOne): 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) + project = utils.find_resource( + identity_client.projects, + parsed_args.project, + domain_id=domain.id, + parents_as_list=parsed_args.parents, + subtree_as_list=parsed_args.children) else: - project = utils.find_resource(identity_client.projects, - parsed_args.project) + project = utils.find_resource( + identity_client.projects, + parsed_args.project, + parents_as_list=parsed_args.parents, + subtree_as_list=parsed_args.children) + + if project._info.get('parents'): + project._info['parents'] = [str(p['project']['id']) + for p in project._info['parents']] + if project._info.get('subtree'): + project._info['subtree'] = [str(p['project']['id']) + for p in project._info['subtree']] project._info.pop('links') - # TODO(stevemar): Remove the line below when we support multitenancy - project._info.pop('parent_id', None) return zip(*sorted(six.iteritems(project._info))) |
