PXE driver: Deprecate pxe_deploy_{ramdisk, kernel}
Since we now can use the IPA ramdisk as the deploy ramdisk for both the PXE and Agent drivers, it makes sense to support passing the same parameters to the node.driver_info on both drivers type. This patch is deprecating the "pxe_deploy_ramdisk" and "pxe_deploy_kernel" parameters for the PXE drivers in favor of the "deploy_ramdisk" and "deploy_kernel" parameters that is already used by the Agent drivers. We are logging a warning when the "pxe_" namespaced parameters are used and also saying it's deprecated when get_options() is invoked via the API. DocImpact Change-Id: Ib2c4eba57bd5535310bf5b026a7ab01932ec4300
This commit is contained in:
parent
812ed66cca
commit
0516224b0d
@ -100,9 +100,15 @@ CONF.import_opt('deploy_callback_timeout', 'ironic.conductor.manager',
|
||||
|
||||
|
||||
REQUIRED_PROPERTIES = {
|
||||
'pxe_deploy_kernel': _("UUID (from Glance) of the deployment kernel. "
|
||||
'deploy_kernel': _("UUID (from Glance) of the deployment kernel. "
|
||||
"Required."),
|
||||
'deploy_ramdisk': _("UUID (from Glance) of the ramdisk that is "
|
||||
"mounted at boot time. Required."),
|
||||
'pxe_deploy_kernel': _("DEPRECATED: Use deploy_kernel instead. UUID "
|
||||
"(from Glance) of the deployment kernel. "
|
||||
"Required."),
|
||||
'pxe_deploy_ramdisk': _("UUID (from Glance) of the ramdisk that is "
|
||||
'pxe_deploy_ramdisk': _("DEPRECATED: Use deploy_ramdisk instead. UUID "
|
||||
"(from Glance) of the ramdisk that is "
|
||||
"mounted at boot time. Required."),
|
||||
}
|
||||
COMMON_PROPERTIES = REQUIRED_PROPERTIES
|
||||
@ -121,12 +127,25 @@ def _parse_driver_info(node):
|
||||
"""
|
||||
info = node.driver_info
|
||||
d_info = {}
|
||||
d_info['deploy_kernel'] = info.get('pxe_deploy_kernel')
|
||||
d_info['deploy_ramdisk'] = info.get('pxe_deploy_ramdisk')
|
||||
|
||||
# NOTE(lucasagomes): For backwards compatibility let's keep accepting
|
||||
# pxe_deploy_{kernel, ramdisk}, should be removed in Liberty.
|
||||
deprecated_msg = _LW('The "%(old_param)s" parameter is deprecated. '
|
||||
'Please use "%(new_param)s" instead.')
|
||||
|
||||
for parameter in ('deploy_kernel', 'deploy_ramdisk'):
|
||||
value = info.get(parameter)
|
||||
if not value:
|
||||
old_parameter = 'pxe_' + parameter
|
||||
value = info.get(old_parameter)
|
||||
if value:
|
||||
LOG.warning(deprecated_msg, {'old_param': old_parameter,
|
||||
'new_param': parameter})
|
||||
d_info[parameter] = value
|
||||
|
||||
error_msg = _("Cannot validate PXE bootloader. Some parameters were"
|
||||
" missing in node's driver_info")
|
||||
deploy_utils.check_for_missing_params(d_info, error_msg, 'pxe_')
|
||||
deploy_utils.check_for_missing_params(d_info, error_msg)
|
||||
|
||||
return d_info
|
||||
|
||||
|
@ -2789,7 +2789,8 @@ class ManagerTestProperties(tests_db_base.DbTestCase):
|
||||
self._check_driver_properties("fake_ssh", expected)
|
||||
|
||||
def test_driver_properties_fake_pxe(self):
|
||||
expected = ['pxe_deploy_kernel', 'pxe_deploy_ramdisk']
|
||||
expected = ['pxe_deploy_kernel', 'pxe_deploy_ramdisk',
|
||||
'deploy_kernel', 'deploy_ramdisk']
|
||||
self._check_driver_properties("fake_pxe", expected)
|
||||
|
||||
def test_driver_properties_fake_seamicro(self):
|
||||
@ -2809,18 +2810,21 @@ class ManagerTestProperties(tests_db_base.DbTestCase):
|
||||
'ipmi_username', 'ipmi_bridging', 'ipmi_transit_channel',
|
||||
'ipmi_transit_address', 'ipmi_target_channel',
|
||||
'ipmi_target_address', 'ipmi_local_address',
|
||||
'pxe_deploy_kernel', 'pxe_deploy_ramdisk'
|
||||
'pxe_deploy_kernel', 'pxe_deploy_ramdisk',
|
||||
'deploy_kernel', 'deploy_ramdisk',
|
||||
]
|
||||
self._check_driver_properties("pxe_ipmitool", expected)
|
||||
|
||||
def test_driver_properties_pxe_ipminative(self):
|
||||
expected = ['ipmi_address', 'ipmi_password', 'ipmi_username',
|
||||
'pxe_deploy_kernel', 'pxe_deploy_ramdisk',
|
||||
'deploy_kernel', 'deploy_ramdisk',
|
||||
'ipmi_terminal_port']
|
||||
self._check_driver_properties("pxe_ipminative", expected)
|
||||
|
||||
def test_driver_properties_pxe_ssh(self):
|
||||
expected = ['pxe_deploy_kernel', 'pxe_deploy_ramdisk',
|
||||
'deploy_kernel', 'deploy_ramdisk',
|
||||
'ssh_address', 'ssh_username', 'ssh_virt_type',
|
||||
'ssh_key_contents', 'ssh_key_filename',
|
||||
'ssh_password', 'ssh_port']
|
||||
@ -2828,13 +2832,15 @@ class ManagerTestProperties(tests_db_base.DbTestCase):
|
||||
|
||||
def test_driver_properties_pxe_seamicro(self):
|
||||
expected = ['pxe_deploy_kernel', 'pxe_deploy_ramdisk',
|
||||
'seamicro_api_endpoint', 'seamicro_password',
|
||||
'seamicro_server_id', 'seamicro_username',
|
||||
'seamicro_api_version', 'seamicro_terminal_port']
|
||||
'deploy_kernel', 'deploy_ramdisk',
|
||||
'seamicro_api_endpoint', 'seamicro_password',
|
||||
'seamicro_server_id', 'seamicro_username',
|
||||
'seamicro_api_version', 'seamicro_terminal_port']
|
||||
self._check_driver_properties("pxe_seamicro", expected)
|
||||
|
||||
def test_driver_properties_pxe_snmp(self):
|
||||
expected = ['pxe_deploy_kernel', 'pxe_deploy_ramdisk',
|
||||
'deploy_kernel', 'deploy_ramdisk',
|
||||
'snmp_driver', 'snmp_address', 'snmp_port', 'snmp_version',
|
||||
'snmp_community', 'snmp_security', 'snmp_outlet']
|
||||
self._check_driver_properties("pxe_snmp", expected)
|
||||
|
@ -64,8 +64,8 @@ def get_test_ssh_info(auth_type='password'):
|
||||
|
||||
def get_test_pxe_driver_info():
|
||||
return {
|
||||
"pxe_deploy_kernel": "glance://deploy_kernel_uuid",
|
||||
"pxe_deploy_ramdisk": "glance://deploy_ramdisk_uuid",
|
||||
"deploy_kernel": "glance://deploy_kernel_uuid",
|
||||
"deploy_ramdisk": "glance://deploy_ramdisk_uuid",
|
||||
}
|
||||
|
||||
|
||||
|
@ -70,7 +70,7 @@ class PXEValidateParametersTestCase(db_base.DbTestCase):
|
||||
def test__parse_driver_info_missing_deploy_kernel(self):
|
||||
# make sure error is raised when info is missing
|
||||
info = dict(DRV_INFO_DICT)
|
||||
del info['pxe_deploy_kernel']
|
||||
del info['deploy_kernel']
|
||||
node = obj_utils.create_test_node(self.context, driver_info=info)
|
||||
self.assertRaises(exception.MissingParameterValue,
|
||||
pxe._parse_driver_info,
|
||||
@ -79,7 +79,7 @@ class PXEValidateParametersTestCase(db_base.DbTestCase):
|
||||
def test__parse_driver_info_missing_deploy_ramdisk(self):
|
||||
# make sure error is raised when info is missing
|
||||
info = dict(DRV_INFO_DICT)
|
||||
del info['pxe_deploy_ramdisk']
|
||||
del info['deploy_ramdisk']
|
||||
node = obj_utils.create_test_node(self.context, driver_info=info)
|
||||
self.assertRaises(exception.MissingParameterValue,
|
||||
pxe._parse_driver_info,
|
||||
@ -94,6 +94,17 @@ class PXEValidateParametersTestCase(db_base.DbTestCase):
|
||||
self.assertIsNotNone(info.get('deploy_ramdisk'))
|
||||
self.assertIsNotNone(info.get('deploy_kernel'))
|
||||
|
||||
def test__parse_driver_info_backwards_compat(self):
|
||||
old_drv_info = {}
|
||||
old_drv_info['pxe_deploy_kernel'] = DRV_INFO_DICT['deploy_kernel']
|
||||
old_drv_info['pxe_deploy_ramdisk'] = DRV_INFO_DICT['deploy_ramdisk']
|
||||
node = obj_utils.create_test_node(self.context,
|
||||
driver='fake_pxe',
|
||||
driver_info=old_drv_info)
|
||||
info = pxe._parse_driver_info(node)
|
||||
self.assertIsNotNone(info.get('deploy_ramdisk'))
|
||||
self.assertIsNotNone(info.get('deploy_kernel'))
|
||||
|
||||
|
||||
class PXEPrivateMethodsTestCase(db_base.DbTestCase):
|
||||
|
||||
@ -123,12 +134,12 @@ class PXEPrivateMethodsTestCase(db_base.DbTestCase):
|
||||
self.node.uuid,
|
||||
'kernel')),
|
||||
'deploy_ramdisk':
|
||||
(DRV_INFO_DICT['pxe_deploy_ramdisk'],
|
||||
(DRV_INFO_DICT['deploy_ramdisk'],
|
||||
os.path.join(CONF.pxe.tftp_root,
|
||||
self.node.uuid,
|
||||
'deploy_ramdisk')),
|
||||
'deploy_kernel':
|
||||
(DRV_INFO_DICT['pxe_deploy_kernel'],
|
||||
(DRV_INFO_DICT['deploy_kernel'],
|
||||
os.path.join(CONF.pxe.tftp_root,
|
||||
self.node.uuid,
|
||||
'deploy_kernel'))}
|
||||
|
Loading…
x
Reference in New Issue
Block a user