summaryrefslogtreecommitdiff
path: root/ironic/tests/unit/drivers/modules/test_image_utils.py
diff options
context:
space:
mode:
authorDmitry Tantsur <dtantsur@protonmail.com>2021-01-11 20:00:47 +0100
committerDmitry Tantsur <dtantsur@protonmail.com>2021-01-11 20:02:27 +0100
commitfe380bbbab9d99554ceff82404f6033215c36063 (patch)
treea8117a613cc06aec0431cd4da26570274de1b664 /ironic/tests/unit/drivers/modules/test_image_utils.py
parent6af2e2d9d1f3324d1af69554861b0af8578076c4 (diff)
downloadironic-fe380bbbab9d99554ceff82404f6033215c36063.tar.gz
Follow-up for ramdisk deploy configdrive support
1) Do not issue a warning if the boot interface supports configdrive 2) Implement missing support for Swift URLs in configdrives Change-Id: I4b06478a14ab514d785f8e3972e5afbd79f8d3b5
Diffstat (limited to 'ironic/tests/unit/drivers/modules/test_image_utils.py')
-rw-r--r--ironic/tests/unit/drivers/modules/test_image_utils.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/ironic/tests/unit/drivers/modules/test_image_utils.py b/ironic/tests/unit/drivers/modules/test_image_utils.py
index fd51d1c73..c4d817af2 100644
--- a/ironic/tests/unit/drivers/modules/test_image_utils.py
+++ b/ironic/tests/unit/drivers/modules/test_image_utils.py
@@ -304,6 +304,30 @@ class RedfishImageUtilsTestCase(db_base.DbTestCase):
result = image_utils.prepare_configdrive_image(task, encoded)
self.assertEqual(expected_url, result)
+ @mock.patch.object(images, 'fetch_into', autospec=True)
+ @mock.patch.object(image_utils, 'prepare_disk_image', autospec=True)
+ def test_prepare_configdrive_image_url(self, mock_prepare, mock_fetch):
+ content = 'https://swift/path'
+ expected_url = 'https://a.b/c.f?e=f'
+ encoded = b'H4sIAPJ8418C/0vOzytJzSsBAKkwxf4HAAAA'
+
+ def _fetch(context, image_href, image_file):
+ self.assertEqual(content, image_href)
+ image_file.write(encoded)
+
+ def _prepare(task, content, prefix):
+ with open(content, 'rb') as fp:
+ self.assertEqual(b'content', fp.read())
+ return expected_url
+
+ mock_fetch.side_effect = _fetch
+ mock_prepare.side_effect = _prepare
+
+ with task_manager.acquire(self.context, self.node.uuid,
+ shared=True) as task:
+ result = image_utils.prepare_configdrive_image(task, content)
+ self.assertEqual(expected_url, result)
+
@mock.patch.object(image_utils.ImageHandler, 'unpublish_image',
autospec=True)
def test_cleanup_iso_image(self, mock_unpublish):