diff options
author | Dmitry Tantsur <dtantsur@protonmail.com> | 2021-03-22 15:32:15 +0100 |
---|---|---|
committer | Dmitry Tantsur <dtantsur@protonmail.com> | 2021-03-23 16:14:38 +0100 |
commit | d55929fc7d673290115a7cbab41d139176155507 (patch) | |
tree | 896a9b6f8e7ea054907661a4f246b05d730842c2 /ironic/tests/unit/drivers/modules/test_image_utils.py | |
parent | 8762fb1eb3838f0045e95a2eadcfcc524489ad11 (diff) | |
download | ironic-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.py | 66 |
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) |