diff --git a/ironic/drivers/modules/pxe.py b/ironic/drivers/modules/pxe.py index 654b821565..493d5e29b7 100644 --- a/ironic/drivers/modules/pxe.py +++ b/ironic/drivers/modules/pxe.py @@ -250,13 +250,12 @@ def _build_pxe_config_options(task, pxe_info, service=False): else: pxe_options = _build_deploy_pxe_options(task, pxe_info, mode=mode) - if mode == 'deploy': - # NOTE(pas-ha) we still must always add user image kernel and ramdisk - # info as later during switching PXE config to service mode the - # template will not be regenerated anew, but instead edited as-is. - # This can be changed later if/when switching PXE config will also use - # proper templating instead of editing existing files on disk. - pxe_options.update(_build_instance_pxe_options(task, pxe_info)) + # NOTE(pas-ha) we still must always add user image kernel and ramdisk + # info as later during switching PXE config to service mode the + # template will not be regenerated anew, but instead edited as-is. + # This can be changed later if/when switching PXE config will also use + # proper templating instead of editing existing files on disk. + pxe_options.update(_build_instance_pxe_options(task, pxe_info)) pxe_options.update(_build_extra_pxe_options()) diff --git a/ironic/tests/unit/drivers/modules/test_pxe.py b/ironic/tests/unit/drivers/modules/test_pxe.py index 0af37c88e6..fffe3d368f 100644 --- a/ironic/tests/unit/drivers/modules/test_pxe.py +++ b/ironic/tests/unit/drivers/modules/test_pxe.py @@ -250,11 +250,11 @@ class PXEPrivateMethodsTestCase(db_base.DbTestCase): 'deployment_aki_path': pxe_kernel, 'tftp_server': tftp_server, 'ipxe_timeout': 0, + 'ari_path': ramdisk, + 'aki_path': kernel, } - if mode == 'deploy': - expected_options.update({'ari_path': ramdisk, 'aki_path': kernel}) - elif mode == 'rescue': + if mode == 'rescue': self.node.provision_state = states.RESCUING self.node.save() @@ -413,10 +413,11 @@ class PXEPrivateMethodsTestCase(db_base.DbTestCase): 'deployment_aki_path': pxe_kernel, 'tftp_server': tftp_server, 'ipxe_timeout': ipxe_timeout_in_ms, + 'ari_path': ramdisk, + 'aki_path': kernel, } - if mode == 'deploy': - expected_options.update({'ari_path': ramdisk, 'aki_path': kernel}) - elif mode == 'rescue': + + if mode == 'rescue': self.node.provision_state = states.RESCUING self.node.save() diff --git a/releasenotes/notes/bug-1749433-363b747d2db67df6.yaml b/releasenotes/notes/bug-1749433-363b747d2db67df6.yaml new file mode 100644 index 0000000000..6bdb4c6e9a --- /dev/null +++ b/releasenotes/notes/bug-1749433-363b747d2db67df6.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixes a bug preventing a node from booting into the user instance after unrescuing + if instance netboot is used. See `bug 1749433 + `_ for details.