Merge "[ironic] Fix rebooting instance"
This commit is contained in:
@@ -1823,7 +1823,7 @@ class IronicDriverTestCase(test.NoDBTestCase):
|
|||||||
instance = fake_instance.fake_instance_obj(self.ctx, node=node.id)
|
instance = fake_instance.fake_instance_obj(self.ctx, node=node.id)
|
||||||
self.driver.reboot(self.ctx, instance, None, 'HARD')
|
self.driver.reboot(self.ctx, instance, None, 'HARD')
|
||||||
self.mock_conn.set_node_power_state.assert_called_once_with(
|
self.mock_conn.set_node_power_state.assert_called_once_with(
|
||||||
node.id, 'reboot',
|
node.id, _node.PowerAction.REBOOT,
|
||||||
)
|
)
|
||||||
|
|
||||||
@mock.patch.object(ironic_driver.IronicDriver,
|
@mock.patch.object(ironic_driver.IronicDriver,
|
||||||
@@ -1858,7 +1858,7 @@ class IronicDriverTestCase(test.NoDBTestCase):
|
|||||||
instance = fake_instance.fake_instance_obj(self.ctx, node=node.id)
|
instance = fake_instance.fake_instance_obj(self.ctx, node=node.id)
|
||||||
self.driver.reboot(self.ctx, instance, None, 'SOFT')
|
self.driver.reboot(self.ctx, instance, None, 'SOFT')
|
||||||
self.mock_conn.set_node_power_state.assert_called_once_with(
|
self.mock_conn.set_node_power_state.assert_called_once_with(
|
||||||
node.id, 'soft reboot',
|
node.id, _node.PowerAction.SOFT_REBOOT,
|
||||||
)
|
)
|
||||||
|
|
||||||
@mock.patch.object(loopingcall, 'FixedIntervalLoopingCall')
|
@mock.patch.object(loopingcall, 'FixedIntervalLoopingCall')
|
||||||
@@ -1878,8 +1878,8 @@ class IronicDriverTestCase(test.NoDBTestCase):
|
|||||||
self.driver.reboot(self.ctx, instance, None, 'SOFT')
|
self.driver.reboot(self.ctx, instance, None, 'SOFT')
|
||||||
self.mock_conn.set_node_power_state.assert_has_calls(
|
self.mock_conn.set_node_power_state.assert_has_calls(
|
||||||
[
|
[
|
||||||
mock.call(node.id, 'soft reboot'),
|
mock.call(node.id, _node.PowerAction.SOFT_REBOOT),
|
||||||
mock.call(node.id, 'reboot'),
|
mock.call(node.id, _node.PowerAction.REBOOT),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1916,7 +1916,7 @@ class IronicDriverTestCase(test.NoDBTestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.mock_conn.set_node_power_state.assert_called_once_with(
|
self.mock_conn.set_node_power_state.assert_called_once_with(
|
||||||
node.id, 'power on',
|
node.id, _node.PowerAction.POWER_ON,
|
||||||
)
|
)
|
||||||
|
|
||||||
@mock.patch.object(loopingcall, 'FixedIntervalLoopingCall')
|
@mock.patch.object(loopingcall, 'FixedIntervalLoopingCall')
|
||||||
@@ -1937,7 +1937,7 @@ class IronicDriverTestCase(test.NoDBTestCase):
|
|||||||
self._test_power_off()
|
self._test_power_off()
|
||||||
|
|
||||||
self.mock_conn.set_node_power_state.assert_called_once_with(
|
self.mock_conn.set_node_power_state.assert_called_once_with(
|
||||||
node.id, 'power off',
|
node.id, _node.PowerAction.POWER_OFF,
|
||||||
)
|
)
|
||||||
|
|
||||||
@mock.patch.object(ironic_driver.IronicDriver,
|
@mock.patch.object(ironic_driver.IronicDriver,
|
||||||
@@ -1950,7 +1950,7 @@ class IronicDriverTestCase(test.NoDBTestCase):
|
|||||||
self._test_power_off(timeout=30)
|
self._test_power_off(timeout=30)
|
||||||
|
|
||||||
self.mock_conn.set_node_power_state.assert_called_once_with(
|
self.mock_conn.set_node_power_state.assert_called_once_with(
|
||||||
node.id, 'soft power off', timeout=30,
|
node.id, _node.PowerAction.SOFT_POWER_OFF, timeout=30,
|
||||||
)
|
)
|
||||||
|
|
||||||
@mock.patch.object(ironic_driver.IronicDriver,
|
@mock.patch.object(ironic_driver.IronicDriver,
|
||||||
@@ -1965,8 +1965,8 @@ class IronicDriverTestCase(test.NoDBTestCase):
|
|||||||
self._test_power_off(timeout=30)
|
self._test_power_off(timeout=30)
|
||||||
|
|
||||||
expected_calls = [
|
expected_calls = [
|
||||||
mock.call(node.id, 'soft power off', timeout=30),
|
mock.call(node.id, _node.PowerAction.SOFT_POWER_OFF, timeout=30),
|
||||||
mock.call(node.id, 'power off'),
|
mock.call(node.id, _node.PowerAction.POWER_OFF),
|
||||||
]
|
]
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(expected_calls),
|
len(expected_calls),
|
||||||
@@ -1983,8 +1983,8 @@ class IronicDriverTestCase(test.NoDBTestCase):
|
|||||||
self._test_power_off(timeout=30)
|
self._test_power_off(timeout=30)
|
||||||
|
|
||||||
expected_calls = [
|
expected_calls = [
|
||||||
mock.call(node.id, 'soft power off', timeout=30),
|
mock.call(node.id, _node.PowerAction.SOFT_POWER_OFF, timeout=30),
|
||||||
mock.call(node.id, 'power off'),
|
mock.call(node.id, _node.PowerAction.POWER_OFF),
|
||||||
]
|
]
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(expected_calls),
|
len(expected_calls),
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import tempfile
|
|||||||
import time
|
import time
|
||||||
from urllib import parse as urlparse
|
from urllib import parse as urlparse
|
||||||
|
|
||||||
|
from openstack.baremetal.v1.node import PowerAction
|
||||||
from openstack import exceptions as sdk_exc
|
from openstack import exceptions as sdk_exc
|
||||||
from openstack import utils as sdk_utils
|
from openstack import utils as sdk_utils
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
@@ -1407,7 +1408,7 @@ class IronicDriver(virt_driver.ComputeDriver):
|
|||||||
try:
|
try:
|
||||||
self.ironic_connection.set_node_power_state(
|
self.ironic_connection.set_node_power_state(
|
||||||
node.id,
|
node.id,
|
||||||
'soft reboot',
|
PowerAction.SOFT_REBOOT,
|
||||||
)
|
)
|
||||||
hard = False
|
hard = False
|
||||||
except sdk_exc.BadRequestException as exc:
|
except sdk_exc.BadRequestException as exc:
|
||||||
@@ -1417,7 +1418,8 @@ class IronicDriver(virt_driver.ComputeDriver):
|
|||||||
instance=instance)
|
instance=instance)
|
||||||
|
|
||||||
if hard:
|
if hard:
|
||||||
self.ironic_connection.set_node_power_state(node.id, 'reboot')
|
self.ironic_connection.set_node_power_state(
|
||||||
|
node.id, PowerAction.REBOOT)
|
||||||
|
|
||||||
timer = loopingcall.FixedIntervalLoopingCall(
|
timer = loopingcall.FixedIntervalLoopingCall(
|
||||||
self._wait_for_power_state, instance, 'reboot')
|
self._wait_for_power_state, instance, 'reboot')
|
||||||
@@ -1449,7 +1451,7 @@ class IronicDriver(virt_driver.ComputeDriver):
|
|||||||
# polling interval
|
# polling interval
|
||||||
self.ironic_connection.set_node_power_state(
|
self.ironic_connection.set_node_power_state(
|
||||||
node.id,
|
node.id,
|
||||||
'soft power off',
|
PowerAction.SOFT_POWER_OFF,
|
||||||
timeout=timeout,
|
timeout=timeout,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1481,7 +1483,8 @@ class IronicDriver(virt_driver.ComputeDriver):
|
|||||||
'reason': e},
|
'reason': e},
|
||||||
instance=instance)
|
instance=instance)
|
||||||
|
|
||||||
self.ironic_connection.set_node_power_state(node.id, 'power off')
|
self.ironic_connection.set_node_power_state(
|
||||||
|
node.id, PowerAction.POWER_OFF)
|
||||||
timer = loopingcall.FixedIntervalLoopingCall(
|
timer = loopingcall.FixedIntervalLoopingCall(
|
||||||
self._wait_for_power_state, instance, 'power off')
|
self._wait_for_power_state, instance, 'power off')
|
||||||
timer.start(interval=CONF.ironic.api_retry_interval).wait()
|
timer.start(interval=CONF.ironic.api_retry_interval).wait()
|
||||||
@@ -1506,7 +1509,8 @@ class IronicDriver(virt_driver.ComputeDriver):
|
|||||||
"""
|
"""
|
||||||
LOG.debug('Power on called for instance', instance=instance)
|
LOG.debug('Power on called for instance', instance=instance)
|
||||||
node = self._validate_instance_and_node(instance)
|
node = self._validate_instance_and_node(instance)
|
||||||
self.ironic_connection.set_node_power_state(node.id, 'power on')
|
self.ironic_connection.set_node_power_state(
|
||||||
|
node.id, PowerAction.POWER_ON)
|
||||||
|
|
||||||
timer = loopingcall.FixedIntervalLoopingCall(
|
timer = loopingcall.FixedIntervalLoopingCall(
|
||||||
self._wait_for_power_state, instance, 'power on')
|
self._wait_for_power_state, instance, 'power on')
|
||||||
|
|||||||
Reference in New Issue
Block a user