summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-06-06 21:56:55 +0000
committerGerrit Code Review <review@openstack.org>2016-06-06 21:56:55 +0000
commit19c54b61c1f477e699d2dcd7cc79816f52ca302d (patch)
tree112a0f8e23844b56f57d289d14a90acdd1346217 /openstackclient/compute
parent376e3379ee358a15987234e4d1917835f7098658 (diff)
parentac1d86c34333780e30b9393d155ae84a769ac222 (diff)
downloadpython-openstackclient-19c54b61c1f477e699d2dcd7cc79816f52ca302d.tar.gz
Merge "Refactor SetService --enable/disable option"
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/service.py38
1 files changed, 23 insertions, 15 deletions
diff --git a/openstackclient/compute/v2/service.py b/openstackclient/compute/v2/service.py
index 6093b8ce..e7966a8a 100644
--- a/openstackclient/compute/v2/service.py
+++ b/openstackclient/compute/v2/service.py
@@ -16,6 +16,7 @@
"""Service action implementations"""
from openstackclient.common import command
+from openstackclient.common import exceptions
from openstackclient.common import utils
from openstackclient.i18n import _
@@ -110,23 +111,20 @@ class SetService(command.Command):
enabled_group = parser.add_mutually_exclusive_group()
enabled_group.add_argument(
"--enable",
- dest="enabled",
- default=True,
action="store_true",
- help=_("Enable a service (default)")
+ help=_("Enable service")
)
enabled_group.add_argument(
"--disable",
- dest="enabled",
- action="store_false",
- help=_("Disable a service")
+ action="store_true",
+ help=_("Disable service")
)
parser.add_argument(
"--disable-reason",
default=None,
metavar="<reason>",
- help=_("Reason for disabling the service (in quotas). Note that "
- "when the service is enabled, this option is ignored.")
+ help=_("Reason for disabling the service (in quotas). "
+ "Should be used with --disable option.")
)
return parser
@@ -134,16 +132,26 @@ class SetService(command.Command):
compute_client = self.app.client_manager.compute
cs = compute_client.services
- if not parsed_args.enabled:
+ if (parsed_args.enable or not parsed_args.disable) and \
+ parsed_args.disable_reason:
+ msg = _("Cannot specify option --disable-reason without "
+ "--disable specified.")
+ raise exceptions.CommandError(msg)
+
+ enabled = None
+ if parsed_args.enable:
+ enabled = True
+ if parsed_args.disable:
+ enabled = False
+
+ if enabled is None:
+ return
+ elif enabled:
+ cs.enable(parsed_args.host, parsed_args.service)
+ else:
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:
- if parsed_args.disable_reason:
- msg = _("argument --disable-reason has been ignored")
- self.log.info(msg)
-
- cs.enable(parsed_args.host, parsed_args.service)