summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-04-06 18:46:14 +0000
committerGerrit Code Review <review@openstack.org>2016-04-06 18:46:14 +0000
commit523ab58fb682efe7f0ac6fcf4746d2d434c7b5ac (patch)
treee61f630a5297ebddea0d79a8a7fb0b8291e42a82 /openstackclient
parent81e37a2dce174a1f8e2f1da6aebd9c921bf5f7de (diff)
parent4d3f996e7ce5385688f6e570b8ac73327bac9f44 (diff)
downloadpython-openstackclient-523ab58fb682efe7f0ac6fcf4746d2d434c7b5ac.tar.gz
Merge "Log hint when --enable present with --disable-reason"
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/compute/v2/service.py9
-rw-r--r--openstackclient/tests/compute/v2/test_service.py73
2 files changed, 71 insertions, 11 deletions
diff --git a/openstackclient/compute/v2/service.py b/openstackclient/compute/v2/service.py
index 68037c94..2b51af3d 100644
--- a/openstackclient/compute/v2/service.py
+++ b/openstackclient/compute/v2/service.py
@@ -17,6 +17,7 @@
from openstackclient.common import command
from openstackclient.common import utils
+from openstackclient.i18n import _ # noqa
class DeleteService(command.Command):
@@ -117,8 +118,8 @@ class SetService(command.Command):
"--disable-reason",
default=None,
metavar="<reason>",
- help="Reason for disabling the service (in quotas)"
- )
+ help="Reason for disabling the service (in quotas). Note that "
+ "when the service is enabled, this option is ignored.")
return parser
def take_action(self, parsed_args):
@@ -133,4 +134,8 @@ class SetService(command.Command):
else:
cs.disable(parsed_args.host, parsed_args.service)
else:
+ if parsed_args.disable_reason:
+ msg = _("argument --disable-reason has been ignored")
+ self.log.info(msg)
+
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 2feaf156..db097204 100644
--- a/openstackclient/tests/compute/v2/test_service.py
+++ b/openstackclient/tests/compute/v2/test_service.py
@@ -14,6 +14,7 @@
#
import copy
+import mock
from openstackclient.compute.v2 import service
from openstackclient.tests.compute.v2 import fakes as compute_fakes
@@ -138,14 +139,14 @@ class TestServiceSet(TestService):
def test_service_set_enable(self):
arglist = [
+ '--enable',
compute_fakes.service_host,
compute_fakes.service_binary,
- '--enable',
]
verifylist = [
+ ('enabled', True),
('host', compute_fakes.service_host),
('service', compute_fakes.service_binary),
- ('enabled', True),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -159,14 +160,14 @@ class TestServiceSet(TestService):
def test_service_set_disable(self):
arglist = [
+ '--disable',
compute_fakes.service_host,
compute_fakes.service_binary,
- '--disable',
]
verifylist = [
+ ('enabled', False),
('host', compute_fakes.service_host),
('service', compute_fakes.service_binary),
- ('enabled', False),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -181,17 +182,16 @@ class TestServiceSet(TestService):
def test_service_set_disable_with_reason(self):
reason = 'earthquake'
arglist = [
+ '--disable',
+ '--disable-reason', reason,
compute_fakes.service_host,
compute_fakes.service_binary,
- '--disable',
- '--disable-reason',
- reason
]
verifylist = [
+ ('enabled', False),
+ ('disable_reason', reason),
('host', compute_fakes.service_host),
('service', compute_fakes.service_binary),
- ('enabled', False),
- ('disable_reason', reason)
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -203,3 +203,58 @@ class TestServiceSet(TestService):
reason
)
self.assertIsNone(result)
+
+ def test_service_set_only_with_disable_reason(self):
+ reason = 'earthquake'
+ arglist = [
+ '--disable-reason', reason,
+ compute_fakes.service_host,
+ compute_fakes.service_binary,
+ ]
+ verifylist = [
+ ('enabled', True),
+ ('disable_reason', reason),
+ ('host', compute_fakes.service_host),
+ ('service', compute_fakes.service_binary),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ with mock.patch.object(self.cmd.log, 'info') as mock_log:
+ result = self.cmd.take_action(parsed_args)
+
+ msg = "argument --disable-reason has been ignored"
+ mock_log.assert_called_once_with(msg)
+
+ self.service_mock.enable.assert_called_with(
+ compute_fakes.service_host,
+ compute_fakes.service_binary
+ )
+ self.assertIsNone(result)
+
+ def test_service_set_enable_with_disable_reason(self):
+ reason = 'earthquake'
+ arglist = [
+ '--enable',
+ '--disable-reason', reason,
+ compute_fakes.service_host,
+ compute_fakes.service_binary,
+ ]
+ verifylist = [
+ ('enabled', True),
+ ('disable_reason', reason),
+ ('host', compute_fakes.service_host),
+ ('service', compute_fakes.service_binary),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ with mock.patch.object(self.cmd.log, 'info') as mock_log:
+ result = self.cmd.take_action(parsed_args)
+
+ msg = "argument --disable-reason has been ignored"
+ mock_log.assert_called_once_with(msg)
+
+ self.service_mock.enable.assert_called_with(
+ compute_fakes.service_host,
+ compute_fakes.service_binary
+ )
+ self.assertIsNone(result)