Add capability to update description of an IdP
Change-Id: I854067642bbfde6fdf84b22b9cc1de8afc7767c0 Closes-Bug: #1515815
This commit is contained in:
		| @@ -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), | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 lin-hua-cheng
					lin-hua-cheng