Drop support for instance netboot

Change-Id: I2b4c543537dac8904028fdcdb590c1c214238e10
This commit is contained in:
Dmitry Tantsur 2022-07-07 16:37:28 +02:00
parent 0bd39c41cf
commit 6a1334a068
6 changed files with 21 additions and 47 deletions

View File

@ -152,7 +152,6 @@ def _write_partition_image(image, image_info, device, configdrive=None):
node_uuid = image_info.get('node_uuid') node_uuid = image_info.get('node_uuid')
preserve_ep = image_info['preserve_ephemeral'] preserve_ep = image_info['preserve_ephemeral']
boot_option = image_info.get('boot_option', 'local')
boot_mode = utils.get_node_boot_mode(cached_node) boot_mode = utils.get_node_boot_mode(cached_node)
disk_label = utils.get_partition_table_type_from_specs(cached_node) disk_label = utils.get_partition_table_type_from_specs(cached_node)
root_mb = image_info['root_mb'] root_mb = image_info['root_mb']
@ -175,7 +174,6 @@ def _write_partition_image(image, image_info, device, configdrive=None):
image, node_uuid, image, node_uuid,
preserve_ephemeral=preserve_ep, preserve_ephemeral=preserve_ep,
configdrive=configdrive, configdrive=configdrive,
boot_option=boot_option,
boot_mode=boot_mode, boot_mode=boot_mode,
disk_label=disk_label, disk_label=disk_label,
cpu_arch=cpu_arch) cpu_arch=cpu_arch)
@ -253,7 +251,6 @@ def _message_format(msg, image_info, device, partition_uuids):
efi_system_partition_uuid = ( efi_system_partition_uuid = (
partition_uuids.get('efi system partition uuid')) partition_uuids.get('efi system partition uuid'))
if (image_info.get('deploy_boot_mode') == 'uefi' if (image_info.get('deploy_boot_mode') == 'uefi'
and image_info.get('boot_option') == 'local'
and efi_system_partition_uuid): and efi_system_partition_uuid):
result_msg = msg + 'root_uuid={} efi_system_partition_uuid={}' result_msg = msg + 'root_uuid={} efi_system_partition_uuid={}'
message = result_msg.format(image_info['id'], device, message = result_msg.format(image_info['id'], device,

View File

@ -187,7 +187,7 @@ def get_labelled_partition(device_path, label, node_uuid):
def work_on_disk(dev, root_mb, swap_mb, ephemeral_mb, ephemeral_format, def work_on_disk(dev, root_mb, swap_mb, ephemeral_mb, ephemeral_format,
image_path, node_uuid, preserve_ephemeral=False, image_path, node_uuid, preserve_ephemeral=False,
configdrive=None, boot_option="netboot", boot_mode="bios", configdrive=None, boot_mode="bios",
tempdir=None, disk_label=None, cpu_arch="", conv_flags=None): tempdir=None, disk_label=None, cpu_arch="", conv_flags=None):
"""Create partitions and copy an image to the root partition. """Create partitions and copy an image to the root partition.
@ -206,7 +206,6 @@ def work_on_disk(dev, root_mb, swap_mb, ephemeral_mb, ephemeral_format,
partition table has not changed). partition table has not changed).
:param configdrive: Optional. Base64 encoded Gzipped configdrive content :param configdrive: Optional. Base64 encoded Gzipped configdrive content
or configdrive HTTP URL. or configdrive HTTP URL.
:param boot_option: Can be "local" or "netboot". "netboot" by default.
:param boot_mode: Can be "bios" or "uefi". "bios" by default. :param boot_mode: Can be "bios" or "uefi". "bios" by default.
:param tempdir: A temporary directory :param tempdir: A temporary directory
:param disk_label: The disk label to be used when creating the :param disk_label: The disk label to be used when creating the
@ -248,7 +247,7 @@ def work_on_disk(dev, root_mb, swap_mb, ephemeral_mb, ephemeral_format,
root_mb, swap_mb, ephemeral_mb, root_mb, swap_mb, ephemeral_mb,
configdrive_mb, node_uuid, configdrive_mb, node_uuid,
commit=commit, commit=commit,
boot_option=boot_option, boot_option='local',
boot_mode=boot_mode, boot_mode=boot_mode,
disk_label=disk_label, disk_label=disk_label,
cpu_arch=cpu_arch) cpu_arch=cpu_arch)
@ -278,7 +277,7 @@ def work_on_disk(dev, root_mb, swap_mb, ephemeral_mb, ephemeral_format,
# If it's a uefi localboot, then we have created the efi system # If it's a uefi localboot, then we have created the efi system
# partition. Create a fat filesystem on it. # partition. Create a fat filesystem on it.
if boot_mode == "uefi" and boot_option == "local": if boot_mode == "uefi":
efi_system_part = part_dict.get('efi system partition') efi_system_part = part_dict.get('efi system partition')
utils.mkfs(fs='vfat', path=efi_system_part, label='efi-part') utils.mkfs(fs='vfat', path=efi_system_part, label='efi-part')

View File

@ -53,7 +53,6 @@ def _build_fake_partition_image_info():
'ephemeral_format': 'abc', 'ephemeral_format': 'abc',
'preserve_ephemeral': 'False', 'preserve_ephemeral': 'False',
'image_type': 'partition', 'image_type': 'partition',
'boot_option': 'netboot',
'disk_label': 'msdos', 'disk_label': 'msdos',
'deploy_boot_mode': 'bios'} 'deploy_boot_mode': 'bios'}
@ -234,7 +233,6 @@ class TestStandbyExtension(base.IronicAgentTest):
node_uuid = image_info['node_uuid'] node_uuid = image_info['node_uuid']
pr_ep = image_info['preserve_ephemeral'] pr_ep = image_info['preserve_ephemeral']
boot_mode = image_info['deploy_boot_mode'] boot_mode = image_info['deploy_boot_mode']
boot_option = image_info['boot_option']
disk_label = image_info['disk_label'] disk_label = image_info['disk_label']
cpu_arch = self.fake_cpu.architecture cpu_arch = self.fake_cpu.architecture
@ -257,7 +255,6 @@ class TestStandbyExtension(base.IronicAgentTest):
configdrive='configdrive', configdrive='configdrive',
preserve_ephemeral=pr_ep, preserve_ephemeral=pr_ep,
boot_mode=boot_mode, boot_mode=boot_mode,
boot_option=boot_option,
disk_label=disk_label, disk_label=disk_label,
cpu_arch=cpu_arch) cpu_arch=cpu_arch)
@ -281,7 +278,6 @@ class TestStandbyExtension(base.IronicAgentTest):
node_uuid = image_info['node_uuid'] node_uuid = image_info['node_uuid']
pr_ep = image_info['preserve_ephemeral'] pr_ep = image_info['preserve_ephemeral']
boot_mode = image_info['deploy_boot_mode'] boot_mode = image_info['deploy_boot_mode']
boot_option = image_info['boot_option']
disk_label = image_info['disk_label'] disk_label = image_info['disk_label']
cpu_arch = self.fake_cpu.architecture cpu_arch = self.fake_cpu.architecture
@ -304,7 +300,6 @@ class TestStandbyExtension(base.IronicAgentTest):
configdrive='configdrive', configdrive='configdrive',
preserve_ephemeral=pr_ep, preserve_ephemeral=pr_ep,
boot_mode=boot_mode, boot_mode=boot_mode,
boot_option=boot_option,
disk_label=disk_label, disk_label=disk_label,
cpu_arch=cpu_arch) cpu_arch=cpu_arch)
@ -353,7 +348,6 @@ class TestStandbyExtension(base.IronicAgentTest):
node_uuid = image_info['node_uuid'] node_uuid = image_info['node_uuid']
pr_ep = image_info['preserve_ephemeral'] pr_ep = image_info['preserve_ephemeral']
boot_mode = image_info['deploy_boot_mode'] boot_mode = image_info['deploy_boot_mode']
boot_option = image_info['boot_option']
disk_label = image_info['disk_label'] disk_label = image_info['disk_label']
cpu_arch = self.fake_cpu.architecture cpu_arch = self.fake_cpu.architecture
@ -374,7 +368,6 @@ class TestStandbyExtension(base.IronicAgentTest):
configdrive='configdrive', configdrive='configdrive',
preserve_ephemeral=pr_ep, preserve_ephemeral=pr_ep,
boot_mode=boot_mode, boot_mode=boot_mode,
boot_option=boot_option,
disk_label=disk_label, disk_label=disk_label,
cpu_arch=cpu_arch) cpu_arch=cpu_arch)
@ -1346,24 +1339,9 @@ class TestStandbyExtension(base.IronicAgentTest):
'/dev/fake root_uuid=root_uuid') '/dev/fake root_uuid=root_uuid')
self.assertEqual(expected_msg, result_msg) self.assertEqual(expected_msg, result_msg)
def test__message_format_partition_uefi_netboot(self): def test__message_format_partition_uefi(self):
image_info = _build_fake_partition_image_info() image_info = _build_fake_partition_image_info()
image_info['deploy_boot_mode'] = 'uefi' image_info['deploy_boot_mode'] = 'uefi'
image_info['boot_option'] = 'netboot'
msg = ('image ({}) already present on device {} ')
device = '/dev/fake'
partition_uuids = {'root uuid': 'root_uuid',
'efi system partition uuid': None}
result_msg = standby._message_format(msg, image_info,
device, partition_uuids)
expected_msg = ('image (fake_id) already present on device '
'/dev/fake root_uuid=root_uuid')
self.assertEqual(expected_msg, result_msg)
def test__message_format_partition_uefi_localboot(self):
image_info = _build_fake_partition_image_info()
image_info['deploy_boot_mode'] = 'uefi'
image_info['boot_option'] = 'local'
msg = ('image ({}) already present on device {} ') msg = ('image ({}) already present on device {} ')
device = '/dev/fake' device = '/dev/fake'
partition_uuids = {'root uuid': 'root_uuid', partition_uuids = {'root uuid': 'root_uuid',
@ -1430,7 +1408,6 @@ class TestStandbyExtension(base.IronicAgentTest):
ephemeral_format = image_info['ephemeral_format'] ephemeral_format = image_info['ephemeral_format']
node_uuid = image_info['node_uuid'] node_uuid = image_info['node_uuid']
pr_ep = image_info['preserve_ephemeral'] pr_ep = image_info['preserve_ephemeral']
boot_option = image_info['boot_option']
cpu_arch = self.fake_cpu.architecture cpu_arch = self.fake_cpu.architecture
image_path = standby._image_location(image_info) image_path = standby._image_location(image_info)
@ -1452,7 +1429,6 @@ class TestStandbyExtension(base.IronicAgentTest):
configdrive='configdrive', configdrive='configdrive',
preserve_ephemeral=pr_ep, preserve_ephemeral=pr_ep,
boot_mode='uefi', boot_mode='uefi',
boot_option=boot_option,
disk_label='gpt', disk_label='gpt',
cpu_arch=cpu_arch) cpu_arch=cpu_arch)

