summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorlin-hua-cheng <os.lcheng@gmail.com>2015-11-12 16:49:45 -0800
committerlin-hua-cheng <os.lcheng@gmail.com>2015-11-12 16:49:45 -0800
commit51f2fda0417b391051743038de9f979ed4190127 (patch)
tree83be6efb2f1a44f5585402da0788eeae8040d3ba /openstackclient
parent6e1ad737230f6a087afe2c20317156c633a5c80f (diff)
downloadpython-openstackclient-51f2fda0417b391051743038de9f979ed4190127.tar.gz
Add capability to update description of an IdP
Change-Id: I854067642bbfde6fdf84b22b9cc1de8afc7767c0 Closes-Bug: #1515815
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/identity/v3/identity_provider.py13
-rw-r--r--openstackclient/tests/identity/v3/test_identity_provider.py48
2 files changed, 59 insertions, 2 deletions
diff --git a/openstackclient/identity/v3/identity_provider.py b/openstackclient/identity/v3/identity_provider.py
index 27982a9d..b6c358f2 100644
--- a/openstackclient/identity/v3/identity_provider.py
+++ b/openstackclient/identity/v3/identity_provider.py
@@ -142,6 +142,11 @@ class SetIdentityProvider(command.Command):
metavar='<identity-provider>',
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.add_argument(
'--remote-id',
@@ -174,8 +179,10 @@ class SetIdentityProvider(command.Command):
federation_client = self.app.client_manager.identity.federation
# Basic argument checking
- if (not parsed_args.enable and not parsed_args.disable and not
- parsed_args.remote_id and not parsed_args.remote_id_file):
+ if (not parsed_args.enable and not parsed_args.disable and
+ not parsed_args.remote_id and
+ not parsed_args.remote_id_file and
+ not parsed_args.description):
self.log.error('No changes requested')
return (None, None)
@@ -190,6 +197,8 @@ class SetIdentityProvider(command.Command):
# Setup keyword args for the client
kwargs = {}
+ if parsed_args.description:
+ kwargs['description'] = parsed_args.description
if parsed_args.enable:
kwargs['enabled'] = True
if parsed_args.disable:
diff --git a/openstackclient/tests/identity/v3/test_identity_provider.py b/openstackclient/tests/identity/v3/test_identity_provider.py
index cd328c1d..bd094ac4 100644
--- a/openstackclient/tests/identity/v3/test_identity_provider.py
+++ b/openstackclient/tests/identity/v3/test_identity_provider.py
@@ -374,6 +374,50 @@ class TestIdentityProviderSet(TestIdentityProvider):
super(TestIdentityProviderSet, self).setUp()
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):
"""Disable Identity Provider
@@ -398,6 +442,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
]
verifylist = [
('identity_provider', identity_fakes.idp_id),
+ ('description', None),
('enable', False),
('disable', True),
('remote_id', identity_fakes.idp_remote_ids)
@@ -443,6 +488,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
]
verifylist = [
('identity_provider', identity_fakes.idp_id),
+ ('description', None),
('enable', True),
('disable', False),
('remote_id', identity_fakes.idp_remote_ids)
@@ -488,6 +534,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
]
verifylist = [
('identity_provider', identity_fakes.idp_id),
+ ('description', None),
('enable', True),
('disable', False),
('remote_id', [self.new_remote_id])
@@ -533,6 +580,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
]
verifylist = [
('identity_provider', identity_fakes.idp_id),
+ ('description', None),
('enable', True),
('disable', False),
('remote_id_file', self.new_remote_id),