summaryrefslogtreecommitdiff
path: root/ironic/tests/unit/drivers
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-03-13 13:53:15 +0000
committerGerrit Code Review <review@openstack.org>2020-03-13 13:53:16 +0000
commit8e9c47b154c43274aa82f8b1b8d2444b519744ea (patch)
tree26fa8cda562868f67ca70a5a860870aff2d05aa1 /ironic/tests/unit/drivers
parent0b30506e6bc9b8674ea4e6eaca6fb46db2880dd3 (diff)
parentfbf92e61267cc10868c1147f7397755fd6f7a0b9 (diff)
downloadironic-8e9c47b154c43274aa82f8b1b8d2444b519744ea.tar.gz
Merge "Make image_checksum optional if other checksum is present"
Diffstat (limited to 'ironic/tests/unit/drivers')
-rw-r--r--ironic/tests/unit/drivers/modules/test_agent.py69
-rw-r--r--ironic/tests/unit/drivers/modules/test_deploy_utils.py4
2 files changed, 71 insertions, 2 deletions
diff --git a/ironic/tests/unit/drivers/modules/test_agent.py b/ironic/tests/unit/drivers/modules/test_agent.py
index aa3a1091a..7a8575e74 100644
--- a/ironic/tests/unit/drivers/modules/test_agent.py
+++ b/ironic/tests/unit/drivers/modules/test_agent.py
@@ -257,6 +257,75 @@ class TestAgentDeploy(db_base.DbTestCase):
pxe_boot_validate_mock.assert_called_once_with(
task.driver.boot, task)
+ @mock.patch.object(pxe.PXEBoot, 'validate', autospec=True)
+ def test_validate_nonglance_image_no_checksum_os_algo(
+ self, pxe_boot_validate_mock):
+ i_info = self.node.instance_info
+ i_info['image_source'] = 'http://image-ref'
+ i_info['image_os_hash_value'] = 'az'
+ del i_info['image_checksum']
+ self.node.instance_info = i_info
+ self.node.save()
+
+ with task_manager.acquire(
+ self.context, self.node.uuid, shared=False) as task:
+ self.assertRaises(exception.MissingParameterValue,
+ self.driver.validate, task)
+ pxe_boot_validate_mock.assert_called_once_with(
+ task.driver.boot, task)
+
+ @mock.patch.object(pxe.PXEBoot, 'validate', autospec=True)
+ def test_validate_nonglance_image_no_os_image_hash(
+ self, pxe_boot_validate_mock, autospec=True):
+ i_info = self.node.instance_info
+ i_info['image_source'] = 'http://image-ref'
+ i_info['image_os_hash_algo'] = 'magicalgo'
+ self.node.instance_info = i_info
+ self.node.save()
+
+ with task_manager.acquire(
+ self.context, self.node.uuid, shared=False) as task:
+ self.assertRaises(exception.MissingParameterValue,
+ self.driver.validate, task)
+ pxe_boot_validate_mock.assert_called_once_with(
+ task.driver.boot, task)
+
+ @mock.patch.object(pxe.PXEBoot, 'validate', autospec=True)
+ def test_validate_nonglance_image_no_os_algo(
+ self, pxe_boot_validate_mock):
+ i_info = self.node.instance_info
+ i_info['image_source'] = 'http://image-ref'
+ i_info['image_os_hash_value'] = 'az'
+ self.node.instance_info = i_info
+ self.node.save()
+
+ with task_manager.acquire(
+ self.context, self.node.uuid, shared=False) as task:
+ self.assertRaises(exception.MissingParameterValue,
+ self.driver.validate, task)
+ pxe_boot_validate_mock.assert_called_once_with(
+ task.driver.boot, task)
+
+ @mock.patch.object(images, 'image_show', autospec=True)
+ @mock.patch.object(pxe.PXEBoot, 'validate', autospec=True)
+ def test_validate_nonglance_image_no_os_checksum(
+ self, pxe_boot_validate_mock, show_mock):
+ i_info = self.node.instance_info
+ i_info['image_source'] = 'http://image-ref'
+ del i_info['image_checksum']
+ i_info['image_os_hash_algo'] = 'whacky-algo-1'
+ i_info['image_os_hash_value'] = '1234567890'
+ self.node.instance_info = i_info
+ self.node.save()
+
+ with task_manager.acquire(self.context, self.node.uuid,
+ shared=False) as task:
+ self.driver.validate(task)
+ pxe_boot_validate_mock.assert_called_once_with(
+ task.driver.boot, task)
+ show_mock.assert_called_once_with(self.context,
+ 'http://image-ref')
+
@mock.patch.object(agent, 'validate_http_provisioning_configuration',
autospec=True)
@mock.patch.object(images, 'image_show', autospec=True)
diff --git a/ironic/tests/unit/drivers/modules/test_deploy_utils.py b/ironic/tests/unit/drivers/modules/test_deploy_utils.py
index 96b45936b..3d5ee4e1c 100644
--- a/ironic/tests/unit/drivers/modules/test_deploy_utils.py
+++ b/ironic/tests/unit/drivers/modules/test_deploy_utils.py
@@ -2543,7 +2543,7 @@ class TestBuildInstanceInfoForHttpProvisioning(db_base.DbTestCase):
image_path, instance_info = self._test_build_instance_info(
image_info=self.image_info, expect_raw=True)
- self.assertEqual('md5-not-supported', instance_info['image_checksum'])
+ self.assertIsNone(instance_info['image_checksum'])
self.assertEqual(instance_info['image_disk_format'], 'raw')
calls = [mock.call(image_path, algorithm='sha512')]
self.checksum_mock.assert_has_calls(calls)
@@ -2554,7 +2554,7 @@ class TestBuildInstanceInfoForHttpProvisioning(db_base.DbTestCase):
image_path, instance_info = self._test_build_instance_info(
image_info=self.image_info, expect_raw=True)
- self.assertEqual('md5-not-supported', instance_info['image_checksum'])
+ self.assertIsNone(instance_info['image_checksum'])
self.assertEqual(instance_info['image_disk_format'], 'raw')
calls = [mock.call(image_path, algorithm='sha256')]
self.checksum_mock.assert_has_calls(calls)