identity: Remove unnecessary helper
Make better use of argparse and eliminate the need for a helper in the process. Change-Id: Ibdc9b4bfbb4d532ddb05bce9b49bcf0580cce76d Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
@@ -348,15 +348,6 @@ def _find_sdk_id(
|
||||
return resource.id
|
||||
|
||||
|
||||
def get_immutable_options(parsed_args):
|
||||
options = {}
|
||||
if parsed_args.immutable:
|
||||
options['immutable'] = True
|
||||
if parsed_args.no_immutable:
|
||||
options['immutable'] = False
|
||||
return options
|
||||
|
||||
|
||||
def add_user_domain_option_to_parser(parser):
|
||||
parser.add_argument(
|
||||
'--user-domain',
|
||||
@@ -419,17 +410,21 @@ def add_inherited_option_to_parser(parser):
|
||||
|
||||
|
||||
def add_resource_option_to_parser(parser):
|
||||
enable_group = parser.add_mutually_exclusive_group()
|
||||
enable_group.add_argument(
|
||||
immutable_group = parser.add_mutually_exclusive_group()
|
||||
immutable_group.add_argument(
|
||||
'--immutable',
|
||||
action='store_true',
|
||||
dest='immutable',
|
||||
default=None,
|
||||
help=_(
|
||||
'Make resource immutable. An immutable project may not '
|
||||
'be deleted or modified except to remove the immutable flag'
|
||||
),
|
||||
)
|
||||
enable_group.add_argument(
|
||||
immutable_group.add_argument(
|
||||
'--no-immutable',
|
||||
action='store_true',
|
||||
action='store_false',
|
||||
dest='immutable',
|
||||
default=None,
|
||||
help=_('Make resource mutable (default)'),
|
||||
)
|
||||
|
@@ -94,7 +94,9 @@ class CreateDomain(command.ShowOne):
|
||||
def take_action(self, parsed_args):
|
||||
identity_client = self.app.client_manager.sdk_connection.identity
|
||||
|
||||
options = common.get_immutable_options(parsed_args)
|
||||
options = {}
|
||||
if parsed_args.immutable is not None:
|
||||
options['immutable'] = parsed_args.immutable
|
||||
|
||||
try:
|
||||
domain = identity_client.create_domain(
|
||||
@@ -242,13 +244,10 @@ class SetDomain(command.Command):
|
||||
kwargs['name'] = parsed_args.name
|
||||
if parsed_args.description:
|
||||
kwargs['description'] = parsed_args.description
|
||||
|
||||
if parsed_args.is_enabled is not None:
|
||||
kwargs['is_enabled'] = parsed_args.is_enabled
|
||||
|
||||
options = common.get_immutable_options(parsed_args)
|
||||
if options:
|
||||
kwargs['options'] = options
|
||||
if parsed_args.immutable is not None:
|
||||
kwargs['options'] = {'immutable': parsed_args.immutable}
|
||||
|
||||
identity_client.update_domain(domain.id, **kwargs)
|
||||
|
||||
|
@@ -59,17 +59,22 @@ class CreateProject(command.ShowOne):
|
||||
enable_group.add_argument(
|
||||
'--enable',
|
||||
action='store_true',
|
||||
dest='enabled',
|
||||
default=True,
|
||||
help=_('Enable project'),
|
||||
)
|
||||
enable_group.add_argument(
|
||||
'--disable',
|
||||
action='store_true',
|
||||
action='store_false',
|
||||
dest='enabled',
|
||||
default=True,
|
||||
help=_('Disable project'),
|
||||
)
|
||||
parser.add_argument(
|
||||
'--property',
|
||||
metavar='<key=value>',
|
||||
action=parseractions.KeyValueAction,
|
||||
dest='properties',
|
||||
help=_(
|
||||
'Add a property to <name> '
|
||||
'(repeat option to set multiple properties)'
|
||||
@@ -98,15 +103,9 @@ class CreateProject(command.ShowOne):
|
||||
parsed_args.parent,
|
||||
).id
|
||||
|
||||
enabled = True
|
||||
if parsed_args.disable:
|
||||
enabled = False
|
||||
|
||||
options = common.get_immutable_options(parsed_args)
|
||||
|
||||
kwargs = {}
|
||||
if parsed_args.property:
|
||||
kwargs = parsed_args.property.copy()
|
||||
if parsed_args.properties:
|
||||
kwargs = parsed_args.properties.copy()
|
||||
if 'is_domain' in kwargs.keys():
|
||||
if kwargs['is_domain'].lower() == "true":
|
||||
kwargs['is_domain'] = True
|
||||
@@ -117,13 +116,17 @@ class CreateProject(command.ShowOne):
|
||||
|
||||
kwargs['tags'] = list(set(parsed_args.tags))
|
||||
|
||||
options = {}
|
||||
if parsed_args.immutable is not None:
|
||||
options['immutable'] = parsed_args.immutable
|
||||
|
||||
try:
|
||||
project = identity_client.projects.create(
|
||||
name=parsed_args.name,
|
||||
domain=domain,
|
||||
parent=parent,
|
||||
description=parsed_args.description,
|
||||
enabled=enabled,
|
||||
enabled=parsed_args.enabled,
|
||||
options=options,
|
||||
**kwargs,
|
||||
)
|
||||
@@ -356,16 +359,21 @@ class SetProject(command.Command):
|
||||
enable_group.add_argument(
|
||||
'--enable',
|
||||
action='store_true',
|
||||
dest='enabled',
|
||||
default=None,
|
||||
help=_('Enable project'),
|
||||
)
|
||||
enable_group.add_argument(
|
||||
'--disable',
|
||||
action='store_true',
|
||||
action='store_false',
|
||||
dest='enabled',
|
||||
default=None,
|
||||
help=_('Disable project'),
|
||||
)
|
||||
parser.add_argument(
|
||||
'--property',
|
||||
metavar='<key=value>',
|
||||
dest='properties',
|
||||
action=parseractions.KeyValueAction,
|
||||
help=_(
|
||||
'Set a property on <project> '
|
||||
@@ -388,15 +396,12 @@ class SetProject(command.Command):
|
||||
kwargs['name'] = parsed_args.name
|
||||
if parsed_args.description:
|
||||
kwargs['description'] = parsed_args.description
|
||||
if parsed_args.enable:
|
||||
kwargs['enabled'] = True
|
||||
if parsed_args.disable:
|
||||
kwargs['enabled'] = False
|
||||
options = common.get_immutable_options(parsed_args)
|
||||
if options:
|
||||
kwargs['options'] = options
|
||||
if parsed_args.property:
|
||||
kwargs.update(parsed_args.property)
|
||||
if parsed_args.enabled is not None:
|
||||
kwargs['enabled'] = parsed_args.enabled
|
||||
if parsed_args.immutable is not None:
|
||||
kwargs['options'] = {'immutable': parsed_args.immutable}
|
||||
if parsed_args.properties:
|
||||
kwargs.update(parsed_args.properties)
|
||||
tag.update_tags_in_args(parsed_args, project, kwargs)
|
||||
|
||||
identity_client.projects.update(project.id, **kwargs)
|
||||
|
@@ -334,9 +334,12 @@ class CreateRole(command.ShowOne):
|
||||
|
||||
if parsed_args.name:
|
||||
create_kwargs['name'] = parsed_args.name
|
||||
|
||||
if parsed_args.description:
|
||||
create_kwargs['description'] = parsed_args.description
|
||||
create_kwargs['options'] = common.get_immutable_options(parsed_args)
|
||||
|
||||
if parsed_args.immutable is not None:
|
||||
create_kwargs['options'] = {"immutable": parsed_args.immutable}
|
||||
|
||||
try:
|
||||
role = identity_client.create_role(**create_kwargs)
|
||||
@@ -585,7 +588,9 @@ class SetRole(command.Command):
|
||||
)
|
||||
update_kwargs["domain_id"] = domain_id
|
||||
|
||||
update_kwargs["options"] = common.get_immutable_options(parsed_args)
|
||||
if parsed_args.immutable is not None:
|
||||
update_kwargs["options"] = {"immutable": parsed_args.immutable}
|
||||
|
||||
role = _find_sdk_id(
|
||||
identity_client.find_role,
|
||||
name_or_id=parsed_args.role,
|
||||
|
@@ -186,7 +186,7 @@ class TestDomainCreate(identity_fakes.TestIdentityv3):
|
||||
self.domain.name,
|
||||
]
|
||||
verifylist = [
|
||||
('no_immutable', True),
|
||||
('immutable', False),
|
||||
('name', self.domain.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -461,7 +461,7 @@ class TestDomainSet(identity_fakes.TestIdentityv3):
|
||||
self.domain.id,
|
||||
]
|
||||
verifylist = [
|
||||
('no_immutable', True),
|
||||
('immutable', False),
|
||||
('domain', self.domain.id),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
@@ -77,8 +77,7 @@ class TestProjectCreate(TestProject):
|
||||
]
|
||||
verifylist = [
|
||||
('parent', None),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('name', self.project.name),
|
||||
('tags', []),
|
||||
]
|
||||
@@ -134,8 +133,7 @@ class TestProjectCreate(TestProject):
|
||||
]
|
||||
verifylist = [
|
||||
('description', 'new desc'),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('name', self.project.name),
|
||||
('parent', None),
|
||||
('tags', []),
|
||||
@@ -172,8 +170,7 @@ class TestProjectCreate(TestProject):
|
||||
]
|
||||
verifylist = [
|
||||
('domain', self.project.domain_id),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('name', self.project.name),
|
||||
('parent', None),
|
||||
('tags', []),
|
||||
@@ -210,8 +207,7 @@ class TestProjectCreate(TestProject):
|
||||
]
|
||||
verifylist = [
|
||||
('domain', self.project.domain_id),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('name', self.project.name),
|
||||
('parent', None),
|
||||
('tags', []),
|
||||
@@ -243,8 +239,7 @@ class TestProjectCreate(TestProject):
|
||||
self.project.name,
|
||||
]
|
||||
verifylist = [
|
||||
('enable', True),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('name', self.project.name),
|
||||
('parent', None),
|
||||
('tags', []),
|
||||
@@ -279,8 +274,7 @@ class TestProjectCreate(TestProject):
|
||||
self.project.name,
|
||||
]
|
||||
verifylist = [
|
||||
('enable', False),
|
||||
('disable', True),
|
||||
('enabled', False),
|
||||
('name', self.project.name),
|
||||
('parent', None),
|
||||
]
|
||||
@@ -317,7 +311,7 @@ class TestProjectCreate(TestProject):
|
||||
self.project.name,
|
||||
]
|
||||
verifylist = [
|
||||
('property', {'fee': 'fi', 'fo': 'fum'}),
|
||||
('properties', {'fee': 'fi', 'fo': 'fum'}),
|
||||
('name', self.project.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -354,11 +348,10 @@ class TestProjectCreate(TestProject):
|
||||
]
|
||||
verifylist = [
|
||||
('parent', None),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('name', self.project.name),
|
||||
('tags', []),
|
||||
('property', {'is_domain': 'false'}),
|
||||
('properties', {'is_domain': 'false'}),
|
||||
('name', self.project.name),
|
||||
]
|
||||
|
||||
@@ -393,11 +386,10 @@ class TestProjectCreate(TestProject):
|
||||
]
|
||||
verifylist = [
|
||||
('parent', None),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('name', self.project.name),
|
||||
('tags', []),
|
||||
('property', {'is_domain': 'true'}),
|
||||
('properties', {'is_domain': 'true'}),
|
||||
('name', self.project.name),
|
||||
]
|
||||
|
||||
@@ -432,11 +424,10 @@ class TestProjectCreate(TestProject):
|
||||
]
|
||||
verifylist = [
|
||||
('parent', None),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('name', self.project.name),
|
||||
('tags', []),
|
||||
('property', {'is_domain': 'none'}),
|
||||
('properties', {'is_domain': 'none'}),
|
||||
('name', self.project.name),
|
||||
]
|
||||
|
||||
@@ -481,8 +472,7 @@ class TestProjectCreate(TestProject):
|
||||
verifylist = [
|
||||
('domain', self.project.domain_id),
|
||||
('parent', self.parent.name),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('name', self.project.name),
|
||||
('tags', []),
|
||||
]
|
||||
@@ -544,8 +534,7 @@ class TestProjectCreate(TestProject):
|
||||
verifylist = [
|
||||
('domain', self.project.domain_id),
|
||||
('parent', 'invalid'),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('name', self.project.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -566,8 +555,7 @@ class TestProjectCreate(TestProject):
|
||||
]
|
||||
verifylist = [
|
||||
('domain', self.project.domain_id),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('name', self.project.name),
|
||||
('parent', None),
|
||||
('tags', ['foo']),
|
||||
@@ -602,8 +590,7 @@ class TestProjectCreate(TestProject):
|
||||
verifylist = [
|
||||
('immutable', True),
|
||||
('description', None),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('name', self.project.name),
|
||||
('parent', None),
|
||||
('tags', []),
|
||||
@@ -638,10 +625,9 @@ class TestProjectCreate(TestProject):
|
||||
self.project.name,
|
||||
]
|
||||
verifylist = [
|
||||
('no_immutable', True),
|
||||
('immutable', False),
|
||||
('description', None),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('name', self.project.name),
|
||||
('parent', None),
|
||||
('tags', []),
|
||||
@@ -981,8 +967,7 @@ class TestProjectSet(TestProject):
|
||||
]
|
||||
verifylist = [
|
||||
('project', self.project.name),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', None),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@@ -1001,8 +986,7 @@ class TestProjectSet(TestProject):
|
||||
verifylist = [
|
||||
('name', 'qwerty'),
|
||||
('domain', self.project.domain_id),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', None),
|
||||
('project', self.project.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -1029,8 +1013,7 @@ class TestProjectSet(TestProject):
|
||||
verifylist = [
|
||||
('domain', self.project.domain_id),
|
||||
('description', 'new desc'),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', None),
|
||||
('project', self.project.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -1053,8 +1036,7 @@ class TestProjectSet(TestProject):
|
||||
]
|
||||
verifylist = [
|
||||
('domain', self.project.domain_id),
|
||||
('enable', True),
|
||||
('disable', False),
|
||||
('enabled', True),
|
||||
('project', self.project.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -1077,8 +1059,7 @@ class TestProjectSet(TestProject):
|
||||
]
|
||||
verifylist = [
|
||||
('domain', self.project.domain_id),
|
||||
('enable', False),
|
||||
('disable', True),
|
||||
('enabled', False),
|
||||
('project', self.project.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -1104,7 +1085,7 @@ class TestProjectSet(TestProject):
|
||||
]
|
||||
verifylist = [
|
||||
('domain', self.project.domain_id),
|
||||
('property', {'fee': 'fi', 'fo': 'fum'}),
|
||||
('properties', {'fee': 'fi', 'fo': 'fum'}),
|
||||
('project', self.project.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -1132,8 +1113,7 @@ class TestProjectSet(TestProject):
|
||||
verifylist = [
|
||||
('name', 'qwerty'),
|
||||
('domain', self.project.domain_id),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', None),
|
||||
('project', self.project.name),
|
||||
('tags', ['foo']),
|
||||
]
|
||||
@@ -1160,8 +1140,7 @@ class TestProjectSet(TestProject):
|
||||
self.project.name,
|
||||
]
|
||||
verifylist = [
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', None),
|
||||
('project', self.project.name),
|
||||
('remove_tag', ['tag1', 'tag2']),
|
||||
]
|
||||
@@ -1183,8 +1162,7 @@ class TestProjectSet(TestProject):
|
||||
verifylist = [
|
||||
('domain', self.project.domain_id),
|
||||
('immutable', True),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('enabled', None),
|
||||
('project', self.project.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -1207,9 +1185,8 @@ class TestProjectSet(TestProject):
|
||||
]
|
||||
verifylist = [
|
||||
('domain', self.project.domain_id),
|
||||
('no_immutable', True),
|
||||
('enable', False),
|
||||
('disable', False),
|
||||
('immutable', False),
|
||||
('enabled', None),
|
||||
('project', self.project.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
@@ -494,7 +494,6 @@ class TestRoleCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.role.name,
|
||||
'options': {},
|
||||
}
|
||||
|
||||
self.identity_sdk_client.create_role.assert_called_with(**kwargs)
|
||||
@@ -533,7 +532,6 @@ class TestRoleCreate(identity_fakes.TestIdentityv3):
|
||||
kwargs = {
|
||||
'domain_id': self.domain.id,
|
||||
'name': self.role_with_domain.name,
|
||||
'options': {},
|
||||
}
|
||||
|
||||
self.identity_sdk_client.create_role.assert_called_with(**kwargs)
|
||||
@@ -572,7 +570,6 @@ class TestRoleCreate(identity_fakes.TestIdentityv3):
|
||||
kwargs = {
|
||||
'name': self.role_with_description.name,
|
||||
'description': self.role_with_description.description,
|
||||
'options': {},
|
||||
}
|
||||
|
||||
self.identity_sdk_client.create_role.assert_called_with(**kwargs)
|
||||
@@ -629,7 +626,7 @@ class TestRoleCreate(identity_fakes.TestIdentityv3):
|
||||
self.role.name,
|
||||
]
|
||||
verifylist = [
|
||||
('no_immutable', True),
|
||||
('immutable', False),
|
||||
('name', self.role.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@@ -1437,7 +1434,6 @@ class TestRoleSet(identity_fakes.TestIdentityv3):
|
||||
kwargs = {
|
||||
'name': 'over',
|
||||
'role': self.role.id,
|
||||
'options': {},
|
||||
}
|
||||
self.identity_sdk_client.update_role.assert_called_with(**kwargs)
|
||||
self.assertIsNone(result)
|
||||
@@ -1472,7 +1468,6 @@ class TestRoleSet(identity_fakes.TestIdentityv3):
|
||||
'name': 'over',
|
||||
'role': self.role_with_domain.id,
|
||||
'domain_id': self.domain2.id,
|
||||
'options': {},
|
||||
}
|
||||
self.identity_sdk_client.update_role.assert_called_with(**kwargs)
|
||||
self.assertIsNone(result)
|
||||
@@ -1501,7 +1496,6 @@ class TestRoleSet(identity_fakes.TestIdentityv3):
|
||||
'name': 'over',
|
||||
'description': 'role description',
|
||||
'role': self.role_with_domain.id,
|
||||
'options': {},
|
||||
}
|
||||
self.identity_sdk_client.update_role.assert_called_with(**kwargs)
|
||||
self.assertIsNone(result)
|
||||
@@ -1544,7 +1538,7 @@ class TestRoleSet(identity_fakes.TestIdentityv3):
|
||||
]
|
||||
verifylist = [
|
||||
('name', 'over'),
|
||||
('no_immutable', True),
|
||||
('immutable', False),
|
||||
('role', self.role_with_domain.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
Reference in New Issue
Block a user