Merge "compute: limit the service's force down command above 2.10"

This commit is contained in:
Zuul 2018-06-24 13:28:44 +00:00 committed by Gerrit Code Review
commit 5d2bd2a738
2 changed files with 25 additions and 11 deletions

View File

@ -17,6 +17,7 @@
import logging import logging
from novaclient import api_versions
from osc_lib.command import command from osc_lib.command import command
from osc_lib import exceptions from osc_lib import exceptions
from osc_lib import utils from osc_lib import utils
@ -192,12 +193,17 @@ class SetService(command.Command):
result += 1 result += 1
force_down = None force_down = None
try:
if parsed_args.down: if parsed_args.down:
force_down = True force_down = True
if parsed_args.up: if parsed_args.up:
force_down = False force_down = False
if force_down is not None: if force_down is not None:
if compute_client.api_version < api_versions.APIVersion(
'2.11'):
msg = _('--os-compute-api-version 2.11 or later is '
'required')
raise exceptions.CommandError(msg)
try:
cs.force_down(parsed_args.host, parsed_args.service, cs.force_down(parsed_args.host, parsed_args.service,
force_down=force_down) force_down=force_down)
except Exception: except Exception:

View File

@ -15,7 +15,7 @@
import mock import mock
from mock import call from mock import call
from novaclient import api_versions
from osc_lib import exceptions from osc_lib import exceptions
from openstackclient.compute.v2 import service from openstackclient.compute.v2 import service
@ -340,6 +340,8 @@ class TestServiceSet(TestService):
('service', self.service.binary), ('service', self.service.binary),
] ]
parsed_args = self.check_parser(self.cmd, arglist, verifylist) parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.app.client_manager.compute.api_version = api_versions.APIVersion(
'2.11')
result = self.cmd.take_action(parsed_args) result = self.cmd.take_action(parsed_args)
self.service_mock.force_down.assert_called_once_with( self.service_mock.force_down.assert_called_once_with(
self.service.host, self.service.binary, force_down=False) self.service.host, self.service.binary, force_down=False)
@ -359,6 +361,8 @@ class TestServiceSet(TestService):
('service', self.service.binary), ('service', self.service.binary),
] ]
parsed_args = self.check_parser(self.cmd, arglist, verifylist) parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.app.client_manager.compute.api_version = api_versions.APIVersion(
'2.11')
result = self.cmd.take_action(parsed_args) result = self.cmd.take_action(parsed_args)
self.service_mock.force_down.assert_called_once_with( self.service_mock.force_down.assert_called_once_with(
self.service.host, self.service.binary, force_down=True) self.service.host, self.service.binary, force_down=True)
@ -380,6 +384,8 @@ class TestServiceSet(TestService):
('service', self.service.binary), ('service', self.service.binary),
] ]
parsed_args = self.check_parser(self.cmd, arglist, verifylist) parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.app.client_manager.compute.api_version = api_versions.APIVersion(
'2.11')
result = self.cmd.take_action(parsed_args) result = self.cmd.take_action(parsed_args)
self.service_mock.enable.assert_called_once_with( self.service_mock.enable.assert_called_once_with(
self.service.host, self.service.binary) self.service.host, self.service.binary)
@ -402,6 +408,8 @@ class TestServiceSet(TestService):
] ]
parsed_args = self.check_parser(self.cmd, arglist, verifylist) parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.app.client_manager.compute.api_version = api_versions.APIVersion(
'2.11')
with mock.patch.object(self.service_mock, 'enable', with mock.patch.object(self.service_mock, 'enable',
side_effect=Exception()): side_effect=Exception()):
self.assertRaises(exceptions.CommandError, self.assertRaises(exceptions.CommandError,