Merge "Add filters to search for enabled/disabled users and projects"
This commit is contained in:
openstackclient
releasenotes/notes
@ -240,6 +240,20 @@ class ListProject(command.Lister):
|
||||
'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'))
|
||||
return parser
|
||||
|
||||
@ -277,6 +291,9 @@ class ListProject(command.Lister):
|
||||
|
||||
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)
|
||||
|
||||
if parsed_args.my_projects:
|
||||
|
@ -412,6 +412,24 @@ class ListUser(command.Lister):
|
||||
default=False,
|
||||
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
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
@ -431,6 +449,9 @@ class ListUser(command.Lister):
|
||||
ignore_missing=False,
|
||||
).id
|
||||
|
||||
if parsed_args.is_enabled is not None:
|
||||
enabled = parsed_args.is_enabled
|
||||
|
||||
if parsed_args.project:
|
||||
if domain is not None:
|
||||
project = identity_client.find_project(
|
||||
@ -469,9 +490,15 @@ class ListUser(command.Lister):
|
||||
group=group,
|
||||
)
|
||||
else:
|
||||
data = identity_client.users(
|
||||
domain_id=domain,
|
||||
)
|
||||
if parsed_args.is_enabled is not None:
|
||||
data = identity_client.users(
|
||||
domain_id=domain,
|
||||
is_enabled=enabled,
|
||||
)
|
||||
else:
|
||||
data = identity_client.users(
|
||||
domain_id=domain,
|
||||
)
|
||||
|
||||
# Column handling
|
||||
if parsed_args.long:
|
||||
|
@ -941,6 +941,22 @@ class TestProjectList(TestProject):
|
||||
)
|
||||
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):
|
||||
domain = identity_fakes.FakeDomain.create_one_domain()
|
||||
|
@ -1035,6 +1035,24 @@ class TestUserList(identity_fakes.TestIdentityv3):
|
||||
self.assertEqual(self.columns, columns)
|
||||
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):
|
||||
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