Merge "Fix iPXE boot interface with ipxe_enabled=False"
This commit is contained in:
commit
5bb519c4af
|
@ -649,7 +649,7 @@ def get_instance_image_info(task, ipxe_enabled=False):
|
|||
return image_info
|
||||
|
||||
|
||||
def get_image_info(node, mode='deploy'):
|
||||
def get_image_info(node, mode='deploy', ipxe_enabled=False):
|
||||
"""Generate the paths for TFTP files for deploy or rescue images.
|
||||
|
||||
This method generates the paths for the deploy (or rescue) kernel and
|
||||
|
@ -659,6 +659,8 @@ def get_image_info(node, mode='deploy'):
|
|||
:param mode: Label indicating a deploy or rescue operation being
|
||||
carried out on the node. Supported values are 'deploy' and 'rescue'.
|
||||
Defaults to 'deploy', indicating deploy operation is being carried out.
|
||||
:param ipxe_enabled: A default False boolean value to tell the method
|
||||
if the caller is using iPXE.
|
||||
:returns: a dictionary whose keys are the names of the images
|
||||
(deploy_kernel, deploy_ramdisk, or rescue_kernel, rescue_ramdisk) and
|
||||
values are the absolute paths of them.
|
||||
|
@ -668,7 +670,7 @@ def get_image_info(node, mode='deploy'):
|
|||
d_info = parse_driver_info(node, mode=mode)
|
||||
|
||||
return get_kernel_ramdisk_info(
|
||||
node.uuid, d_info, mode=mode)
|
||||
node.uuid, d_info, mode=mode, ipxe_enabled=ipxe_enabled)
|
||||
|
||||
|
||||
def build_deploy_pxe_options(task, pxe_info, mode='deploy',
|
||||
|
|
|
@ -147,7 +147,8 @@ class iPXEBoot(pxe_base.PXEBaseMixin, base.BootInterface):
|
|||
provider = dhcp_factory.DHCPFactory()
|
||||
provider.update_dhcp(task, dhcp_opts)
|
||||
|
||||
pxe_info = pxe_utils.get_image_info(node, mode=mode)
|
||||
pxe_info = pxe_utils.get_image_info(node, mode=mode,
|
||||
ipxe_enabled=True)
|
||||
|
||||
# NODE: Try to validate and fetch instance images only
|
||||
# if we are in DEPLOYING state.
|
||||
|
|
|
@ -1114,6 +1114,20 @@ class PXEInterfacesTestCase(db_base.DbTestCase):
|
|||
image_info = pxe_utils.get_image_info(self.node)
|
||||
self.assertEqual(expected_info, image_info)
|
||||
|
||||
def test__get_deploy_image_info_ipxe(self):
|
||||
expected_info = {'deploy_ramdisk':
|
||||
(DRV_INFO_DICT['deploy_ramdisk'],
|
||||
os.path.join(CONF.deploy.http_root,
|
||||
self.node.uuid,
|
||||
'deploy_ramdisk')),
|
||||
'deploy_kernel':
|
||||
(DRV_INFO_DICT['deploy_kernel'],
|
||||
os.path.join(CONF.deploy.http_root,
|
||||
self.node.uuid,
|
||||
'deploy_kernel'))}
|
||||
image_info = pxe_utils.get_image_info(self.node, ipxe_enabled=True)
|
||||
self.assertEqual(expected_info, image_info)
|
||||
|
||||
def test__get_deploy_image_info_missing_deploy_kernel(self):
|
||||
del self.node.driver_info['deploy_kernel']
|
||||
self.assertRaises(exception.MissingParameterValue,
|
||||
|
|
|
@ -260,7 +260,8 @@ class iPXEBootTestCase(db_base.DbTestCase):
|
|||
dhcp_opts = pxe_utils.dhcp_options_for_instance(
|
||||
task, ipxe_enabled=True)
|
||||
task.driver.boot.prepare_ramdisk(task, {'foo': 'bar'})
|
||||
mock_deploy_img_info.assert_called_once_with(task.node, mode=mode)
|
||||
mock_deploy_img_info.assert_called_once_with(task.node, mode=mode,
|
||||
ipxe_enabled=True)
|
||||
provider_mock.update_dhcp.assert_called_once_with(task, dhcp_opts)
|
||||
if self.node.provision_state == states.DEPLOYING:
|
||||
get_boot_mode_mock.assert_called_once_with(task)
|
||||
|
|
Loading…
Reference in New Issue