diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-06-06 21:56:55 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-06-06 21:56:55 +0000 |
| commit | 19c54b61c1f477e699d2dcd7cc79816f52ca302d (patch) | |
| tree | 112a0f8e23844b56f57d289d14a90acdd1346217 /openstackclient/compute | |
| parent | 376e3379ee358a15987234e4d1917835f7098658 (diff) | |
| parent | ac1d86c34333780e30b9393d155ae84a769ac222 (diff) | |
| download | python-openstackclient-19c54b61c1f477e699d2dcd7cc79816f52ca302d.tar.gz | |
Merge "Refactor SetService --enable/disable option"
Diffstat (limited to 'openstackclient/compute')
| -rw-r--r-- | openstackclient/compute/v2/service.py | 38 |
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) |
