summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ironic/common/pxe_utils.py6
-rw-r--r--ironic/drivers/modules/ipxe.py3
-rw-r--r--ironic/tests/unit/common/test_pxe_utils.py14
-rw-r--r--ironic/tests/unit/drivers/modules/test_ipxe.py3
4 files changed, 22 insertions, 4 deletions
diff --git a/ironic/common/pxe_utils.py b/ironic/common/pxe_utils.py
index 0a0ff400c..3ac328e61 100644
--- a/ironic/common/pxe_utils.py
+++ b/ironic/common/pxe_utils.py
@@ -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',
diff --git a/ironic/drivers/modules/ipxe.py b/ironic/drivers/modules/ipxe.py
index 08e448be8..9dca81d73 100644
--- a/ironic/drivers/modules/ipxe.py
+++ b/ironic/drivers/modules/ipxe.py
@@ -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.
diff --git a/ironic/tests/unit/common/test_pxe_utils.py b/ironic/tests/unit/common/test_pxe_utils.py
index f0eebb21d..6f1372ee0 100644
--- a/ironic/tests/unit/common/test_pxe_utils.py
+++ b/ironic/tests/unit/common/test_pxe_utils.py
@@ -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,
diff --git a/ironic/tests/unit/drivers/modules/test_ipxe.py b/ironic/tests/unit/drivers/modules/test_ipxe.py
index 56c35952c..c351b9a12 100644
--- a/ironic/tests/unit/drivers/modules/test_ipxe.py
+++ b/ironic/tests/unit/drivers/modules/test_ipxe.py
@@ -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)