Build instance PXE options for unrescue
This patch always builds PXE options for booting a user image even if the provision state is related to rescue mode. When the state is unrescuing, these options are necessary to boot a user image. When the provision state is rescuing, these options are just ignored because the PXE configuration is used at deployment mode. Change-Id: I1ff51cab120e6612c71e5d9c45cf28797bc16e76 Closes-Bug: 1749433
This commit is contained in:
parent
4f52b698dc
commit
4df93fc474
@ -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())
|
||||
|
||||
|
@ -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()
|
||||
|
||||
|
6
releasenotes/notes/bug-1749433-363b747d2db67df6.yaml
Normal file
6
releasenotes/notes/bug-1749433-363b747d2db67df6.yaml
Normal file
@ -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
|
||||
<https://bugs.launchpad.net/ironic/+bug/1749433>`_ for details.
|
Loading…
Reference in New Issue
Block a user