White Papers

37 Implementation of the DMTF Redfish API on Dell EMC PowerEdge Servers
print "\n- WARNING, checking new firmware version installed for updated
device\n"
req =
requests.get('https://%s/redfish/v1/UpdateService/FirmwareInventory/%s' %
(idrac_ip, new_FW_version), auth=(idrac_username, idrac_password), verify=False)
#print req
statusCode = req.status_code
data = req.json()
if dup_version == data[u'Version']:
print "\n- PASS, New installed FW version is: %s" % data[u'Version']
else:
print "\n- FAIL, New installed FW incorrect, error is: %s" % data
sys.exit()
# Check the job status for host reboot needed
def check_job_status_host_reboot():
# Loop get command to check the job status of completed, completed with
errors or failed
start_time=datetime.now()
time.sleep(15)
while True:
req = requests.get('https://%s/redfish/v1/TaskService/Tasks/%s' %
(idrac_ip, job_id), auth=(idrac_username, idrac_password), verify=False)
statusCode = req.status_code
data = req.json()
message_string=data[u"Messages"]
current_time=(datetime.now()-start_time)
if statusCode == 202 or statusCode == 200:
print "\n- Query job ID command passed\n"
time.sleep(10)
else:
print "Query job ID command failed, error code is: %s" % statusCode
sys.exit()
if "failed" in data[u"Messages"] or "completed with errors" in
data[u"Messages"]:
print "- FAIL: Job failed, current message is: %s" %
data[u"Messages"]
sys.exit()
elif data[u"TaskState"] == "Completed":
print "\n- Job ID = "+data[u"Id"]
print "- Name = "+data[u"Name"]
try:
print "- Message = "+message_string[0][u"Message"]
except:
print data[u"Messages"][0][u"Message"]
print "- JobStatus = "+data[u"TaskState"]