White Papers

14 RESTful Server Configuration with iDRAC RESTful API
print "\n- %s successfully created for ExportSystemConfiguration method\n" % (job_id)
response_output=response.__dict__
job_id=response_output["headers"]["Location"]
job_id=re.search("JID_.+",job_id).group()
start_time=datetime.now()
while True:
req = requests.get('https://%s/redfish/v1/TaskService/Tasks/%s' % (idrac_ip, job_id), auth=(id
rac_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"
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 "Job failed, current message is: %s" % data[u"Messages"]
sys.exit()
elif data[u"TaskState"] == "Completed":
print "\nJob 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"]
print "\n%s completed in: %s" % (job_id, str(current_time)[0:7])
sys.exit()
elif data[u"TaskState"] == "Completed with Errors" or data[u"TaskState"] == "Failed":
print "\nJob 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"]
print "\n%s completed in: %s" % (job_id, str(current_time)[0:7])
sys.exit()
else:
print "- Job not marked completed, current status is: %s" % data[u"TaskState"]
print "- Message: %s\n" % message_string[0][u"Message"]
time.sleep(1)
continue
data = req.json()
print "Job ID = "+data[u"Id"]
print "Name = "+data[u"Name"]
print "Message = "+data[u"Messages"]
print "JobStatus = "+data[u"TaskState"]