Merge "Remove the [pxe]ipxe_enabled configuration option"

This commit is contained in:
Zuul 2020-02-19 23:26:33 +00:00 committed by Gerrit Code Review
commit 4f9ad308f8
6 changed files with 24 additions and 22 deletions

View File

@ -29,4 +29,11 @@ def parse_args(argv, default_config_files=None):
version=version.version_info.release_string(),
default_config_files=default_config_files)
rpc.init(cfg.CONF)
# TODO(kaifeng) Remove ipxe_enabled option handling after ipxe support
# is completely removed from the pxe interface.
ipxe_enabled = cfg.BoolOpt('ipxe_enabled', default=False,
deprecated_for_removal=True)
cfg.CONF.register_opt(ipxe_enabled, group='pxe')
cfg.CONF.set_override('ipxe_enabled', False, group='pxe')
profiler_opts.set_defaults(cfg.CONF)

View File

@ -106,17 +106,6 @@ opts = [
default={},
help=_('Bootfile DHCP parameter per node architecture. '
'For example: aarch64:grubaa64.efi')),
cfg.BoolOpt('ipxe_enabled',
default=False,
help=_('Defaults the PXE interface to only use iPXE.'),
deprecated_for_removal=True,
deprecated_reason=_("This global setting has been "
"superseded by an 'ipxe' boot "
"interface. Set the "
"[default]default_boot_interface "
"to 'ipxe' and/or manually set the node "
"boot interface to 'ipxe' to maintain "
"the same functionality.")),
cfg.StrOpt('ipxe_boot_script',
default=os.path.join(
'$pybasedir', 'drivers/modules/boot.ipxe'),
@ -149,9 +138,8 @@ opts = [
"If set to false (default), images are downloaded "
"to the ironic-conductor node and served over its "
"local HTTP server. "
"Applicable only when 'ipxe_enabled' option is "
"set to true.")),
"Applicable only when 'ipxe' compatible boot interface "
"is used.")),
]

View File

@ -52,8 +52,7 @@ class PXEBoot(pxe_base.PXEBaseMixin, base.BootInterface):
# TODO(TheJulia): iscsi_volume_boot should be removed from
# the list below once ipxe support is removed from the PXE
# interface.
capabilities = ['iscsi_volume_boot', 'ramdisk_boot', 'ipxe_boot',
'pxe_boot']
capabilities = ['iscsi_volume_boot', 'ramdisk_boot', 'pxe_boot']
def __init__(self):
# TODO(TheJulia): Once the pxe/ipxe interfaces split is complete,

View File

@ -21,7 +21,6 @@ import retrying
from ironic.common import cinder
from ironic.common import exception
from ironic.common.i18n import _
from ironic.common import pxe_utils
from ironic.common import states
from ironic.drivers import base
from ironic.drivers import utils
@ -77,7 +76,10 @@ class CinderStorage(base.StorageInterface):
iscsi_uuids_found = []
wwpn_found = 0
wwnn_found = 0
ipxe_enabled = pxe_utils.is_ipxe_enabled(task)
ipxe_enabled = False
if 'ipxe_boot' in task.driver.boot.capabilities:
ipxe_enabled = True
for connector in task.volume_connectors:
if (connector.type in VALID_ISCSI_TYPES
and connector.connector_id is not None):

View File

@ -30,12 +30,10 @@ class CinderInterfaceTestCase(db_base.DbTestCase):
def setUp(self):
super(CinderInterfaceTestCase, self).setUp()
self.config(ipxe_enabled=True,
group='pxe')
self.config(action_retries=3,
action_retry_interval=0,
group='cinder')
self.config(enabled_boot_interfaces=['fake'],
self.config(enabled_boot_interfaces=['fake', 'pxe'],
enabled_storage_interfaces=['noop', 'cinder'])
self.interface = cinder.CinderStorage()
self.node = object_utils.create_test_node(self.context,
@ -290,7 +288,8 @@ class CinderInterfaceTestCase(db_base.DbTestCase):
@mock.patch.object(cinder, 'LOG', autospec=True)
def test_validate_fails_with_ipxe_not_enabled(self, mock_log):
"""Ensure a validation failure is raised when iPXE not enabled."""
self.config(ipxe_enabled=False, group='pxe')
self.node.boot_interface = 'pxe'
self.node.save()
object_utils.create_test_volume_connector(
self.context, node_id=self.node.id, type='iqn',
connector_id='foo.address')

View File

@ -0,0 +1,7 @@
---
upgrade:
- |
The configuration option ``[pxe]ipxe_enabled`` was deprecated and now has
been removed, thus the support for iPXE from the ``pxe`` interface was
removed. To use iPXE, the boot interface should be migrated to ``ipxe`` or
other boot interfaces capable of booting from iPXE.