White Papers

19 RESTful Server Configuration with iDRAC RESTful API
response_output=response.__dict__
job_id=response_output["headers"]["Location"]
try:
job_id=re.search("JID_.+",job_id).group()
except:
print "\n- FAIL: detailed error message: {0}".format(response.__dict__['_content'])
sys.exit()
start_time=datetime.now()
while True:
current_time=(datetime.now()-start_time)
req = requests.get('https://%s/redfish/v1/TaskService/Tasks/%s' % (idrac_ip, job_id), auth=(id
rac_username, idrac_password), verify=False)
d=req.__dict__
if "<SystemConfiguration Model" in str(d):
print "\n- Export locally successfully passed. Attributes exported:\n"
zz=re.search("<SystemConfiguration.+</SystemConfiguration>",str(d)).group()
#Below code is needed to parse the string to set up in pretty XML format
q=zz.replace("\\n"," ")
q=q.replace("<!-- ","<!--")
q=q.replace(" -->","-->")
del_attribute='<Attribute Name="SerialRedirection.1#QuitKey">^\\\\</Attribute>'
q=q.replace(del_attribute,"")
l=q.split("> ")
export_xml=[]
for i in l:
x=i+">"
export_xml.append(x)
#export_xml=re.sub(">> \n",">",export_xml)
export_xml[-1]="</SystemConfiguration>"
d=datetime.now()
filename="%s-%s-%s_%s%s%s_export.xml"% (d.year,d.month,d.day,d.hour,d.minute,d.second)
f=open(filename,"w")
for i in export_xml:
f.writelines("%s \n" % i)
f.close()
for i in export_xml:
print i
print "\n"
req = requests.get('https://%s/redfish/v1/TaskService/Tasks/%s' % (idrac_ip, job_id), auth
=(idrac_username, idrac_password), verify=False)
data = req.json()
message_string=data[u"Messages"]
print "\nJob ID = "+data[u"Id"]
print "Name = "+data[u"Name"]
print "Message = "+message_string[0][u"Message"]
print "JobStatus = "+data[u"TaskState"]
print "\n%s completed in: %s" % (job_id, str(current_time)[0:7])
print "\nExported attributes also saved in file: %s" % filename
sys.exit()
else:
pass