From e5a3c403e5982df8ab6a29d84c45aa2f8f3a10dc Mon Sep 17 00:00:00 2001 From: Huanxuan Ao <huanxuan.ao@easystack.cn> Date: Wed, 13 Jul 2016 19:28:11 +0800 Subject: [PATCH] Make set/unset commands pass normally when nothing specified in identityv3 Change-Id: I554b41969f96b62a2c6d37024caa56b1441d5ed1 Partial-bug: #1588588 --- openstackclient/identity/v3/consumer.py | 6 ------ openstackclient/identity/v3/domain.py | 4 ---- openstackclient/identity/v3/endpoint.py | 8 -------- openstackclient/identity/v3/federation_protocol.py | 4 ---- openstackclient/identity/v3/group.py | 3 --- openstackclient/identity/v3/identity_provider.py | 8 -------- openstackclient/identity/v3/mapping.py | 4 ---- openstackclient/identity/v3/policy.py | 5 ----- openstackclient/identity/v3/project.py | 7 ------- openstackclient/identity/v3/region.py | 2 -- openstackclient/identity/v3/role.py | 4 ---- openstackclient/identity/v3/service.py | 10 ---------- openstackclient/identity/v3/service_provider.py | 9 --------- openstackclient/identity/v3/user.py | 13 ------------- openstackclient/tests/identity/v3/test_domain.py | 6 +++++- openstackclient/tests/identity/v3/test_endpoint.py | 12 +++++++++++- .../tests/identity/v3/test_identity_provider.py | 4 ++-- openstackclient/tests/identity/v3/test_region.py | 6 +++++- .../tests/identity/v3/test_service_provider.py | 11 +++++++++-- 19 files changed, 32 insertions(+), 94 deletions(-) diff --git a/openstackclient/identity/v3/consumer.py b/openstackclient/identity/v3/consumer.py index a4620bf9ef..65bf657feb 100644 --- a/openstackclient/identity/v3/consumer.py +++ b/openstackclient/identity/v3/consumer.py @@ -15,8 +15,6 @@ """Identity v3 Consumer action implementations""" -import sys - from osc_lib.command import command from osc_lib import utils import six @@ -102,10 +100,6 @@ class SetConsumer(command.Command): if parsed_args.description: kwargs['description'] = parsed_args.description - if not len(kwargs): - sys.stdout.write(_('Consumer not updated, no arguments present\n')) - return - consumer = identity_client.oauth1.consumers.update( consumer.id, **kwargs) diff --git a/openstackclient/identity/v3/domain.py b/openstackclient/identity/v3/domain.py index 0546ac5217..3e9bcf6344 100755 --- a/openstackclient/identity/v3/domain.py +++ b/openstackclient/identity/v3/domain.py @@ -16,7 +16,6 @@ """Identity v3 Domain action implementations""" import logging -import sys from keystoneauth1 import exceptions as ks_exc from osc_lib.command import command @@ -168,9 +167,6 @@ class SetDomain(command.Command): if parsed_args.disable: kwargs['enabled'] = False - if not kwargs: - sys.stdout.write(_("Domain not updated, no arguments present\n")) - return identity_client.domains.update(domain.id, **kwargs) diff --git a/openstackclient/identity/v3/endpoint.py b/openstackclient/identity/v3/endpoint.py index 2f1cc9f3ce..bd2df361d1 100644 --- a/openstackclient/identity/v3/endpoint.py +++ b/openstackclient/identity/v3/endpoint.py @@ -15,8 +15,6 @@ """Identity v3 Endpoint action implementations""" -import sys - from osc_lib.command import command from osc_lib import utils import six @@ -212,12 +210,6 @@ class SetEndpoint(command.Command): endpoint = utils.find_resource(identity_client.endpoints, parsed_args.endpoint) - if (not parsed_args.interface and not parsed_args.url - and not parsed_args.service and not parsed_args.region - and not parsed_args.enabled and not parsed_args.disabled): - sys.stdout.write(_("Endpoint not updated, no arguments present\n")) - return - service_id = None if parsed_args.service: service = common.find_service(identity_client, parsed_args.service) diff --git a/openstackclient/identity/v3/federation_protocol.py b/openstackclient/identity/v3/federation_protocol.py index 094802455a..0369bc3d06 100644 --- a/openstackclient/identity/v3/federation_protocol.py +++ b/openstackclient/identity/v3/federation_protocol.py @@ -149,10 +149,6 @@ class SetProtocol(command.Command): def take_action(self, parsed_args): identity_client = self.app.client_manager.identity - if not parsed_args.mapping: - LOG.error(_("No changes requested")) - return - protocol = identity_client.federation.protocols.update( parsed_args.identity_provider, parsed_args.federation_protocol, parsed_args.mapping) diff --git a/openstackclient/identity/v3/group.py b/openstackclient/identity/v3/group.py index c79a64e782..f780810afa 100755 --- a/openstackclient/identity/v3/group.py +++ b/openstackclient/identity/v3/group.py @@ -343,9 +343,6 @@ class SetGroup(command.Command): if parsed_args.description: kwargs['description'] = parsed_args.description - if not len(kwargs): - sys.stderr.write("Group not updated, no arguments present\n") - return identity_client.groups.update(group.id, **kwargs) diff --git a/openstackclient/identity/v3/identity_provider.py b/openstackclient/identity/v3/identity_provider.py index 5c638f9b6b..6fc9b13ce2 100644 --- a/openstackclient/identity/v3/identity_provider.py +++ b/openstackclient/identity/v3/identity_provider.py @@ -169,14 +169,6 @@ class SetIdentityProvider(command.Command): def take_action(self, parsed_args): 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 and - not parsed_args.description): - LOG.error(_('No changes requested')) - return (None, None) - # Always set remote_ids if either is passed in if parsed_args.remote_id_file: file_content = utils.read_blob_file_contents( diff --git a/openstackclient/identity/v3/mapping.py b/openstackclient/identity/v3/mapping.py index 74ead2281a..69c141b128 100644 --- a/openstackclient/identity/v3/mapping.py +++ b/openstackclient/identity/v3/mapping.py @@ -162,10 +162,6 @@ class SetMapping(command.Command, _RulesReader): def take_action(self, parsed_args): identity_client = self.app.client_manager.identity - if not parsed_args.rules: - LOG.error(_("No changes requested")) - return - rules = self._read_rules(parsed_args.rules) mapping = identity_client.federation.mappings.update( diff --git a/openstackclient/identity/v3/policy.py b/openstackclient/identity/v3/policy.py index 68fb273820..79215cab42 100644 --- a/openstackclient/identity/v3/policy.py +++ b/openstackclient/identity/v3/policy.py @@ -15,8 +15,6 @@ """Identity v3 Policy action implementations""" -import sys - from osc_lib.command import command from osc_lib import utils import six @@ -136,9 +134,6 @@ class SetPolicy(command.Command): if parsed_args.type: kwargs['type'] = parsed_args.type - if not kwargs: - sys.stdout.write(_('Policy not updated, no arguments present\n')) - return identity_client.policies.update(parsed_args.policy, **kwargs) diff --git a/openstackclient/identity/v3/project.py b/openstackclient/identity/v3/project.py index 5398701704..56c4fbc8b2 100755 --- a/openstackclient/identity/v3/project.py +++ b/openstackclient/identity/v3/project.py @@ -263,13 +263,6 @@ class SetProject(command.Command): def take_action(self, parsed_args): identity_client = self.app.client_manager.identity - if (not parsed_args.name - and not parsed_args.domain - and not parsed_args.description - and not parsed_args.enable - and not parsed_args.property - and not parsed_args.disable): - return project = common.find_project(identity_client, parsed_args.project, parsed_args.domain) diff --git a/openstackclient/identity/v3/region.py b/openstackclient/identity/v3/region.py index b5e46a9adb..d714cd05e4 100644 --- a/openstackclient/identity/v3/region.py +++ b/openstackclient/identity/v3/region.py @@ -132,8 +132,6 @@ class SetRegion(command.Command): def take_action(self, parsed_args): identity_client = self.app.client_manager.identity - if not parsed_args.parent_region and not parsed_args.description: - return kwargs = {} if parsed_args.description: kwargs['description'] = parsed_args.description diff --git a/openstackclient/identity/v3/role.py b/openstackclient/identity/v3/role.py index d3c530a502..273801799d 100755 --- a/openstackclient/identity/v3/role.py +++ b/openstackclient/identity/v3/role.py @@ -357,10 +357,6 @@ class SetRole(command.Command): def take_action(self, parsed_args): identity_client = self.app.client_manager.identity - if not parsed_args.name: - sys.stderr.write(_("Incorrect set of arguments provided. " - "See openstack --help for more details\n")) - return role = utils.find_resource( identity_client.roles, parsed_args.role, diff --git a/openstackclient/identity/v3/service.py b/openstackclient/identity/v3/service.py index 195b2701fb..7b23ae299c 100644 --- a/openstackclient/identity/v3/service.py +++ b/openstackclient/identity/v3/service.py @@ -15,8 +15,6 @@ """Identity v3 Service action implementations""" -import sys - from osc_lib.command import command from osc_lib import utils import six @@ -163,14 +161,6 @@ class SetService(command.Command): def take_action(self, parsed_args): identity_client = self.app.client_manager.identity - if (not parsed_args.name - and not parsed_args.type - and not parsed_args.description - and not parsed_args.enable - and not parsed_args.disable): - sys.stderr.write(_("Incorrect set of arguments provided. " - "See openstack --help for more details\n")) - return service = common.find_service(identity_client, parsed_args.service) kwargs = {} diff --git a/openstackclient/identity/v3/service_provider.py b/openstackclient/identity/v3/service_provider.py index 0beea81379..1f95def81f 100644 --- a/openstackclient/identity/v3/service_provider.py +++ b/openstackclient/identity/v3/service_provider.py @@ -13,8 +13,6 @@ """Service Provider action implementations""" -import sys - from osc_lib.command import command from osc_lib import utils import six @@ -164,13 +162,6 @@ class SetServiceProvider(command.Command): elif parsed_args.disable is True: enabled = False - if not any((enabled is not None, parsed_args.description, - parsed_args.service_provider_url, - parsed_args.auth_url)): - sys.stdout.write(_("Service Provider not updated, no arguments " - "present\n")) - return (None, None) - service_provider = federation_client.service_providers.update( parsed_args.service_provider, enabled=enabled, description=parsed_args.description, diff --git a/openstackclient/identity/v3/user.py b/openstackclient/identity/v3/user.py index 3e189ac1c6..dc47ef8d54 100755 --- a/openstackclient/identity/v3/user.py +++ b/openstackclient/identity/v3/user.py @@ -17,7 +17,6 @@ import copy import logging -import sys from keystoneauth1 import exceptions as ks_exc from osc_lib.command import command @@ -330,18 +329,6 @@ class SetUser(command.Command): if parsed_args.password_prompt: parsed_args.password = utils.get_password(self.app.stdin) - if (not parsed_args.name - and not parsed_args.name - and not parsed_args.password - and not parsed_args.email - and not parsed_args.project - and not parsed_args.description - and not parsed_args.enable - and not parsed_args.disable): - sys.stderr.write(_("Incorrect set of arguments provided. " - "See openstack --help for more details\n")) - return - user = utils.find_resource( identity_client.users, parsed_args.user, diff --git a/openstackclient/tests/identity/v3/test_domain.py b/openstackclient/tests/identity/v3/test_domain.py index 9229ddd0a9..17bcee065d 100644 --- a/openstackclient/tests/identity/v3/test_domain.py +++ b/openstackclient/tests/identity/v3/test_domain.py @@ -253,7 +253,11 @@ class TestDomainSet(TestDomain): result = self.cmd.take_action(parsed_args) - self.assertNotCalled(self.domains_mock.update) + kwargs = {} + self.domains_mock.update.assert_called_with( + self.domain.id, + **kwargs + ) self.assertIsNone(result) def test_domain_set_name(self): diff --git a/openstackclient/tests/identity/v3/test_endpoint.py b/openstackclient/tests/identity/v3/test_endpoint.py index d953459cae..184e14a4c5 100644 --- a/openstackclient/tests/identity/v3/test_endpoint.py +++ b/openstackclient/tests/identity/v3/test_endpoint.py @@ -485,7 +485,17 @@ class TestEndpointSet(TestEndpoint): result = self.cmd.take_action(parsed_args) - self.assertNotCalled(self.endpoints_mock.update) + kwargs = { + 'enabled': None, + 'interface': None, + 'region': None, + 'service': None, + 'url': None, + } + self.endpoints_mock.update.assert_called_with( + identity_fakes.endpoint_id, + **kwargs + ) self.assertIsNone(result) def test_endpoint_set_interface(self): diff --git a/openstackclient/tests/identity/v3/test_identity_provider.py b/openstackclient/tests/identity/v3/test_identity_provider.py index 161a1a1b0d..8561fab99b 100644 --- a/openstackclient/tests/identity/v3/test_identity_provider.py +++ b/openstackclient/tests/identity/v3/test_identity_provider.py @@ -585,8 +585,8 @@ class TestIdentityProviderSet(TestIdentityProvider): # expect take_action() to return (None, None) as # neither --enable nor --disable was specified - self.assertIsNone(columns) - self.assertIsNone(data) + self.assertEqual(self.columns, columns) + self.assertEqual(self.datalist, data) class TestIdentityProviderShow(TestIdentityProvider): diff --git a/openstackclient/tests/identity/v3/test_region.py b/openstackclient/tests/identity/v3/test_region.py index 02dec5681c..44e4814b01 100644 --- a/openstackclient/tests/identity/v3/test_region.py +++ b/openstackclient/tests/identity/v3/test_region.py @@ -253,7 +253,11 @@ class TestRegionSet(TestRegion): result = self.cmd.take_action(parsed_args) - self.assertNotCalled(self.regions_mock.update) + kwargs = {} + self.regions_mock.update.assert_called_with( + identity_fakes.region_id, + **kwargs + ) self.assertIsNone(result) def test_region_set_description(self): diff --git a/openstackclient/tests/identity/v3/test_service_provider.py b/openstackclient/tests/identity/v3/test_service_provider.py index 1d82cd1532..428057949b 100644 --- a/openstackclient/tests/identity/v3/test_service_provider.py +++ b/openstackclient/tests/identity/v3/test_service_provider.py @@ -377,8 +377,15 @@ class TestServiceProviderSet(TestServiceProvider): # expect take_action() to return (None, None) as none of --disabled, # --enabled, --description, --service-provider-url, --auth_url option # was set. - self.assertIsNone(columns) - self.assertIsNone(data) + self.assertEqual(self.columns, columns) + datalist = ( + service_fakes.sp_auth_url, + service_fakes.sp_description, + True, + service_fakes.sp_id, + service_fakes.service_provider_url + ) + self.assertEqual(datalist, data) class TestServiceProviderShow(TestServiceProvider):