diff --git a/ironic/drivers/modules/agent_base_vendor.py b/ironic/drivers/modules/agent_base_vendor.py index f09aa4aff0..5f4478b9f0 100644 --- a/ironic/drivers/modules/agent_base_vendor.py +++ b/ironic/drivers/modules/agent_base_vendor.py @@ -318,7 +318,8 @@ class BaseAgentVendor(base.VendorInterface): # processing so the command hasn't started yet return - last_step = last_command['command_result'].get('clean_step') + last_result = last_command.get('command_result') or {} + last_step = last_result.get('clean_step') if last_command['command_status'] == 'RUNNING': return elif (last_command['command_status'] == 'SUCCEEDED' and diff --git a/ironic/tests/drivers/test_agent_base_vendor.py b/ironic/tests/drivers/test_agent_base_vendor.py index e672df85b7..851e124d59 100644 --- a/ironic/tests/drivers/test_agent_base_vendor.py +++ b/ironic/tests/drivers/test_agent_base_vendor.py @@ -513,7 +513,7 @@ class TestBaseAgentVendor(db_base.DbTestCase): status_mock.return_value = [{ 'command_status': 'RUNNING', 'command_name': 'execute_clean_step', - 'command_result': {} + 'command_result': None }] with task_manager.acquire(self.context, self.node['uuid'], shared=False) as task: