summaryrefslogtreecommitdiff
path: root/ironic
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-07-30 10:06:29 +0000
committerGerrit Code Review <review@openstack.org>2020-07-30 10:06:29 +0000
commit08617ee716e29a79fcc584c3197456a0b6411b5a (patch)
tree35bc619a0f695fa510c227d8f7a47163959e9cf0 /ironic
parentf39c664a7d91debf1f4c09428d1f604162a99c1c (diff)
parent89275bd50322e87de3d9283c85ac57022ed64fbe (diff)
downloadironic-08617ee716e29a79fcc584c3197456a0b6411b5a.tar.gz
Merge "AgentRAID: Account for empty results in post-configuration checks"
Diffstat (limited to 'ironic')
-rw-r--r--ironic/drivers/modules/agent.py10
-rw-r--r--ironic/tests/unit/drivers/modules/test_agent.py11
2 files changed, 16 insertions, 5 deletions
diff --git a/ironic/drivers/modules/agent.py b/ironic/drivers/modules/agent.py
index 08eaf0266..1466cb765 100644
--- a/ironic/drivers/modules/agent.py
+++ b/ironic/drivers/modules/agent.py
@@ -736,17 +736,17 @@ class AgentRAID(base.RAIDInterface):
"""
try:
if task.node.provision_state == states.DEPLOYWAIT:
- operation = "deploying"
result = command['command_result']['deploy_result']
else:
- operation = "cleaning"
result = command['command_result']['clean_result']
except KeyError:
+ result = None
+
+ if not result:
raise exception.IronicException(
_("Agent ramdisk didn't return a proper command result while "
- "%(operation)s %(node)s. It returned '%(result)s' after "
- "command execution.") % {'operation': operation,
- 'node': task.node.uuid,
+ "building RAID on %(node)s. It returned '%(result)s' after "
+ "command execution.") % {'node': task.node.uuid,
'result': command})
raid.update_raid_info(task.node, result)
diff --git a/ironic/tests/unit/drivers/modules/test_agent.py b/ironic/tests/unit/drivers/modules/test_agent.py
index 7c22a584b..7db79b066 100644
--- a/ironic/tests/unit/drivers/modules/test_agent.py
+++ b/ironic/tests/unit/drivers/modules/test_agent.py
@@ -1818,6 +1818,17 @@ class AgentRAIDTestCase(db_base.DbTestCase):
task, command)
self.assertFalse(update_raid_info_mock.called)
+ @mock.patch.object(raid, 'update_raid_info', autospec=True)
+ def test__create_configuration_final_bad_command_result2(
+ self, update_raid_info_mock):
+ command = {'command_result': {'deploy_result': None}}
+ with task_manager.acquire(self.context, self.node.uuid) as task:
+ raid_mgmt = agent.AgentRAID
+ self.assertRaises(exception.IronicException,
+ raid_mgmt._create_configuration_final,
+ task, command)
+ self.assertFalse(update_raid_info_mock.called)
+
@mock.patch.object(agent_base, 'execute_step', autospec=True)
def test_delete_configuration(self, execute_mock):
execute_mock.return_value = states.CLEANING