diff --git a/nova/tests/unit/virt/ironic/test_driver.py b/nova/tests/unit/virt/ironic/test_driver.py index 97b4fc4cda41..736eac24ca90 100644 --- a/nova/tests/unit/virt/ironic/test_driver.py +++ b/nova/tests/unit/virt/ironic/test_driver.py @@ -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), diff --git a/nova/virt/ironic/driver.py b/nova/virt/ironic/driver.py index ce9e0e29063d..3af85d3bd049 100644 --- a/nova/virt/ironic/driver.py +++ b/nova/virt/ironic/driver.py @@ -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')