summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorVishakha Agarwal <agarwalvishakha18@gmail.com>2020-07-24 19:22:39 +0530
committerVishakha Agarwal <agarwalvishakha18@gmail.com>2020-07-24 19:22:39 +0530
commit1e053babf4d674ac31d51dfba048704f32b558b3 (patch)
tree9dee793ebd0041764cd4edcc169a1c9743cc1617 /openstackclient
parent82ebddca006d1dc61855fdd34b0616222039ea58 (diff)
downloadpython-openstackclient-1e053babf4d674ac31d51dfba048704f32b558b3.tar.gz
Add id and enabled param in ListIdentityProvider parser
when doing openstack identity provider list --name xyz_id, and openstack identity provider list --enabled CLI raising error unrecognized arguments, whereas in api-ref document [1], user can pass name and enabled as optional query param. This addresses the above issue, by adding param --id and --enabled in parser of ListIdentityProvider. [1] https://docs.openstack.org/api-ref/identity/v3-ext/?expanded=list-identity-providers-detail#list-identity-providers Change-Id: I59ce3a5f54700ba5a735f0b3b4b3b73b3a8658fa
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/identity/v3/identity_provider.py24
-rw-r--r--openstackclient/tests/unit/identity/v3/test_identity_provider.py55
2 files changed, 78 insertions, 1 deletions
diff --git a/openstackclient/identity/v3/identity_provider.py b/openstackclient/identity/v3/identity_provider.py
index 2b2d9d11..7307cea0 100644
--- a/openstackclient/identity/v3/identity_provider.py
+++ b/openstackclient/identity/v3/identity_provider.py
@@ -143,10 +143,32 @@ class DeleteIdentityProvider(command.Command):
class ListIdentityProvider(command.Lister):
_description = _("List identity providers")
+ def get_parser(self, prog_name):
+ parser = super(ListIdentityProvider, self).get_parser(prog_name)
+ parser.add_argument(
+ '--id',
+ metavar='<id>',
+ help=_('The Identity Providers’ ID attribute'),
+ )
+ parser.add_argument(
+ '--enabled',
+ dest='enabled',
+ action='store_true',
+ help=_('The Identity Providers that are enabled will be returned'),
+ )
+ return parser
+
def take_action(self, parsed_args):
columns = ('ID', 'Enabled', 'Domain ID', 'Description')
identity_client = self.app.client_manager.identity
- data = identity_client.federation.identity_providers.list()
+
+ kwargs = {}
+ if parsed_args.id:
+ kwargs['id'] = parsed_args.id
+ if parsed_args.enabled:
+ kwargs['enabled'] = True
+
+ data = identity_client.federation.identity_providers.list(**kwargs)
return (columns,
(utils.get_item_properties(
s, columns,
diff --git a/openstackclient/tests/unit/identity/v3/test_identity_provider.py b/openstackclient/tests/unit/identity/v3/test_identity_provider.py
index a419a9bc..39a37db2 100644
--- a/openstackclient/tests/unit/identity/v3/test_identity_provider.py
+++ b/openstackclient/tests/unit/identity/v3/test_identity_provider.py
@@ -384,6 +384,61 @@ class TestIdentityProviderList(TestIdentityProvider):
), )
self.assertListItemEqual(datalist, tuple(data))
+ def test_identity_provider_list_ID_option(self):
+ arglist = ['--id',
+ identity_fakes.idp_id]
+ verifylist = [
+ ('id', identity_fakes.idp_id)
+ ]
+ 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 = {
+ 'id': identity_fakes.idp_id
+ }
+ self.identity_providers_mock.list.assert_called_with(**kwargs)
+
+ collist = ('ID', 'Enabled', 'Domain ID', 'Description')
+ self.assertEqual(collist, columns)
+ datalist = ((
+ identity_fakes.idp_id,
+ True,
+ identity_fakes.domain_id,
+ identity_fakes.idp_description,
+ ), )
+ self.assertListItemEqual(datalist, tuple(data))
+
+ def test_identity_provider_list_enabled_option(self):
+ arglist = ['--enabled']
+ verifylist = [
+ ('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 = {
+ 'enabled': True
+ }
+ self.identity_providers_mock.list.assert_called_with(**kwargs)
+
+ collist = ('ID', 'Enabled', 'Domain ID', 'Description')
+ self.assertEqual(collist, columns)
+ datalist = ((
+ identity_fakes.idp_id,
+ True,
+ identity_fakes.domain_id,
+ identity_fakes.idp_description,
+ ), )
+ self.assertListItemEqual(datalist, tuple(data))
+
class TestIdentityProviderSet(TestIdentityProvider):