summaryrefslogtreecommitdiff
path: root/ironic/tests
diff options
context:
space:
mode:
authorDmitry Tantsur <dtantsur@protonmail.com>2020-01-21 13:02:12 +0100
committerDmitry Tantsur <dtantsur@protonmail.com>2020-01-21 16:30:34 +0100
commit9050098e3245b1c31403b25117517d4dc53cacea (patch)
tree957d0ade1d0e5d15dc91bbca45a98ecba031000e /ironic/tests
parent443e0b10934f435b5504fcf7b32daeaf0f8ee23b (diff)
downloadironic-9050098e3245b1c31403b25117517d4dc53cacea.tar.gz
Follow up to root device hints in instance_info
Follow-up to commit 42dc9787e52670bb1e1baa36f08703dd802804f4: * Refactor root device checking code to be in one place and extend the error message. * Extend unit tests to cover the actual override. * Update documentation. Change-Id: I1d73f2233c766ff52268e242b8071dec12b2daca
Diffstat (limited to 'ironic/tests')
-rw-r--r--ironic/tests/unit/drivers/modules/ansible/test_deploy.py16
-rw-r--r--ironic/tests/unit/drivers/modules/test_agent.py1
-rw-r--r--ironic/tests/unit/drivers/modules/test_iscsi_deploy.py1
3 files changed, 18 insertions, 0 deletions
diff --git a/ironic/tests/unit/drivers/modules/ansible/test_deploy.py b/ironic/tests/unit/drivers/modules/ansible/test_deploy.py
index 981f673b1..8787848ff 100644
--- a/ironic/tests/unit/drivers/modules/ansible/test_deploy.py
+++ b/ironic/tests/unit/drivers/modules/ansible/test_deploy.py
@@ -369,6 +369,22 @@ class TestAnsibleMethods(AnsibleDeployTestCaseBase):
self.assertEqual(
expected, ansible_deploy._parse_root_device_hints(task.node))
+ def test__parse_root_device_hints_override(self):
+ hints = {"wwn": "fake wwn", "size": "12345", "rotational": True,
+ "serial": "HELLO"}
+ expected = {"wwn": "fake wwn", "size": 12345, "rotational": True,
+ "serial": "hello"}
+ props = self.node.properties
+ props['root_device'] = {'size': 'no idea'}
+ self.node.properties = props
+ iinfo = self.node.instance_info
+ iinfo['root_device'] = hints
+ self.node.instance_info = iinfo
+ self.node.save()
+ with task_manager.acquire(self.context, self.node.uuid) as task:
+ self.assertEqual(
+ expected, ansible_deploy._parse_root_device_hints(task.node))
+
def test__parse_root_device_hints_fail_advanced(self):
hints = {"wwn": "s!= fake wwn",
"size": ">= 12345",
diff --git a/ironic/tests/unit/drivers/modules/test_agent.py b/ironic/tests/unit/drivers/modules/test_agent.py
index 03deafcc7..7ec76c9d0 100644
--- a/ironic/tests/unit/drivers/modules/test_agent.py
+++ b/ironic/tests/unit/drivers/modules/test_agent.py
@@ -281,6 +281,7 @@ class TestAgentDeploy(db_base.DbTestCase):
self, pxe_boot_validate_mock, show_mock, validate_http_mock):
with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task:
+ task.node.properties['root_device'] = {'size': 42}
task.node.instance_info['root_device'] = {'size': 'not-int'}
self.assertRaises(exception.InvalidParameterValue,
task.driver.deploy.validate, task)
diff --git a/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py b/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py
index 9d2b42609..a5fee72a5 100644
--- a/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py
+++ b/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py
@@ -579,6 +579,7 @@ class IscsiDeployMethodsTestCase(db_base.DbTestCase):
mock_get_url.return_value = 'http://spam.ham/baremetal'
with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task:
+ task.node.properties['root_device'] = {'size': 42}
task.node.instance_info['root_device'] = {'size': 'not-int'}
self.assertRaises(exception.InvalidParameterValue,
iscsi_deploy.validate, task)