Skip to content

Commit 51f2fda

Browse files
committed
Add capability to update description of an IdP
Change-Id: I854067642bbfde6fdf84b22b9cc1de8afc7767c0 Closes-Bug: #1515815
1 parent 6e1ad73 commit 51f2fda

3 files changed

Lines changed: 64 additions & 2 deletions

File tree

doc/source/command-objects/identity-provider.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ Set identity provider properties
8181
8282
os identity provider set
8383
[--remote-id <remote-id> [...] | --remote-id-file <file-name>]
84+
[--description <description>]
8485
[--enable | --disable]
8586
<identity-provider>
8687
@@ -94,6 +95,10 @@ Set identity provider properties
9495
Name of a file that contains many remote IDs to associate with the identity
9596
provider, one per line
9697

98+
.. option:: --description
99+
100+
Set identity provider description
101+
97102
.. option:: --enable
98103

99104
Enable the identity provider

openstackclient/identity/v3/identity_provider.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,11 @@ def get_parser(self, prog_name):
142142
metavar='<identity-provider>',
143143
help='Identity provider to modify',
144144
)
145+
parser.add_argument(
146+
'--description',
147+
metavar='<description>',
148+
help='Set identity provider description',
149+
)
145150
identity_remote_id_provider = parser.add_mutually_exclusive_group()
146151
identity_remote_id_provider.add_argument(
147152
'--remote-id',
@@ -174,8 +179,10 @@ def take_action(self, parsed_args):
174179
federation_client = self.app.client_manager.identity.federation
175180

176181
# Basic argument checking
177-
if (not parsed_args.enable and not parsed_args.disable and not
178-
parsed_args.remote_id and not parsed_args.remote_id_file):
182+
if (not parsed_args.enable and not parsed_args.disable and
183+
not parsed_args.remote_id and
184+
not parsed_args.remote_id_file and
185+
not parsed_args.description):
179186
self.log.error('No changes requested')
180187
return (None, None)
181188

@@ -190,6 +197,8 @@ def take_action(self, parsed_args):
190197

191198
# Setup keyword args for the client
192199
kwargs = {}
200+
if parsed_args.description:
201+
kwargs['description'] = parsed_args.description
193202
if parsed_args.enable:
194203
kwargs['enabled'] = True
195204
if parsed_args.disable:

openstackclient/tests/identity/v3/test_identity_provider.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,50 @@ def setUp(self):
374374
super(TestIdentityProviderSet, self).setUp()
375375
self.cmd = identity_provider.SetIdentityProvider(self.app, None)
376376

377+
def test_identity_provider_set_description(self):
378+
"""Set Identity Provider's description. """
379+
def prepare(self):
380+
"""Prepare fake return objects before the test is executed"""
381+
updated_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
382+
updated_idp['enabled'] = False
383+
resources = fakes.FakeResource(
384+
None,
385+
updated_idp,
386+
loaded=True
387+
)
388+
self.identity_providers_mock.update.return_value = resources
389+
390+
prepare(self)
391+
new_description = 'new desc'
392+
arglist = [
393+
'--description', new_description,
394+
identity_fakes.idp_id
395+
]
396+
verifylist = [
397+
('identity_provider', identity_fakes.idp_id),
398+
('description', new_description),
399+
('enable', False),
400+
('disable', False),
401+
('remote_id', None)
402+
]
403+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
404+
405+
columns, data = self.cmd.take_action(parsed_args)
406+
self.identity_providers_mock.update.assert_called_with(
407+
identity_fakes.idp_id,
408+
description=new_description
409+
)
410+
411+
collist = ('description', 'enabled', 'id', 'remote_ids')
412+
self.assertEqual(collist, columns)
413+
datalist = (
414+
identity_fakes.idp_description,
415+
False,
416+
identity_fakes.idp_id,
417+
identity_fakes.idp_remote_ids
418+
)
419+
self.assertEqual(datalist, data)
420+
377421
def test_identity_provider_disable(self):
378422
"""Disable Identity Provider
379423
@@ -398,6 +442,7 @@ def prepare(self):
398442
]
399443
verifylist = [
400444
('identity_provider', identity_fakes.idp_id),
445+
('description', None),
401446
('enable', False),
402447
('disable', True),
403448
('remote_id', identity_fakes.idp_remote_ids)
@@ -443,6 +488,7 @@ def prepare(self):
443488
]
444489
verifylist = [
445490
('identity_provider', identity_fakes.idp_id),
491+
('description', None),
446492
('enable', True),
447493
('disable', False),
448494
('remote_id', identity_fakes.idp_remote_ids)
@@ -488,6 +534,7 @@ def prepare(self):
488534
]
489535
verifylist = [
490536
('identity_provider', identity_fakes.idp_id),
537+
('description', None),
491538
('enable', True),
492539
('disable', False),
493540
('remote_id', [self.new_remote_id])
@@ -533,6 +580,7 @@ def prepare(self):
533580
]
534581
verifylist = [
535582
('identity_provider', identity_fakes.idp_id),
583+
('description', None),
536584
('enable', True),
537585
('disable', False),
538586
('remote_id_file', self.new_remote_id),

0 commit comments

Comments
 (0)