Refactor option handling for user|group|project domain scoping
put the common options in identity.common, this way the help is consistent Change-Id: I5b09cfb56fa0f8d16feb95150f216fccbe9f2b22
This commit is contained in:
parent
c508162d53
commit
2b0013c5c1
doc/source/command-objects
openstackclient/identity
@ -28,19 +28,18 @@ Create EC2 credentials
|
|||||||
|
|
||||||
.. option:: --user-domain <user-domain>
|
.. option:: --user-domain <user-domain>
|
||||||
|
|
||||||
Select user from a specific domain (name or ID)
|
Domain the user belongs to (name or ID). This can be
|
||||||
This can be used in case collisions between user names exist.
|
used in case collisions between user names exist.
|
||||||
|
|
||||||
.. versionadded:: 3
|
.. versionadded:: 3
|
||||||
|
|
||||||
.. option:: --project-domain <project-domain>
|
.. option:: --project-domain <project-domain>
|
||||||
|
|
||||||
Select project from a specific domain (name or ID)
|
Domain the project belongs to (name or ID). This can be
|
||||||
This can be used in case collisions between project names exist.
|
used in case collisions between user names exist.
|
||||||
|
|
||||||
.. versionadded:: 3
|
.. versionadded:: 3
|
||||||
|
|
||||||
|
|
||||||
The :option:`--project` and :option:`--user` options are typically only
|
The :option:`--project` and :option:`--user` options are typically only
|
||||||
useful for admin users, but may be allowed for other users depending on
|
useful for admin users, but may be allowed for other users depending on
|
||||||
the policy of the cloud and the roles granted to the user.
|
the policy of the cloud and the roles granted to the user.
|
||||||
|
@ -39,15 +39,16 @@ Create new trust
|
|||||||
|
|
||||||
Sets an expiration date for the trust (format of YYYY-mm-ddTHH:MM:SS)
|
Sets an expiration date for the trust (format of YYYY-mm-ddTHH:MM:SS)
|
||||||
|
|
||||||
.. option:: --project-domain <domain>
|
.. option:: --project-domain <project-domain>
|
||||||
|
|
||||||
Domain that contains <project> (name or ID)
|
Domain the project belongs to (name or ID). This can be
|
||||||
|
used in case collisions between user names exist.
|
||||||
|
|
||||||
.. option:: --trustor-domain <domain>
|
.. option:: --trustor-domain <trustor-domain>
|
||||||
|
|
||||||
Domain that contains <trustor> (name or ID)
|
Domain that contains <trustor> (name or ID)
|
||||||
|
|
||||||
.. option:: --trustee-domain <domain>
|
.. option:: --trustee-domain <trustee-domain>
|
||||||
|
|
||||||
Domain that contains <trustee> (name or ID)
|
Domain that contains <trustee> (name or ID)
|
||||||
|
|
||||||
|
@ -109,3 +109,33 @@ def _find_identity_resource(identity_client_manager, name_or_id,
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
return resource_type(None, {'id': name_or_id, 'name': name_or_id})
|
return resource_type(None, {'id': name_or_id, 'name': name_or_id})
|
||||||
|
|
||||||
|
|
||||||
|
def add_user_domain_option_to_parser(parser):
|
||||||
|
parser.add_argument(
|
||||||
|
'--user-domain',
|
||||||
|
metavar='<user-domain>',
|
||||||
|
help=('Domain the user belongs to (name or ID). '
|
||||||
|
'This can be used in case collisions between user names '
|
||||||
|
'exist.')
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def add_group_domain_option_to_parser(parser):
|
||||||
|
parser.add_argument(
|
||||||
|
'--group-domain',
|
||||||
|
metavar='<group-domain>',
|
||||||
|
help=('Domain the group belongs to (name or ID). '
|
||||||
|
'This can be used in case collisions between group names '
|
||||||
|
'exist.')
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def add_project_domain_option_to_parser(parser):
|
||||||
|
parser.add_argument(
|
||||||
|
'--project-domain',
|
||||||
|
metavar='<project-domain>',
|
||||||
|
help=('Domain the project belongs to (name or ID). '
|
||||||
|
'This can be used in case collisions between project names '
|
||||||
|
'exist.')
|
||||||
|
)
|
||||||
|
@ -75,24 +75,8 @@ class CreateEC2Creds(show.ShowOne):
|
|||||||
'(name or ID; default: current authenticated user)'
|
'(name or ID; default: current authenticated user)'
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
common.add_user_domain_option_to_parser(parser)
|
||||||
'--user-domain',
|
common.add_project_domain_option_to_parser(parser)
|
||||||
metavar='<user-domain>',
|
|
||||||
help=(
|
|
||||||
'Select user from a specific domain (name or ID); '
|
|
||||||
'This can be used in case collisions between user names '
|
|
||||||
'exist.'
|
|
||||||
),
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'--project-domain',
|
|
||||||
metavar='<project-domain>',
|
|
||||||
help=(
|
|
||||||
'Select project from a specific domain (name or ID); '
|
|
||||||
'This can be used in case collisions between project names '
|
|
||||||
'exist.'
|
|
||||||
),
|
|
||||||
)
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
@ -149,15 +133,7 @@ class DeleteEC2Creds(command.Command):
|
|||||||
metavar='<user>',
|
metavar='<user>',
|
||||||
help=_('Delete credentials for user (name or ID)'),
|
help=_('Delete credentials for user (name or ID)'),
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
common.add_user_domain_option_to_parser(parser)
|
||||||
'--user-domain',
|
|
||||||
metavar='<user-domain>',
|
|
||||||
help=(
|
|
||||||
'Select user from a specific domain (name or ID); '
|
|
||||||
'This can be used in case collisions between user names '
|
|
||||||
'exist.'
|
|
||||||
),
|
|
||||||
)
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
@ -179,15 +155,7 @@ class ListEC2Creds(lister.Lister):
|
|||||||
metavar='<user>',
|
metavar='<user>',
|
||||||
help=_('Filter list by user (name or ID)'),
|
help=_('Filter list by user (name or ID)'),
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
common.add_user_domain_option_to_parser(parser)
|
||||||
'--user-domain',
|
|
||||||
metavar='<user-domain>',
|
|
||||||
help=(
|
|
||||||
'Select user from a specific domain (name or ID); '
|
|
||||||
'This can be used in case collisions between user names '
|
|
||||||
'exist.'
|
|
||||||
),
|
|
||||||
)
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
@ -223,15 +191,7 @@ class ShowEC2Creds(show.ShowOne):
|
|||||||
metavar='<user>',
|
metavar='<user>',
|
||||||
help=_('Show credentials for user (name or ID)'),
|
help=_('Show credentials for user (name or ID)'),
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
common.add_user_domain_option_to_parser(parser)
|
||||||
'--user-domain',
|
|
||||||
metavar='<user-domain>',
|
|
||||||
help=(
|
|
||||||
'Select user from a specific domain (name or ID); '
|
|
||||||
'This can be used in case collisions between user names '
|
|
||||||
'exist.'
|
|
||||||
),
|
|
||||||
)
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
|
@ -46,20 +46,8 @@ class AddUserToGroup(command.Command):
|
|||||||
metavar='<user>',
|
metavar='<user>',
|
||||||
help='User to add to <group> (name or ID)',
|
help='User to add to <group> (name or ID)',
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
common.add_group_domain_option_to_parser(parser)
|
||||||
'--group-domain',
|
common.add_user_domain_option_to_parser(parser)
|
||||||
metavar='<group-domain>',
|
|
||||||
help=('Domain the group belongs to (name or ID). '
|
|
||||||
'This can be used in case collisions between group names '
|
|
||||||
'exist.')
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'--user-domain',
|
|
||||||
metavar='<user-domain>',
|
|
||||||
help=('Domain the user belongs to (name or ID). '
|
|
||||||
'This can be used in case collisions between user names '
|
|
||||||
'exist.')
|
|
||||||
)
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
@ -100,20 +88,8 @@ class CheckUserInGroup(command.Command):
|
|||||||
metavar='<user>',
|
metavar='<user>',
|
||||||
help='User to check (name or ID)',
|
help='User to check (name or ID)',
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
common.add_group_domain_option_to_parser(parser)
|
||||||
'--group-domain',
|
common.add_user_domain_option_to_parser(parser)
|
||||||
metavar='<group-domain>',
|
|
||||||
help=('Domain the group belongs to (name or ID). '
|
|
||||||
'This can be used in case collisions between group names '
|
|
||||||
'exist.')
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'--user-domain',
|
|
||||||
metavar='<user-domain>',
|
|
||||||
help=('Domain the user belongs to (name or ID). '
|
|
||||||
'This can be used in case collisions between user names '
|
|
||||||
'exist.')
|
|
||||||
)
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
@ -241,13 +217,7 @@ class ListGroup(lister.Lister):
|
|||||||
metavar='<user>',
|
metavar='<user>',
|
||||||
help='Filter group list by <user> (name or ID)',
|
help='Filter group list by <user> (name or ID)',
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
common.add_user_domain_option_to_parser(parser)
|
||||||
'--user-domain',
|
|
||||||
metavar='<user-domain>',
|
|
||||||
help=('Domain the user belongs to (name or ID). '
|
|
||||||
'This can be used in case collisions between user names '
|
|
||||||
'exist.')
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--long',
|
'--long',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
@ -310,20 +280,8 @@ class RemoveUserFromGroup(command.Command):
|
|||||||
metavar='<user>',
|
metavar='<user>',
|
||||||
help='User to remove from <group> (name or ID)',
|
help='User to remove from <group> (name or ID)',
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
common.add_group_domain_option_to_parser(parser)
|
||||||
'--group-domain',
|
common.add_user_domain_option_to_parser(parser)
|
||||||
metavar='<group-domain>',
|
|
||||||
help=('Domain the group belongs to (name or ID). '
|
|
||||||
'This can be used in case collisions between group names '
|
|
||||||
'exist.')
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'--user-domain',
|
|
||||||
metavar='<user-domain>',
|
|
||||||
help=('Domain the user belongs to (name or ID). '
|
|
||||||
'This can be used in case collisions between user names '
|
|
||||||
'exist.')
|
|
||||||
)
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
|
@ -52,27 +52,9 @@ def _add_identity_and_resource_options_to_parser(parser):
|
|||||||
metavar='<group>',
|
metavar='<group>',
|
||||||
help='Include <group> (name or ID)',
|
help='Include <group> (name or ID)',
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
common.add_group_domain_option_to_parser(parser)
|
||||||
'--user-domain',
|
common.add_project_domain_option_to_parser(parser)
|
||||||
metavar='<user-domain>',
|
common.add_user_domain_option_to_parser(parser)
|
||||||
help=('Domain the user belongs to (name or ID). '
|
|
||||||
'This can be used in case collisions between user names '
|
|
||||||
'exist.')
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'--group-domain',
|
|
||||||
metavar='<group-domain>',
|
|
||||||
help=('Domain the group belongs to (name or ID). '
|
|
||||||
'This can be used in case collisions between group names '
|
|
||||||
'exist.')
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'--project-domain',
|
|
||||||
metavar='<project-domain>',
|
|
||||||
help=('Domain the project belongs to (name or ID). '
|
|
||||||
'This can be used in case collisions between project names '
|
|
||||||
'exist.')
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def _process_identity_and_resource_options(parsed_args,
|
def _process_identity_and_resource_options(parsed_args,
|
||||||
|
@ -71,19 +71,15 @@ class CreateTrust(show.ShowOne):
|
|||||||
help='Sets an expiration date for the trust'
|
help='Sets an expiration date for the trust'
|
||||||
' (format of YYYY-mm-ddTHH:MM:SS)',
|
' (format of YYYY-mm-ddTHH:MM:SS)',
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
common.add_project_domain_option_to_parser(parser)
|
||||||
'--project-domain',
|
|
||||||
metavar='<domain>',
|
|
||||||
help='Domain that contains <project> (name or ID)',
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--trustor-domain',
|
'--trustor-domain',
|
||||||
metavar='<domain>',
|
metavar='<trustor-domain>',
|
||||||
help='Domain that contains <trustor> (name or ID)',
|
help='Domain that contains <trustor> (name or ID)',
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--trustee-domain',
|
'--trustee-domain',
|
||||||
metavar='<domain>',
|
metavar='<trustee-domain>',
|
||||||
help='Domain that contains <trustee> (name or ID)',
|
help='Domain that contains <trustee> (name or ID)',
|
||||||
)
|
)
|
||||||
return parser
|
return parser
|
||||||
|
Loading…
x
Reference in New Issue
Block a user