Add filters to search for enabled/disabled users and projects
Change-Id: Ie7d84f9e0158018083af2156d02dc86fefd79256 Signed-off-by: Jan Ueberacker <jan.ueberacker@inovex.de>
This commit is contained in:
@@ -239,6 +239,20 @@ class ListProject(command.Lister):
|
|||||||
'keys and directions.'
|
'keys and directions.'
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--enabled',
|
||||||
|
action='store_true',
|
||||||
|
dest='is_enabled',
|
||||||
|
default=None,
|
||||||
|
help=_('List only enabled projects'),
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--disabled',
|
||||||
|
action='store_false',
|
||||||
|
dest='is_enabled',
|
||||||
|
default=None,
|
||||||
|
help=_('List only disabled projects'),
|
||||||
|
)
|
||||||
tag.add_tag_filtering_option_to_parser(parser, _('projects'))
|
tag.add_tag_filtering_option_to_parser(parser, _('projects'))
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
@@ -277,6 +291,9 @@ class ListProject(command.Lister):
|
|||||||
|
|
||||||
kwargs['user'] = user_id
|
kwargs['user'] = user_id
|
||||||
|
|
||||||
|
if parsed_args.is_enabled is not None:
|
||||||
|
kwargs['is_enabled'] = parsed_args.is_enabled
|
||||||
|
|
||||||
tag.get_tag_filtering_args(parsed_args, kwargs)
|
tag.get_tag_filtering_args(parsed_args, kwargs)
|
||||||
|
|
||||||
if parsed_args.my_projects:
|
if parsed_args.my_projects:
|
||||||
|
@@ -411,6 +411,24 @@ class ListUser(command.Lister):
|
|||||||
default=False,
|
default=False,
|
||||||
help=_('List additional fields in output'),
|
help=_('List additional fields in output'),
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--enabled',
|
||||||
|
action='store_true',
|
||||||
|
dest='is_enabled',
|
||||||
|
default=None,
|
||||||
|
help=_(
|
||||||
|
'List only enabled users, does nothing with --project and --group'
|
||||||
|
),
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--disabled',
|
||||||
|
action='store_false',
|
||||||
|
dest='is_enabled',
|
||||||
|
default=None,
|
||||||
|
help=_(
|
||||||
|
'List only disabled users, does nothing with --project and --group'
|
||||||
|
),
|
||||||
|
)
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
@@ -430,6 +448,9 @@ class ListUser(command.Lister):
|
|||||||
ignore_missing=False,
|
ignore_missing=False,
|
||||||
).id
|
).id
|
||||||
|
|
||||||
|
if parsed_args.is_enabled is not None:
|
||||||
|
enabled = parsed_args.is_enabled
|
||||||
|
|
||||||
if parsed_args.project:
|
if parsed_args.project:
|
||||||
if domain is not None:
|
if domain is not None:
|
||||||
project = identity_client.find_project(
|
project = identity_client.find_project(
|
||||||
@@ -467,6 +488,12 @@ class ListUser(command.Lister):
|
|||||||
domain_id=domain,
|
domain_id=domain,
|
||||||
group=group,
|
group=group,
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
if parsed_args.is_enabled is not None:
|
||||||
|
data = identity_client.users(
|
||||||
|
domain_id=domain,
|
||||||
|
is_enabled=enabled,
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
data = identity_client.users(
|
data = identity_client.users(
|
||||||
domain_id=domain,
|
domain_id=domain,
|
||||||
|
@@ -941,6 +941,22 @@ class TestProjectList(TestProject):
|
|||||||
)
|
)
|
||||||
self.assertEqual(datalist, tuple(data))
|
self.assertEqual(datalist, tuple(data))
|
||||||
|
|
||||||
|
def test_project_list_with_option_enabled(self):
|
||||||
|
arglist = ['--enabled']
|
||||||
|
verifylist = [('is_enabled', True)]
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
|
||||||
|
# In base command class Lister in cliff, abstract method take_action()
|
||||||
|
# returns a tuple containing the column names and an iterable
|
||||||
|
# containing the data to be listed.
|
||||||
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
kwargs = {'is_enabled': True}
|
||||||
|
self.projects_mock.list.assert_called_with(**kwargs)
|
||||||
|
|
||||||
|
self.assertEqual(self.columns, columns)
|
||||||
|
self.assertEqual(self.datalist, tuple(data))
|
||||||
|
|
||||||
|
|
||||||
class TestProjectSet(TestProject):
|
class TestProjectSet(TestProject):
|
||||||
domain = identity_fakes.FakeDomain.create_one_domain()
|
domain = identity_fakes.FakeDomain.create_one_domain()
|
||||||
|
@@ -988,6 +988,24 @@ class TestUserList(identity_fakes.TestIdentityv3):
|
|||||||
self.assertEqual(self.columns, columns)
|
self.assertEqual(self.columns, columns)
|
||||||
self.assertEqual(self.datalist, tuple(data))
|
self.assertEqual(self.datalist, tuple(data))
|
||||||
|
|
||||||
|
def test_user_list_with_option_enabled(self):
|
||||||
|
arglist = ['--enabled']
|
||||||
|
verifylist = [('is_enabled', True)]
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
|
||||||
|
# In base command class Lister in cliff, abstract method take_action()
|
||||||
|
# returns a tuple containing the column names and an iterable
|
||||||
|
# containing the data to be listed.
|
||||||
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
kwargs = {'domain_id': None, 'is_enabled': True}
|
||||||
|
self.identity_sdk_client.users.assert_called_with(**kwargs)
|
||||||
|
self.identity_sdk_client.find_user.assert_not_called()
|
||||||
|
self.identity_sdk_client.group_users.assert_not_called()
|
||||||
|
|
||||||
|
self.assertEqual(self.columns, columns)
|
||||||
|
self.assertEqual(self.datalist, tuple(data))
|
||||||
|
|
||||||
|
|
||||||
class TestUserSet(identity_fakes.TestIdentityv3):
|
class TestUserSet(identity_fakes.TestIdentityv3):
|
||||||
project = sdk_fakes.generate_fake_resource(_project.Project)
|
project = sdk_fakes.generate_fake_resource(_project.Project)
|
||||||
|
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Add filters to search for enabled and disabled users and projects.
|
Reference in New Issue
Block a user