identity: Use plural dest for append opts
Change-Id: I73a263a309e022b7606ced43a814a1d1914bc751 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
@@ -59,6 +59,7 @@ class CreateProject(command.ShowOne):
|
||||
parser.add_argument(
|
||||
'--property',
|
||||
metavar='<key=value>',
|
||||
dest='properties',
|
||||
action=parseractions.KeyValueAction,
|
||||
help=_(
|
||||
'Add a property to <name> '
|
||||
@@ -79,8 +80,8 @@ class CreateProject(command.ShowOne):
|
||||
if parsed_args.disable:
|
||||
enabled = False
|
||||
kwargs = {}
|
||||
if parsed_args.property:
|
||||
kwargs = parsed_args.property.copy()
|
||||
if parsed_args.properties:
|
||||
kwargs.update(parsed_args.properties)
|
||||
|
||||
try:
|
||||
project = identity_client.tenants.create(
|
||||
@@ -230,6 +231,7 @@ class SetProject(command.Command):
|
||||
parser.add_argument(
|
||||
'--property',
|
||||
metavar='<key=value>',
|
||||
dest='properties',
|
||||
action=parseractions.KeyValueAction,
|
||||
help=_(
|
||||
'Set a project property '
|
||||
@@ -255,8 +257,8 @@ class SetProject(command.Command):
|
||||
kwargs['enabled'] = True
|
||||
if parsed_args.disable:
|
||||
kwargs['enabled'] = False
|
||||
if parsed_args.property:
|
||||
kwargs.update(parsed_args.property)
|
||||
if parsed_args.properties:
|
||||
kwargs.update(parsed_args.properties)
|
||||
if 'id' in kwargs:
|
||||
del kwargs['id']
|
||||
if 'name' in kwargs:
|
||||
@@ -338,6 +340,7 @@ class UnsetProject(command.Command):
|
||||
parser.add_argument(
|
||||
'--property',
|
||||
metavar='<key>',
|
||||
dest='properties',
|
||||
action='append',
|
||||
default=[],
|
||||
help=_(
|
||||
@@ -354,7 +357,7 @@ class UnsetProject(command.Command):
|
||||
parsed_args.project,
|
||||
)
|
||||
kwargs = project._info
|
||||
for key in parsed_args.property:
|
||||
for key in parsed_args.properties:
|
||||
if key in kwargs:
|
||||
kwargs[key] = None
|
||||
identity_client.tenants.update(project.id, **kwargs)
|
||||
|
||||
@@ -149,6 +149,7 @@ class CreateApplicationCredential(command.ShowOne):
|
||||
parser.add_argument(
|
||||
'--role',
|
||||
metavar='<role>',
|
||||
dest='roles',
|
||||
action='append',
|
||||
default=[],
|
||||
help=_(
|
||||
@@ -208,7 +209,7 @@ class CreateApplicationCredential(command.ShowOne):
|
||||
user_id = conn.config.get_auth().get_user_id(conn.identity)
|
||||
|
||||
role_ids = []
|
||||
for role in parsed_args.role:
|
||||
for role in parsed_args.roles:
|
||||
if is_uuid_like(role):
|
||||
role_ids.append({'id': role})
|
||||
else:
|
||||
|
||||
@@ -41,6 +41,7 @@ class CreateIdentityProvider(command.ShowOne):
|
||||
identity_remote_id_provider.add_argument(
|
||||
'--remote-id',
|
||||
metavar='<remote-id>',
|
||||
dest='remote_ids',
|
||||
action='append',
|
||||
help=_(
|
||||
'Remote IDs to associate with the Identity Provider '
|
||||
@@ -99,16 +100,15 @@ class CreateIdentityProvider(command.ShowOne):
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
identity_client = self.app.client_manager.identity
|
||||
remote_ids: list[str] | None = None
|
||||
if parsed_args.remote_id_file:
|
||||
file_content = utils.read_blob_file_contents(
|
||||
parsed_args.remote_id_file
|
||||
)
|
||||
remote_ids = file_content.splitlines()
|
||||
remote_ids = list(map(str.strip, remote_ids))
|
||||
else:
|
||||
remote_ids = (
|
||||
parsed_args.remote_id if parsed_args.remote_id else None
|
||||
)
|
||||
elif parsed_args.remote_ids:
|
||||
remote_ids = parsed_args.remote_ids
|
||||
|
||||
domain_id = None
|
||||
if parsed_args.domain:
|
||||
@@ -240,6 +240,7 @@ class SetIdentityProvider(command.Command):
|
||||
identity_remote_id_provider.add_argument(
|
||||
'--remote-id',
|
||||
metavar='<remote-id>',
|
||||
dest='remote_ids',
|
||||
action='append',
|
||||
help=_(
|
||||
'Remote IDs to associate with the Identity Provider '
|
||||
@@ -287,8 +288,8 @@ class SetIdentityProvider(command.Command):
|
||||
)
|
||||
remote_ids = file_content.splitlines()
|
||||
remote_ids = list(map(str.strip, remote_ids))
|
||||
elif parsed_args.remote_id:
|
||||
remote_ids = parsed_args.remote_id
|
||||
elif parsed_args.remote_ids:
|
||||
remote_ids = parsed_args.remote_ids
|
||||
|
||||
# Setup keyword args for the client
|
||||
kwargs = {}
|
||||
@@ -298,7 +299,7 @@ class SetIdentityProvider(command.Command):
|
||||
kwargs['enabled'] = True
|
||||
if parsed_args.disable:
|
||||
kwargs['enabled'] = False
|
||||
if parsed_args.remote_id_file or parsed_args.remote_id:
|
||||
if parsed_args.remote_id_file or parsed_args.remote_ids:
|
||||
kwargs['remote_ids'] = remote_ids
|
||||
|
||||
# TODO(pas-ha) actually check for 3.14 microversion
|
||||
|
||||
@@ -73,8 +73,8 @@ class CreateProject(command.ShowOne):
|
||||
parser.add_argument(
|
||||
'--property',
|
||||
metavar='<key=value>',
|
||||
action=parseractions.KeyValueAction,
|
||||
dest='properties',
|
||||
action=parseractions.KeyValueAction,
|
||||
help=_(
|
||||
'Add a property to <name> '
|
||||
'(repeat option to set multiple properties)'
|
||||
|
||||
@@ -114,6 +114,7 @@ def add_tag_option_to_parser_for_set(parser, resource_name):
|
||||
parser.add_argument(
|
||||
'--remove-tag',
|
||||
action='append',
|
||||
dest='remove_tags',
|
||||
metavar='<tag>',
|
||||
default=[],
|
||||
help=_(
|
||||
@@ -128,8 +129,8 @@ def update_tags_in_args(parsed_args, obj, args):
|
||||
if parsed_args.clear_tags:
|
||||
args['tags'] = []
|
||||
obj.tags = []
|
||||
if parsed_args.remove_tag:
|
||||
args['tags'] = sorted(set(obj.tags) - set(parsed_args.remove_tag))
|
||||
if parsed_args.remove_tags:
|
||||
args['tags'] = sorted(set(obj.tags) - set(parsed_args.remove_tags))
|
||||
return
|
||||
if parsed_args.tags:
|
||||
args['tags'] = sorted(set(obj.tags).union(set(parsed_args.tags)))
|
||||
|
||||
@@ -37,6 +37,7 @@ class AuthorizeRequestToken(command.ShowOne):
|
||||
parser.add_argument(
|
||||
'--role',
|
||||
metavar='<role>',
|
||||
dest='roles',
|
||||
action='append',
|
||||
default=[],
|
||||
required=True,
|
||||
@@ -52,7 +53,7 @@ class AuthorizeRequestToken(command.ShowOne):
|
||||
|
||||
# NOTE(stevemar): We want a list of role ids
|
||||
roles = []
|
||||
for role in parsed_args.role:
|
||||
for role in parsed_args.roles:
|
||||
role_id = utils.find_resource(
|
||||
identity_client.roles,
|
||||
role,
|
||||
|
||||
@@ -82,9 +82,9 @@ def _get_options_for_user(identity_client, parsed_args):
|
||||
options['multi_factor_auth_enabled'] = True
|
||||
if parsed_args.disable_multi_factor_auth:
|
||||
options['multi_factor_auth_enabled'] = False
|
||||
if parsed_args.multi_factor_auth_rule:
|
||||
if parsed_args.multi_factor_auth_rules:
|
||||
auth_rules = [
|
||||
rule.split(",") for rule in parsed_args.multi_factor_auth_rule
|
||||
rule.split(",") for rule in parsed_args.multi_factor_auth_rules
|
||||
]
|
||||
if auth_rules:
|
||||
options['multi_factor_auth_rules'] = auth_rules
|
||||
@@ -175,7 +175,8 @@ def _add_user_options(parser):
|
||||
parser.add_argument(
|
||||
'--multi-factor-auth-rule',
|
||||
metavar='<rule>',
|
||||
action="append",
|
||||
dest='multi_factor_auth_rules',
|
||||
action='append',
|
||||
default=[],
|
||||
help=_(
|
||||
'Set multi-factor auth rules. For example, to set a rule '
|
||||
|
||||
@@ -195,7 +195,7 @@ class TestProjectCreate(TestProject):
|
||||
self.fake_project.name,
|
||||
]
|
||||
verifylist = [
|
||||
('property', {'fee': 'fi', 'fo': 'fum'}),
|
||||
('properties', {'fee': 'fi', 'fo': 'fum'}),
|
||||
('name', self.fake_project.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -464,7 +464,7 @@ class TestProjectSet(TestProject):
|
||||
('description', None),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('property', None),
|
||||
('properties', None),
|
||||
]
|
||||
self.projects_mock.get.side_effect = exceptions.NotFound(None)
|
||||
self.projects_mock.find.side_effect = exceptions.NotFound(None)
|
||||
@@ -588,7 +588,7 @@ class TestProjectSet(TestProject):
|
||||
self.fake_project.name,
|
||||
]
|
||||
verifylist = [
|
||||
('property', {'fee': 'fi', 'fo': 'fum'}),
|
||||
('properties', {'fee': 'fi', 'fo': 'fum'}),
|
||||
('project', self.fake_project.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -683,7 +683,7 @@ class TestProjectUnset(TestProject):
|
||||
self.fake_proj.name,
|
||||
]
|
||||
verifylist = [
|
||||
('property', ['fee', 'fo']),
|
||||
('properties', ['fee', 'fo']),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ class TestApplicationCredentialCreate(identity_fakes.TestIdentityv3):
|
||||
verifylist = [
|
||||
('name', self.application_credential.name),
|
||||
('secret', 'moresecuresecret'),
|
||||
('role', [self.roles.id]),
|
||||
('roles', [self.roles.id]),
|
||||
('expiration', '2024-01-01T00:00:00'),
|
||||
('description', 'credential for testing'),
|
||||
]
|
||||
|
||||
@@ -127,7 +127,7 @@ class TestIdentityProviderCreate(TestIdentityProvider):
|
||||
]
|
||||
verifylist = [
|
||||
('identity_provider_id', identity_fakes.idp_id),
|
||||
('remote_id', identity_fakes.idp_remote_ids[:1]),
|
||||
('remote_ids', identity_fakes.idp_remote_ids[:1]),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
@@ -157,7 +157,7 @@ class TestIdentityProviderCreate(TestIdentityProvider):
|
||||
]
|
||||
verifylist = [
|
||||
('identity_provider_id', identity_fakes.idp_id),
|
||||
('remote_id', identity_fakes.idp_remote_ids),
|
||||
('remote_ids', identity_fakes.idp_remote_ids),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
@@ -561,7 +561,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
|
||||
('description', new_description),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('remote_id', None),
|
||||
('remote_ids', None),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
self.cmd.take_action(parsed_args)
|
||||
@@ -597,7 +597,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
|
||||
('description', None),
|
||||
('enable', False),
|
||||
('disable', True),
|
||||
('remote_id', identity_fakes.idp_remote_ids),
|
||||
('remote_ids', identity_fakes.idp_remote_ids),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@@ -637,7 +637,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
|
||||
('description', None),
|
||||
('enable', True),
|
||||
('disable', False),
|
||||
('remote_id', identity_fakes.idp_remote_ids),
|
||||
('remote_ids', identity_fakes.idp_remote_ids),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@@ -675,7 +675,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
|
||||
('description', None),
|
||||
('enable', True),
|
||||
('disable', False),
|
||||
('remote_id', [self.new_remote_id]),
|
||||
('remote_ids', [self.new_remote_id]),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@@ -756,7 +756,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
|
||||
('identity_provider', identity_fakes.idp_id),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('remote_id', None),
|
||||
('remote_ids', None),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@@ -776,7 +776,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
|
||||
('identity_provider', identity_fakes.idp_id),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('remote_id', None),
|
||||
('remote_ids', None),
|
||||
('authorization_ttl', 60),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -800,7 +800,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
|
||||
('identity_provider', identity_fakes.idp_id),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('remote_id', None),
|
||||
('remote_ids', None),
|
||||
('authorization_ttl', 0),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -816,7 +816,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
|
||||
('identity_provider', identity_fakes.idp_id),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('remote_id', None),
|
||||
('remote_ids', None),
|
||||
('authorization_ttl', -1),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@@ -109,7 +109,7 @@ class TestRequestTokenAuthorize(TestOAuth1):
|
||||
]
|
||||
verifylist = [
|
||||
('request_key', identity_fakes.request_token_id),
|
||||
('role', [identity_fakes.role_name]),
|
||||
('roles', [identity_fakes.role_name]),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
@@ -1142,7 +1142,7 @@ class TestProjectSet(TestProject):
|
||||
verifylist = [
|
||||
('enabled', None),
|
||||
('project', self.project.name),
|
||||
('remove_tag', ['tag1', 'tag2']),
|
||||
('remove_tags', ['tag1', 'tag2']),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
|
||||
@@ -730,7 +730,7 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
]
|
||||
verifylist = [
|
||||
(
|
||||
'multi_factor_auth_rule',
|
||||
'multi_factor_auth_rules',
|
||||
[identity_fakes.mfa_opt1, identity_fakes.mfa_opt2],
|
||||
),
|
||||
('enable', False),
|
||||
@@ -769,7 +769,7 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
verifylist = [
|
||||
('ignore_password_expiry', True),
|
||||
('disable_multi_factor_auth', True),
|
||||
('multi_factor_auth_rule', [identity_fakes.mfa_opt1]),
|
||||
('multi_factor_auth_rules', [identity_fakes.mfa_opt1]),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('name', self.user.name),
|
||||
@@ -1667,7 +1667,7 @@ class TestUserSet(identity_fakes.TestIdentityv3):
|
||||
('name', None),
|
||||
('password', None),
|
||||
('email', None),
|
||||
('multi_factor_auth_rule', [identity_fakes.mfa_opt1]),
|
||||
('multi_factor_auth_rules', [identity_fakes.mfa_opt1]),
|
||||
('project', None),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
@@ -1701,7 +1701,7 @@ class TestUserSet(identity_fakes.TestIdentityv3):
|
||||
('email', None),
|
||||
('ignore_password_expiry', True),
|
||||
('enable_multi_factor_auth', True),
|
||||
('multi_factor_auth_rule', [identity_fakes.mfa_opt1]),
|
||||
('multi_factor_auth_rules', [identity_fakes.mfa_opt1]),
|
||||
('project', None),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
|
||||
Reference in New Issue
Block a user