I am using idrac_redfish_storage_controller module for assigning a dedicated hotspare. However, it intermittently fails with a 404 not found error stating that the job ID that it has just created doesn’t exist. The task does create and complete but at this point the play has already failed.
Having looked at little more closely, it looks like the module uses Task Monitor URI returned in the header response to poll the job for successful completion or failure. Once a task gets completed (success or failure), it is removed from the Task collection i.e. from /redfish/v1/TaskService/Tasks. So, there could be timing issues where a GET might fail if a task has been removed from the collection. Instead, it would be better to use /redfish/v1/Managers/iDRAC.Embedded.1/Jobs
Bug Description
I am using
idrac_redfish_storage_controller
module for assigning a dedicated hotspare. However, it intermittently fails with a 404 not found error stating that the job ID that it has just created doesn’t exist. The task does create and complete but at this point the play has already failed.Having looked at little more closely, it looks like the module uses Task Monitor URI returned in the header response to poll the job for successful completion or failure. Once a task gets completed (success or failure), it is removed from the Task collection i.e. from
/redfish/v1/TaskService/Tasks
. So, there could be timing issues where a GET might fail if a task has been removed from the collection. Instead, it would be better to use/redfish/v1/Managers/iDRAC.Embedded.1/Jobs
Component or Module Name
idrac_redfish_storage_controller
Ansible Version
Ansible 2.11
Python Version
Python 3.9
iDRAC/OME/OME-M version
iDRAC 5.10.00.00
Operating System
Ubuntu 20.04
Playbook Used
Logs
HTTPS 404 Error
Steps to Reproduce
Run the playbook multiple times
Expected Behavior
Should complete successfully
Actual Behavior
Fails with HTTPS 404 Error
Screenshots
No response
Additional Information
No response