diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-03-09 07:12:51 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-03-09 07:12:51 +0000 |
| commit | c8e4a1407f565c89bb5e4964fcbe98c2188ca06c (patch) | |
| tree | 2ce7f7d9d0fcc595018cb91448b9242ae409d105 /openstackclient | |
| parent | e0d58641bba8cacab855ed5aa3b7506737470441 (diff) | |
| parent | b711c3a0ca622389b7f41021eb8ecd5d633b81d7 (diff) | |
| download | python-openstackclient-c8e4a1407f565c89bb5e4964fcbe98c2188ca06c.tar.gz | |
Merge "Add --reason for disable service"
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/compute/v2/service.py | 22 | ||||
| -rw-r--r-- | openstackclient/tests/compute/v2/test_service.py | 26 |
2 files changed, 42 insertions, 6 deletions
diff --git a/openstackclient/compute/v2/service.py b/openstackclient/compute/v2/service.py index 3c062724..1cc91711 100644 --- a/openstackclient/compute/v2/service.py +++ b/openstackclient/compute/v2/service.py @@ -95,14 +95,24 @@ class SetService(command.Command): dest="enabled", help="Disable a service", action="store_false") + parser.add_argument( + "--disable-reason", + default=None, + metavar="<reason>", + help="Reason for disabling the service (in quotas)" + ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute - - if parsed_args.enabled: - action = compute_client.services.enable + cs = compute_client.services + + if not parsed_args.enabled: + if parsed_args.disable_reason: + cs.disable_log_reason(parsed_args.host, + parsed_args.service, + parsed_args.disable_reason) + else: + cs.disable(parsed_args.host, parsed_args.service) else: - action = compute_client.services.disable - - action(parsed_args.host, parsed_args.service) + cs.enable(parsed_args.host, parsed_args.service) diff --git a/openstackclient/tests/compute/v2/test_service.py b/openstackclient/tests/compute/v2/test_service.py index 2f8b2e7d..0246fbc8 100644 --- a/openstackclient/tests/compute/v2/test_service.py +++ b/openstackclient/tests/compute/v2/test_service.py @@ -153,3 +153,29 @@ class TestServiceSet(TestService): compute_fakes.service_binary, ) self.assertIsNone(result) + + def test_service_set_disable_with_reason(self): + reason = 'earthquake' + arglist = [ + compute_fakes.service_host, + compute_fakes.service_binary, + '--disable', + '--disable-reason', + reason + ] + verifylist = [ + ('host', compute_fakes.service_host), + ('service', compute_fakes.service_binary), + ('enabled', False), + ('disable_reason', reason) + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + result = self.cmd.take_action(parsed_args) + + self.service_mock.disable_log_reason.assert_called_with( + compute_fakes.service_host, + compute_fakes.service_binary, + reason + ) + self.assertIsNone(result) |
