summaryrefslogtreecommitdiff
path: root/ironic/tests/unit/drivers/modules/test_image_utils.py
diff options
context:
space:
mode:
authorDmitry Tantsur <dtantsur@protonmail.com>2021-03-22 15:32:15 +0100
committerDmitry Tantsur <dtantsur@protonmail.com>2021-03-23 16:14:38 +0100
commitd55929fc7d673290115a7cbab41d139176155507 (patch)
tree896a9b6f8e7ea054907661a4f246b05d730842c2 /ironic/tests/unit/drivers/modules/test_image_utils.py
parent8762fb1eb3838f0045e95a2eadcfcc524489ad11 (diff)
downloadironic-d55929fc7d673290115a7cbab41d139176155507.tar.gz
Support pre-built deploy/rescue ISO in Redfish
This change adds support to pre-built ISO images via the new driver_info parameters redfish_deploy_iso and redfish_rescue_iso, similarly to the iLO hardware type. Also removes overly eager mocking in image unit tests. Change-Id: I1366791a6c6eb34f3a43337c4199592783765912
Diffstat (limited to 'ironic/tests/unit/drivers/modules/test_image_utils.py')
-rw-r--r--ironic/tests/unit/drivers/modules/test_image_utils.py66
1 files changed, 23 insertions, 43 deletions
diff --git a/ironic/tests/unit/drivers/modules/test_image_utils.py b/ironic/tests/unit/drivers/modules/test_image_utils.py
index c0be7147b..a8305d023 100644
--- a/ironic/tests/unit/drivers/modules/test_image_utils.py
+++ b/ironic/tests/unit/drivers/modules/test_image_utils.py
@@ -529,10 +529,8 @@ class RedfishImageUtilsTestCase(db_base.DbTestCase):
actual = image_utils._find_param(param_str, param_dict)
self.assertEqual(actual, expected)
- @mock.patch.object(image_utils, '_find_param', autospec=True)
@mock.patch.object(image_utils, '_prepare_iso_image', autospec=True)
- def test_prepare_deploy_iso(self, mock__prepare_iso_image,
- find_mock):
+ def test_prepare_deploy_iso(self, mock__prepare_iso_image):
with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task:
@@ -543,29 +541,34 @@ class RedfishImageUtilsTestCase(db_base.DbTestCase):
}
task.node.driver_info.update(d_info)
- find_call_list = [
- mock.call('deploy_kernel', d_info),
- mock.call('deploy_ramdisk', d_info),
- mock.call('bootloader', d_info)
- ]
- find_mock.side_effect = [
- 'kernel', 'ramdisk', 'bootloader'
- ]
-
task.node.instance_info.update(deploy_boot_mode='uefi')
image_utils.prepare_deploy_iso(task, {}, 'deploy', d_info)
mock__prepare_iso_image.assert_called_once_with(
task, 'kernel', 'ramdisk', 'bootloader', params={},
- inject_files={})
+ inject_files={}, base_iso=None)
- find_mock.assert_has_calls(find_call_list)
+ @mock.patch.object(image_utils, '_prepare_iso_image', autospec=True)
+ def test_prepare_deploy_iso_existing_iso(self, mock__prepare_iso_image):
+ with task_manager.acquire(self.context, self.node.uuid,
+ shared=True) as task:
+
+ d_info = {
+ 'redfish_deploy_iso': 'iso',
+ }
+ task.node.driver_info.update(d_info)
+
+ task.node.instance_info.update(deploy_boot_mode='uefi')
+
+ image_utils.prepare_deploy_iso(task, {}, 'deploy', d_info)
+
+ mock__prepare_iso_image.assert_called_once_with(
+ task, None, None, None, params={},
+ inject_files={}, base_iso='iso')
- @mock.patch.object(image_utils, '_find_param', autospec=True)
@mock.patch.object(image_utils, '_prepare_iso_image', autospec=True)
- def test_prepare_deploy_iso_network_data(
- self, mock__prepare_iso_image, find_mock):
+ def test_prepare_deploy_iso_network_data(self, mock__prepare_iso_image):
with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task:
@@ -577,14 +580,6 @@ class RedfishImageUtilsTestCase(db_base.DbTestCase):
task.node.instance_info.update()
- find_call_list = [
- mock.call('deploy_kernel', d_info),
- mock.call('deploy_ramdisk', d_info),
- mock.call('bootloader', d_info)
- ]
- find_mock.side_effect = [
- 'kernel', 'ramdisk', None
- ]
network_data = {'a': ['b']}
mock_get_node_nw_data = mock.MagicMock(return_value=network_data)
@@ -602,14 +597,10 @@ class RedfishImageUtilsTestCase(db_base.DbTestCase):
mock__prepare_iso_image.assert_called_once_with(
task, 'kernel', 'ramdisk', bootloader_href=None,
- params={}, inject_files=expected_files)
-
- find_mock.assert_has_calls(find_call_list)
+ params={}, inject_files=expected_files, base_iso=None)
- @mock.patch.object(image_utils, '_find_param', autospec=True)
@mock.patch.object(image_utils, '_prepare_iso_image', autospec=True)
- def test_prepare_deploy_iso_tls(self, mock__prepare_iso_image,
- find_mock):
+ def test_prepare_deploy_iso_tls(self, mock__prepare_iso_image):
with tempfile.NamedTemporaryFile(delete=False) as tf:
temp_name = tf.name
self.addCleanup(lambda: os.unlink(temp_name))
@@ -626,15 +617,6 @@ class RedfishImageUtilsTestCase(db_base.DbTestCase):
}
task.node.driver_info.update(d_info)
- find_call_list = [
- mock.call('deploy_kernel', d_info),
- mock.call('deploy_ramdisk', d_info),
- mock.call('bootloader', d_info)
- ]
- find_mock.side_effect = [
- 'kernel', 'ramdisk', 'bootloader'
- ]
-
task.node.instance_info.update(deploy_boot_mode='uefi')
image_utils.prepare_deploy_iso(task, {}, 'deploy', d_info)
@@ -648,9 +630,7 @@ cafile = /etc/ironic-python-agent/ironic.crt
mock__prepare_iso_image.assert_called_once_with(
task, 'kernel', 'ramdisk', 'bootloader', params={},
- inject_files=expected_files)
-
- find_mock.assert_has_calls(find_call_list)
+ inject_files=expected_files, base_iso=None)
@mock.patch.object(image_utils, '_find_param', autospec=True)
@mock.patch.object(image_utils, '_prepare_iso_image', autospec=True)