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