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:
Steve Martinelli 2015-06-09 17:25:12 -04:00
parent c508162d53
commit 2b0013c5c1
7 changed files with 57 additions and 131 deletions

View File

@ -28,19 +28,18 @@ Create EC2 credentials
.. option:: --user-domain <user-domain>
Select user from a specific domain (name or ID)
This can be used in case collisions between user names exist.
Domain the user belongs to (name or ID). This can be
used in case collisions between user names exist.
.. versionadded:: 3
.. option:: --project-domain <project-domain>
Select project from a specific domain (name or ID)
This can be used in case collisions between project names exist.
Domain the project belongs to (name or ID). This can be
used in case collisions between user names exist.
.. versionadded:: 3
The :option:`--project` and :option:`--user` options are typically only
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.

View File

@ -39,15 +39,16 @@ Create new trust
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)
.. option:: --trustee-domain <domain>
.. option:: --trustee-domain <trustee-domain>
Domain that contains <trustee> (name or ID)

View File

@ -109,3 +109,33 @@ def _find_identity_resource(identity_client_manager, name_or_id,
pass
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.')
)

View File

@ -75,24 +75,8 @@ class CreateEC2Creds(show.ShowOne):
'(name or ID; default: current authenticated user)'
),
)
parser.add_argument(
'--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.'
),
)
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.'
),
)
common.add_user_domain_option_to_parser(parser)
common.add_project_domain_option_to_parser(parser)
return parser
def take_action(self, parsed_args):
@ -149,15 +133,7 @@ class DeleteEC2Creds(command.Command):
metavar='<user>',
help=_('Delete credentials for user (name or ID)'),
)
parser.add_argument(
'--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.'
),
)
common.add_user_domain_option_to_parser(parser)
return parser
def take_action(self, parsed_args):
@ -179,15 +155,7 @@ class ListEC2Creds(lister.Lister):
metavar='<user>',
help=_('Filter list by user (name or ID)'),
)
parser.add_argument(
'--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.'
),
)
common.add_user_domain_option_to_parser(parser)
return parser
def take_action(self, parsed_args):
@ -223,15 +191,7 @@ class ShowEC2Creds(show.ShowOne):
metavar='<user>',
help=_('Show credentials for user (name or ID)'),
)
parser.add_argument(
'--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.'
),
)
common.add_user_domain_option_to_parser(parser)
return parser
def take_action(self, parsed_args):

View File

@ -46,20 +46,8 @@ class AddUserToGroup(command.Command):
metavar='<user>',
help='User to add to <group> (name or ID)',
)
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(
'--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.')
)
common.add_group_domain_option_to_parser(parser)
common.add_user_domain_option_to_parser(parser)
return parser
def take_action(self, parsed_args):
@ -100,20 +88,8 @@ class CheckUserInGroup(command.Command):
metavar='<user>',
help='User to check (name or ID)',
)
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(
'--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.')
)
common.add_group_domain_option_to_parser(parser)
common.add_user_domain_option_to_parser(parser)
return parser
def take_action(self, parsed_args):
@ -241,13 +217,7 @@ class ListGroup(lister.Lister):
metavar='<user>',
help='Filter group list by <user> (name or ID)',
)
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.')
)
common.add_user_domain_option_to_parser(parser)
parser.add_argument(
'--long',
action='store_true',
@ -310,20 +280,8 @@ class RemoveUserFromGroup(command.Command):
metavar='<user>',
help='User to remove from <group> (name or ID)',
)
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(
'--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.')
)
common.add_group_domain_option_to_parser(parser)
common.add_user_domain_option_to_parser(parser)
return parser
def take_action(self, parsed_args):

View File

@ -52,27 +52,9 @@ def _add_identity_and_resource_options_to_parser(parser):
metavar='<group>',
help='Include <group> (name or ID)',
)
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.')
)
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.')
)
common.add_group_domain_option_to_parser(parser)
common.add_project_domain_option_to_parser(parser)
common.add_user_domain_option_to_parser(parser)
def _process_identity_and_resource_options(parsed_args,

View File

@ -71,19 +71,15 @@ class CreateTrust(show.ShowOne):
help='Sets an expiration date for the trust'
' (format of YYYY-mm-ddTHH:MM:SS)',
)
parser.add_argument(
'--project-domain',
metavar='<domain>',
help='Domain that contains <project> (name or ID)',
)
common.add_project_domain_option_to_parser(parser)
parser.add_argument(
'--trustor-domain',
metavar='<domain>',
metavar='<trustor-domain>',
help='Domain that contains <trustor> (name or ID)',
)
parser.add_argument(
'--trustee-domain',
metavar='<domain>',
metavar='<trustee-domain>',
help='Domain that contains <trustee> (name or ID)',
)
return parser