diff options
Diffstat (limited to 'openstackclient/identity')
| -rw-r--r-- | openstackclient/identity/common.py | 2 | ||||
| -rw-r--r-- | openstackclient/identity/v3/project.py | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/openstackclient/identity/common.py b/openstackclient/identity/common.py index e8251166..3200e535 100644 --- a/openstackclient/identity/common.py +++ b/openstackclient/identity/common.py @@ -207,7 +207,7 @@ def _find_identity_resource(identity_client_manager, name_or_id, name_or_id, **kwargs) if identity_resource is not None: return identity_resource - except identity_exc.Forbidden: + except (exceptions.Forbidden, identity_exc.Forbidden): pass return resource_type(None, {'id': name_or_id, 'name': name_or_id}) diff --git a/openstackclient/identity/v3/project.py b/openstackclient/identity/v3/project.py index 1d6f1810..35d68881 100644 --- a/openstackclient/identity/v3/project.py +++ b/openstackclient/identity/v3/project.py @@ -194,6 +194,11 @@ class ListProject(command.Lister): help=_('Filter projects by <domain> (name or ID)'), ) parser.add_argument( + '--parent', + metavar='<parent>', + help=_('Filter projects whose parent is <parent> (name or ID)'), + ) + parser.add_argument( '--user', metavar='<user>', help=_('Filter projects by <user> (name or ID)'), @@ -234,6 +239,11 @@ class ListProject(command.Lister): parsed_args.domain).id kwargs['domain'] = domain_id + if parsed_args.parent: + parent_id = common.find_project(identity_client, + parsed_args.parent).id + kwargs['parent'] = parent_id + if parsed_args.user: if parsed_args.domain: user_id = utils.find_resource(identity_client.users, |
