Merge "compute: limit the service's force down command above 2.10"
This commit is contained in:
@@ -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,18 +193,23 @@ 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:
|
||||||
state = "down" if force_down else "up"
|
state = "down" if force_down else "up"
|
||||||
LOG.error("Failed to set service state to %s", state)
|
LOG.error("Failed to set service state to %s", state)
|
||||||
result += 1
|
result += 1
|
||||||
|
|
||||||
if result > 0:
|
if result > 0:
|
||||||
msg = _("Compute service %(service)s of host %(host)s failed to "
|
msg = _("Compute service %(service)s of host %(host)s failed to "
|
||||||
|
@@ -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,
|
||||||
|
Reference in New Issue
Block a user