diff --git a/ironic/drivers/modules/iscsi_deploy.py b/ironic/drivers/modules/iscsi_deploy.py index e4a6e07b9c..03b5687085 100644 --- a/ironic/drivers/modules/iscsi_deploy.py +++ b/ironic/drivers/modules/iscsi_deploy.py @@ -465,6 +465,7 @@ class ISCSIDeploy(AgentDeployMixin, base.DeployInterface): manager_utils.node_power_action(task, states.POWER_OFF) task.driver.network.remove_provisioning_network(task) task.driver.network.configure_tenant_networks(task) + task.driver.boot.prepare_instance(task) manager_utils.node_power_action(task, states.POWER_ON) task.process_event('done') LOG.info('Deployment to node %s done', node.uuid) diff --git a/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py b/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py index 7745b972a8..39d37c9d7f 100644 --- a/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py +++ b/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py @@ -712,6 +712,9 @@ class ISCSIDeployTestCase(db_base.DbTestCase): @mock.patch.object(flat_network.FlatNetwork, 'remove_provisioning_network', spec_set=True, autospec=True) + @mock.patch.object(pxe.PXEBoot, + 'prepare_instance', + spec_set=True, autospec=True) @mock.patch.object(manager_utils, 'node_power_action', autospec=True) @mock.patch.object(iscsi_deploy, 'check_image_size', autospec=True) @mock.patch.object(iscsi_deploy, 'cache_instance_image', autospec=True) @@ -719,6 +722,7 @@ class ISCSIDeployTestCase(db_base.DbTestCase): mock_cache_instance_image, mock_check_image_size, mock_node_power_action, + mock_prepare_instance, mock_remove_network, mock_tenant_network, mock_write): @@ -733,6 +737,7 @@ class ISCSIDeployTestCase(db_base.DbTestCase): self.assertFalse(mock_check_image_size.called) mock_remove_network.assert_called_once_with(mock.ANY, task) mock_tenant_network.assert_called_once_with(mock.ANY, task) + mock_prepare_instance.assert_called_once_with(mock.ANY, task) self.assertEqual(2, mock_node_power_action.call_count) @mock.patch.object(noop_storage.NoopStorage, 'detach_volumes', diff --git a/releasenotes/notes/fix-boot-from-volume-for-iscsi-deploy-60bc0790ada62b26.yaml b/releasenotes/notes/fix-boot-from-volume-for-iscsi-deploy-60bc0790ada62b26.yaml new file mode 100644 index 0000000000..7db10978e0 --- /dev/null +++ b/releasenotes/notes/fix-boot-from-volume-for-iscsi-deploy-60bc0790ada62b26.yaml @@ -0,0 +1,9 @@ +--- +fixes: + - | + Fixes an issue in boot from volume for ``iscsi`` deploy interface. Boot + from a volume fails when it is requested for a node having ``iscsi`` + deploy interface, it doesn't create pxelinux.cfg file for mac, + and failed to boot. See `bug 1714436 + `_ for details. +