diff options
author | Zuul <zuul@review.opendev.org> | 2020-07-30 10:06:29 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2020-07-30 10:06:29 +0000 |
commit | 08617ee716e29a79fcc584c3197456a0b6411b5a (patch) | |
tree | 35bc619a0f695fa510c227d8f7a47163959e9cf0 /ironic | |
parent | f39c664a7d91debf1f4c09428d1f604162a99c1c (diff) | |
parent | 89275bd50322e87de3d9283c85ac57022ed64fbe (diff) | |
download | ironic-08617ee716e29a79fcc584c3197456a0b6411b5a.tar.gz |
Merge "AgentRAID: Account for empty results in post-configuration checks"
Diffstat (limited to 'ironic')
-rw-r--r-- | ironic/drivers/modules/agent.py | 10 | ||||
-rw-r--r-- | ironic/tests/unit/drivers/modules/test_agent.py | 11 |
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 |