View File

@ -321,7 +321,7 @@ class WorkOnDiskTestCase(base.IronicAgentTest):
self.swap_mb, self.ephemeral_mb, self.swap_mb, self.ephemeral_mb,
self.configdrive_mb, self.configdrive_mb,
self.node_uuid, commit=True, self.node_uuid, commit=True,
boot_option="netboot", boot_option="local",
boot_mode="bios", boot_mode="bios",
disk_label=None, disk_label=None,
cpu_arch="") cpu_arch="")
@ -340,7 +340,7 @@ class WorkOnDiskTestCase(base.IronicAgentTest):
self.swap_mb, self.ephemeral_mb, self.swap_mb, self.ephemeral_mb,
self.configdrive_mb, self.configdrive_mb,
self.node_uuid, commit=True, self.node_uuid, commit=True,
boot_option="netboot", boot_option="local",
boot_mode="bios", boot_mode="bios",
disk_label=None, disk_label=None,
cpu_arch="") cpu_arch="")
@ -368,7 +368,7 @@ class WorkOnDiskTestCase(base.IronicAgentTest):
self.swap_mb, ephemeral_mb, self.swap_mb, ephemeral_mb,
self.configdrive_mb, self.configdrive_mb,
self.node_uuid, commit=True, self.node_uuid, commit=True,
boot_option="netboot", boot_option="local",
boot_mode="bios", boot_mode="bios",
disk_label=None, disk_label=None,
cpu_arch="") cpu_arch="")
@ -395,14 +395,13 @@ class WorkOnDiskTestCase(base.IronicAgentTest):
self.swap_mb, self.ephemeral_mb, self.swap_mb, self.ephemeral_mb,
self.ephemeral_format, self.image_path, self.ephemeral_format, self.image_path,
self.node_uuid, preserve_ephemeral=False, self.node_uuid, preserve_ephemeral=False,
configdrive=configdrive_url, configdrive=configdrive_url)
boot_option="netboot")
self.assertEqual(self.mock_ibd.call_args_list, calls) self.assertEqual(self.mock_ibd.call_args_list, calls)
self.mock_mp.assert_called_once_with(self.dev, self.root_mb, self.mock_mp.assert_called_once_with(self.dev, self.root_mb,
self.swap_mb, self.ephemeral_mb, self.swap_mb, self.ephemeral_mb,
configdrive_mb, self.node_uuid, configdrive_mb, self.node_uuid,
commit=True, commit=True,
boot_option="netboot", boot_option="local",
boot_mode="bios", boot_mode="bios",
disk_label=None, disk_label=None,
cpu_arch="") cpu_arch="")
@ -436,7 +435,7 @@ class WorkOnDiskTestCase(base.IronicAgentTest):
self.swap_mb, ephemeral_mb, self.swap_mb, ephemeral_mb,
self.configdrive_mb, self.configdrive_mb,
self.node_uuid, commit=True, self.node_uuid, commit=True,
boot_option="netboot", boot_option="local",
boot_mode="bios", boot_mode="bios",
disk_label=None, disk_label=None,
cpu_arch="") cpu_arch="")
@ -474,7 +473,7 @@ class WorkOnDiskTestCase(base.IronicAgentTest):
self.swap_mb, ephemeral_mb, self.swap_mb, ephemeral_mb,
self.configdrive_mb, self.configdrive_mb,
self.node_uuid, commit=True, self.node_uuid, commit=True,
boot_option="netboot", boot_option="local",
boot_mode="bios", boot_mode="bios",
disk_label='gpt', disk_label='gpt',
cpu_arch="") cpu_arch="")
@ -483,8 +482,8 @@ class WorkOnDiskTestCase(base.IronicAgentTest):
@mock.patch.object(disk_utils, 'block_uuid', autospec=True) @mock.patch.object(disk_utils, 'block_uuid', autospec=True)
@mock.patch.object(disk_utils, 'populate_image', autospec=True) @mock.patch.object(disk_utils, 'populate_image', autospec=True)
@mock.patch.object(utils, 'mkfs', autospec=True) @mock.patch.object(utils, 'mkfs', autospec=True)
def test_uefi_localboot(self, mock_mkfs, mock_populate_image, def test_uefi(self, mock_mkfs, mock_populate_image,
mock_block_uuid, mock_trigger_device_rescan): mock_block_uuid, mock_trigger_device_rescan):
"""Test that we create a fat filesystem with UEFI localboot.""" """Test that we create a fat filesystem with UEFI localboot."""
root_part = '/dev/fake-part1' root_part = '/dev/fake-part1'
efi_part = '/dev/fake-part2' efi_part = '/dev/fake-part2'
@ -498,7 +497,7 @@ class WorkOnDiskTestCase(base.IronicAgentTest):
self.swap_mb, self.ephemeral_mb, self.swap_mb, self.ephemeral_mb,
self.ephemeral_format, self.ephemeral_format,
self.image_path, self.node_uuid, self.image_path, self.node_uuid,
boot_option="local", boot_mode="uefi") boot_mode="uefi")
self.mock_mp.assert_called_once_with(self.dev, self.root_mb, self.mock_mp.assert_called_once_with(self.dev, self.root_mb,
self.swap_mb, self.ephemeral_mb, self.swap_mb, self.ephemeral_mb,
@ -544,7 +543,7 @@ class WorkOnDiskTestCase(base.IronicAgentTest):
self.swap_mb, ephemeral_mb, self.swap_mb, ephemeral_mb,
self.configdrive_mb, self.configdrive_mb,
self.node_uuid, commit=False, self.node_uuid, commit=False,
boot_option="netboot", boot_option="local",
boot_mode="bios", boot_mode="bios",
disk_label=None, disk_label=None,
cpu_arch="") cpu_arch="")
@ -568,8 +567,7 @@ class WorkOnDiskTestCase(base.IronicAgentTest):
partition_utils.work_on_disk(self.dev, self.root_mb, partition_utils.work_on_disk(self.dev, self.root_mb,
self.swap_mb, self.ephemeral_mb, self.swap_mb, self.ephemeral_mb,
self.ephemeral_format, self.image_path, self.ephemeral_format, self.image_path,
self.node_uuid, boot_option="local", self.node_uuid, cpu_arch='ppc64le')
cpu_arch='ppc64le')
self.assertEqual(self.mock_ibd.call_args_list, calls) self.assertEqual(self.mock_ibd.call_args_list, calls)
self.mock_mp.assert_called_once_with(self.dev, self.root_mb, self.mock_mp.assert_called_once_with(self.dev, self.root_mb,
self.swap_mb, self.ephemeral_mb, self.swap_mb, self.ephemeral_mb,

View File

@ -0,0 +1,5 @@
---
upgrade:
- |
No longer supports network boot of instances (``boot_option=netboot``).
This feature is dropped from Ironic in the Zed cycle.

View File

@ -39,7 +39,6 @@
s-proxy: True s-proxy: True
devstack_localrc: devstack_localrc:
IRONIC_BOOT_MODE: bios IRONIC_BOOT_MODE: bios
IRONIC_DEFAULT_BOOT_OPTION: netboot
IRONIC_DEFAULT_DEPLOY_INTERFACE: direct IRONIC_DEFAULT_DEPLOY_INTERFACE: direct
SWIFT_ENABLE_TEMPURLS: True SWIFT_ENABLE_TEMPURLS: True
SWIFT_TEMPURL_KEY: secretkey SWIFT_TEMPURL_KEY: secretkey