Add capability to update description of an IdP
Change-Id: I854067642bbfde6fdf84b22b9cc1de8afc7767c0 Closes-Bug: #1515815
This commit is contained in:
parent
6e1ad73723
commit
51f2fda041
@ -81,6 +81,7 @@ Set identity provider properties
|
|||||||
|
|
||||||
os identity provider set
|
os identity provider set
|
||||||
[--remote-id <remote-id> [...] | --remote-id-file <file-name>]
|
[--remote-id <remote-id> [...] | --remote-id-file <file-name>]
|
||||||
|
[--description <description>]
|
||||||
[--enable | --disable]
|
[--enable | --disable]
|
||||||
<identity-provider>
|
<identity-provider>
|
||||||
|
|
||||||
@ -94,6 +95,10 @@ Set identity provider properties
|
|||||||
Name of a file that contains many remote IDs to associate with the identity
|
Name of a file that contains many remote IDs to associate with the identity
|
||||||
provider, one per line
|
provider, one per line
|
||||||
|
|
||||||
|
.. option:: --description
|
||||||
|
|
||||||
|
Set identity provider description
|
||||||
|
|
||||||
.. option:: --enable
|
.. option:: --enable
|
||||||
|
|
||||||
Enable the identity provider
|
Enable the identity provider
|
||||||
|
@ -142,6 +142,11 @@ class SetIdentityProvider(command.Command):
|
|||||||
metavar='<identity-provider>',
|
metavar='<identity-provider>',
|
||||||
help='Identity provider to modify',
|
help='Identity provider to modify',
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--description',
|
||||||
|
metavar='<description>',
|
||||||
|
help='Set identity provider description',
|
||||||
|
)
|
||||||
identity_remote_id_provider = parser.add_mutually_exclusive_group()
|
identity_remote_id_provider = parser.add_mutually_exclusive_group()
|
||||||
identity_remote_id_provider.add_argument(
|
identity_remote_id_provider.add_argument(
|
||||||
'--remote-id',
|
'--remote-id',
|
||||||
@ -174,8 +179,10 @@ class SetIdentityProvider(command.Command):
|
|||||||
federation_client = self.app.client_manager.identity.federation
|
federation_client = self.app.client_manager.identity.federation
|
||||||
|
|
||||||
# Basic argument checking
|
# Basic argument checking
|
||||||
if (not parsed_args.enable and not parsed_args.disable and not
|
if (not parsed_args.enable and not parsed_args.disable and
|
||||||
parsed_args.remote_id and not parsed_args.remote_id_file):
|
not parsed_args.remote_id and
|
||||||
|
not parsed_args.remote_id_file and
|
||||||
|
not parsed_args.description):
|
||||||
self.log.error('No changes requested')
|
self.log.error('No changes requested')
|
||||||
return (None, None)
|
return (None, None)
|
||||||
|
|
||||||
@ -190,6 +197,8 @@ class SetIdentityProvider(command.Command):
|
|||||||
|
|
||||||
# Setup keyword args for the client
|
# Setup keyword args for the client
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
|
if parsed_args.description:
|
||||||
|
kwargs['description'] = parsed_args.description
|
||||||
if parsed_args.enable:
|
if parsed_args.enable:
|
||||||
kwargs['enabled'] = True
|
kwargs['enabled'] = True
|
||||||
if parsed_args.disable:
|
if parsed_args.disable:
|
||||||
|
@ -374,6 +374,50 @@ class TestIdentityProviderSet(TestIdentityProvider):
|
|||||||
super(TestIdentityProviderSet, self).setUp()
|
super(TestIdentityProviderSet, self).setUp()
|
||||||
self.cmd = identity_provider.SetIdentityProvider(self.app, None)
|
self.cmd = identity_provider.SetIdentityProvider(self.app, None)
|
||||||
|
|
||||||
|
def test_identity_provider_set_description(self):
|
||||||
|
"""Set Identity Provider's description. """
|
||||||
|
def prepare(self):
|
||||||
|
"""Prepare fake return objects before the test is executed"""
|
||||||
|
updated_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
|
||||||
|
updated_idp['enabled'] = False
|
||||||
|
resources = fakes.FakeResource(
|
||||||
|
None,
|
||||||
|
updated_idp,
|
||||||
|
loaded=True
|
||||||
|
)
|
||||||
|
self.identity_providers_mock.update.return_value = resources
|
||||||
|
|
||||||
|
prepare(self)
|
||||||
|
new_description = 'new desc'
|
||||||
|
arglist = [
|
||||||
|
'--description', new_description,
|
||||||
|
identity_fakes.idp_id
|
||||||
|
]
|
||||||
|
verifylist = [
|
||||||
|
('identity_provider', identity_fakes.idp_id),
|
||||||
|
('description', new_description),
|
||||||
|
('enable', False),
|
||||||
|
('disable', False),
|
||||||
|
('remote_id', None)
|
||||||
|
]
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
|
||||||
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
self.identity_providers_mock.update.assert_called_with(
|
||||||
|
identity_fakes.idp_id,
|
||||||
|
description=new_description
|
||||||
|
)
|
||||||
|
|
||||||
|
collist = ('description', 'enabled', 'id', 'remote_ids')
|
||||||
|
self.assertEqual(collist, columns)
|
||||||
|
datalist = (
|
||||||
|
identity_fakes.idp_description,
|
||||||
|
False,
|
||||||
|
identity_fakes.idp_id,
|
||||||
|
identity_fakes.idp_remote_ids
|
||||||
|
)
|
||||||
|
self.assertEqual(datalist, data)
|
||||||
|
|
||||||
def test_identity_provider_disable(self):
|
def test_identity_provider_disable(self):
|
||||||
"""Disable Identity Provider
|
"""Disable Identity Provider
|
||||||
|
|
||||||
@ -398,6 +442,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
|
|||||||
]
|
]
|
||||||
verifylist = [
|
verifylist = [
|
||||||
('identity_provider', identity_fakes.idp_id),
|
('identity_provider', identity_fakes.idp_id),
|
||||||
|
('description', None),
|
||||||
('enable', False),
|
('enable', False),
|
||||||
('disable', True),
|
('disable', True),
|
||||||
('remote_id', identity_fakes.idp_remote_ids)
|
('remote_id', identity_fakes.idp_remote_ids)
|
||||||
@ -443,6 +488,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
|
|||||||
]
|
]
|
||||||
verifylist = [
|
verifylist = [
|
||||||
('identity_provider', identity_fakes.idp_id),
|
('identity_provider', identity_fakes.idp_id),
|
||||||
|
('description', None),
|
||||||
('enable', True),
|
('enable', True),
|
||||||
('disable', False),
|
('disable', False),
|
||||||
('remote_id', identity_fakes.idp_remote_ids)
|
('remote_id', identity_fakes.idp_remote_ids)
|
||||||
@ -488,6 +534,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
|
|||||||
]
|
]
|
||||||
verifylist = [
|
verifylist = [
|
||||||
('identity_provider', identity_fakes.idp_id),
|
('identity_provider', identity_fakes.idp_id),
|
||||||
|
('description', None),
|
||||||
('enable', True),
|
('enable', True),
|
||||||
('disable', False),
|
('disable', False),
|
||||||
('remote_id', [self.new_remote_id])
|
('remote_id', [self.new_remote_id])
|
||||||
@ -533,6 +580,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
|
|||||||
]
|
]
|
||||||
verifylist = [
|
verifylist = [
|
||||||
('identity_provider', identity_fakes.idp_id),
|
('identity_provider', identity_fakes.idp_id),
|
||||||
|
('description', None),
|
||||||
('enable', True),
|
('enable', True),
|
||||||
('disable', False),
|
('disable', False),
|
||||||
('remote_id_file', self.new_remote_id),
|
('remote_id_file', self.new_remote_id),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user