From 7a89ddcf0cb3a6499cd00fc25c092147210c1fa2 Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Tue, 13 Oct 2020 15:16:43 +0200 Subject: [PATCH] Do not pass BOOTIF=None if no BOOTIF can be guessed It breaks inspection with the default add_ports=pxe. Change-Id: I730b4bbd48e7188148669670fdb742b88a62f820 --- ironic/drivers/modules/ilo/boot.py | 6 ++++-- ironic/drivers/modules/irmc/boot.py | 3 ++- ironic/drivers/modules/redfish/boot.py | 3 ++- ironic/tests/unit/drivers/modules/redfish/test_boot.py | 3 --- releasenotes/notes/no-fake-bootif-505cc5bf48e7731f.yaml | 5 +++++ 5 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 releasenotes/notes/no-fake-bootif-505cc5bf48e7731f.yaml diff --git a/ironic/drivers/modules/ilo/boot.py b/ironic/drivers/modules/ilo/boot.py index 5ac6451335..613ec40ec8 100644 --- a/ironic/drivers/modules/ilo/boot.py +++ b/ironic/drivers/modules/ilo/boot.py @@ -456,7 +456,8 @@ class IloVirtualMediaBoot(base.BootInterface): task.node.save() deploy_nic_mac = deploy_utils.get_single_nic_with_vif_port_id(task) - ramdisk_params['BOOTIF'] = deploy_nic_mac + if deploy_nic_mac is not None: + ramdisk_params['BOOTIF'] = deploy_nic_mac if (node.driver_info.get('ilo_rescue_iso') and node.provision_state == states.RESCUING): iso = node.driver_info['ilo_rescue_iso'] @@ -1077,7 +1078,8 @@ class IloUefiHttpsBoot(base.BootInterface): task.node.save() deploy_nic_mac = deploy_utils.get_single_nic_with_vif_port_id(task) - ramdisk_params['BOOTIF'] = deploy_nic_mac + if deploy_nic_mac is not None: + ramdisk_params['BOOTIF'] = deploy_nic_mac mode = 'deploy' if node.provision_state == states.RESCUING: diff --git a/ironic/drivers/modules/irmc/boot.py b/ironic/drivers/modules/irmc/boot.py index 8152548430..b2bcd9c308 100644 --- a/ironic/drivers/modules/irmc/boot.py +++ b/ironic/drivers/modules/irmc/boot.py @@ -994,7 +994,8 @@ class IRMCVirtualMediaBoot(base.BootInterface, IRMCVolumeBootMixIn): task.node.save() deploy_nic_mac = deploy_utils.get_single_nic_with_vif_port_id(task) - ramdisk_params['BOOTIF'] = deploy_nic_mac + if deploy_nic_mac is not None: + ramdisk_params['BOOTIF'] = deploy_nic_mac if task.node.provision_state == states.RESCUING: mode = 'rescue' diff --git a/ironic/drivers/modules/redfish/boot.py b/ironic/drivers/modules/redfish/boot.py index 576979cb35..15c8352d1b 100644 --- a/ironic/drivers/modules/redfish/boot.py +++ b/ironic/drivers/modules/redfish/boot.py @@ -415,7 +415,8 @@ class RedfishVirtualMediaBoot(base.BootInterface): config_via_floppy = d_info.get('config_via_floppy') deploy_nic_mac = deploy_utils.get_single_nic_with_vif_port_id(task) - ramdisk_params['BOOTIF'] = deploy_nic_mac + if deploy_nic_mac is not None: + ramdisk_params['BOOTIF'] = deploy_nic_mac if CONF.debug and 'ipa-debug' not in ramdisk_params: ramdisk_params['ipa-debug'] = '1' diff --git a/ironic/tests/unit/drivers/modules/redfish/test_boot.py b/ironic/tests/unit/drivers/modules/redfish/test_boot.py index c723457b86..540b99cebd 100644 --- a/ironic/tests/unit/drivers/modules/redfish/test_boot.py +++ b/ironic/tests/unit/drivers/modules/redfish/test_boot.py @@ -356,7 +356,6 @@ class RedfishVirtualMediaBootTestCase(db_base.DbTestCase): task, 'image-url', sushy.VIRTUAL_MEDIA_CD) expected_params = { - 'BOOTIF': None, 'ipa-agent-token': mock.ANY, 'ipa-debug': '1', } @@ -402,7 +401,6 @@ class RedfishVirtualMediaBootTestCase(db_base.DbTestCase): task, 'image-url', sushy.VIRTUAL_MEDIA_CD) expected_params = { - 'BOOTIF': None, 'ipa-agent-token': mock.ANY, } @@ -470,7 +468,6 @@ class RedfishVirtualMediaBootTestCase(db_base.DbTestCase): mock__insert_vmedia.assert_has_calls(insert_calls) expected_params = { - 'BOOTIF': None, 'boot_method': 'vmedia', 'ipa-debug': '1', 'ipa-agent-token': mock.ANY, diff --git a/releasenotes/notes/no-fake-bootif-505cc5bf48e7731f.yaml b/releasenotes/notes/no-fake-bootif-505cc5bf48e7731f.yaml new file mode 100644 index 0000000000..20944dd7f3 --- /dev/null +++ b/releasenotes/notes/no-fake-bootif-505cc5bf48e7731f.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + No longer tries to pass ``BOOTIF=None`` as a kernel parameter when using + virtual media. This could break inspection.