Merge "Remove the [pxe]ipxe_enabled configuration option"
This commit is contained in:
commit
4f9ad308f8
@ -29,4 +29,11 @@ def parse_args(argv, default_config_files=None):
|
|||||||
version=version.version_info.release_string(),
|
version=version.version_info.release_string(),
|
||||||
default_config_files=default_config_files)
|
default_config_files=default_config_files)
|
||||||
rpc.init(cfg.CONF)
|
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)
|
profiler_opts.set_defaults(cfg.CONF)
|
||||||
|
@ -106,17 +106,6 @@ opts = [
|
|||||||
default={},
|
default={},
|
||||||
help=_('Bootfile DHCP parameter per node architecture. '
|
help=_('Bootfile DHCP parameter per node architecture. '
|
||||||
'For example: aarch64:grubaa64.efi')),
|
'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',
|
cfg.StrOpt('ipxe_boot_script',
|
||||||
default=os.path.join(
|
default=os.path.join(
|
||||||
'$pybasedir', 'drivers/modules/boot.ipxe'),
|
'$pybasedir', 'drivers/modules/boot.ipxe'),
|
||||||
@ -149,9 +138,8 @@ opts = [
|
|||||||
"If set to false (default), images are downloaded "
|
"If set to false (default), images are downloaded "
|
||||||
"to the ironic-conductor node and served over its "
|
"to the ironic-conductor node and served over its "
|
||||||
"local HTTP server. "
|
"local HTTP server. "
|
||||||
"Applicable only when 'ipxe_enabled' option is "
|
"Applicable only when 'ipxe' compatible boot interface "
|
||||||
"set to true.")),
|
"is used.")),
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,8 +52,7 @@ class PXEBoot(pxe_base.PXEBaseMixin, base.BootInterface):
|
|||||||
# TODO(TheJulia): iscsi_volume_boot should be removed from
|
# TODO(TheJulia): iscsi_volume_boot should be removed from
|
||||||
# the list below once ipxe support is removed from the PXE
|
# the list below once ipxe support is removed from the PXE
|
||||||
# interface.
|
# interface.
|
||||||
capabilities = ['iscsi_volume_boot', 'ramdisk_boot', 'ipxe_boot',
|
capabilities = ['iscsi_volume_boot', 'ramdisk_boot', 'pxe_boot']
|
||||||
'pxe_boot']
|
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
# TODO(TheJulia): Once the pxe/ipxe interfaces split is complete,
|
# TODO(TheJulia): Once the pxe/ipxe interfaces split is complete,
|
||||||
|
@ -21,7 +21,6 @@ import retrying
|
|||||||
from ironic.common import cinder
|
from ironic.common import cinder
|
||||||
from ironic.common import exception
|
from ironic.common import exception
|
||||||
from ironic.common.i18n import _
|
from ironic.common.i18n import _
|
||||||
from ironic.common import pxe_utils
|
|
||||||
from ironic.common import states
|
from ironic.common import states
|
||||||
from ironic.drivers import base
|
from ironic.drivers import base
|
||||||
from ironic.drivers import utils
|
from ironic.drivers import utils
|
||||||
@ -77,7 +76,10 @@ class CinderStorage(base.StorageInterface):
|
|||||||
iscsi_uuids_found = []
|
iscsi_uuids_found = []
|
||||||
wwpn_found = 0
|
wwpn_found = 0
|
||||||
wwnn_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:
|
for connector in task.volume_connectors:
|
||||||
if (connector.type in VALID_ISCSI_TYPES
|
if (connector.type in VALID_ISCSI_TYPES
|
||||||
and connector.connector_id is not None):
|
and connector.connector_id is not None):
|
||||||
|
@ -30,12 +30,10 @@ class CinderInterfaceTestCase(db_base.DbTestCase):
|
|||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(CinderInterfaceTestCase, self).setUp()
|
super(CinderInterfaceTestCase, self).setUp()
|
||||||
self.config(ipxe_enabled=True,
|
|
||||||
group='pxe')
|
|
||||||
self.config(action_retries=3,
|
self.config(action_retries=3,
|
||||||
action_retry_interval=0,
|
action_retry_interval=0,
|
||||||
group='cinder')
|
group='cinder')
|
||||||
self.config(enabled_boot_interfaces=['fake'],
|
self.config(enabled_boot_interfaces=['fake', 'pxe'],
|
||||||
enabled_storage_interfaces=['noop', 'cinder'])
|
enabled_storage_interfaces=['noop', 'cinder'])
|
||||||
self.interface = cinder.CinderStorage()
|
self.interface = cinder.CinderStorage()
|
||||||
self.node = object_utils.create_test_node(self.context,
|
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)
|
@mock.patch.object(cinder, 'LOG', autospec=True)
|
||||||
def test_validate_fails_with_ipxe_not_enabled(self, mock_log):
|
def test_validate_fails_with_ipxe_not_enabled(self, mock_log):
|
||||||
"""Ensure a validation failure is raised when iPXE not enabled."""
|
"""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(
|
object_utils.create_test_volume_connector(
|
||||||
self.context, node_id=self.node.id, type='iqn',
|
self.context, node_id=self.node.id, type='iqn',
|
||||||
connector_id='foo.address')
|
connector_id='foo.address')
|
||||||
|
@ -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.
|
Loading…
x
Reference in New Issue
Block a user