White Papers

19 Dell OpenManage Power Center 4.0 REST API Reference Guide
Sample Code:
# developed using Python 3.5
import base64
import datetime
import json
import ssl
import urllib.request
from pprint import pprint
bseurl = 'https://localhost:8643/powercenter/api/report/'
encoded_auth = base64.b64encode(b'user:pwd:0', None)
day = datetime.timedelta(days=1)
reportStartDate = (datetime.datetime.utcnow().date() - day).strftime('%Y-%m-%d') + 'T00:00:00.000Z'
reportEndDate = datetime.datetime.utcnow().date().strftime('%Y-%m-%d') + 'T00:00:00.000Z'
def getdata(reqobj):
reqobj.add_header('Authorization', encoded_auth)
reqobj.add_header('Content-Type', 'application/json')
try:
cntx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
with urllib.request.urlopen(reqobj, context=cntx) as f:
result = json.loads(f.read().decode('utf-8'))
return result
except Exception as e:
print('Error:', str(e))
quit()
if __name__ == "__main__":
url = bseurl + 'powerHoarders'
post_data = str.encode('{"requestObj": '
'{"description": "Devices which use the most amount of power",'
'"startDateTime": "' + reportStartDate + '",'
'"endDateTime": "' + reportEndDate + '",'
'"aggPeriodType": -1,'
'"aggPeriodValue": -1,'
'"maxResults": -1,'
'"entityList": [],'
'"entityGroupList": [],'
'"percentPower": 0,'
'"severity": [],'
'"selectAllDevices": false,'
'"selectAllGroups": false,'
'"attributes": ['
'{"fieldName": "Name","key": "name","mandatory": 1,"needed": 1,"required": 1},'
'{"fieldName": "Rank","key": "rank","mandatory": 0,"needed": 1,"required": 1},'
'{"fieldName": "Hostname","key": "hostname","mandatory": 1,"needed": 1,"required": 1},'
'{"fieldName": "Device Type","key": "deviceType","mandatory": 1,"needed": 1,"required": 1},'
'{"fieldName": "Model","key": "model","mandatory": 1,"needed": 1,"required": 1},'
'{"fieldName": "Service Tag","key": "serviceTag","mandatory": 1,"needed": 1,"required": 1},'
'{"fieldName": "Location","key": "location","mandatory": 1,"needed": 1,"required": 1},'
'{"fieldName": "Average Power","key": "avgPower","mandatory": 1,"needed": 1,"required": 1},'
'{"fieldName": "Average Temperature","key": "avgTemp","mandatory": 0,"needed": 1,"required": 1},'
'{"fieldName": "Minimum Temperature","key": "minTemp","mandatory": 0,"needed": 1,"required": 1},'
'{"fieldName": "Maximum Temperature","key": "maxTemp","mandatory": 0,"needed": 1,"required": 1},'
'{"fieldName": "EPR Status","key": "eprState","mandatory": 0,"needed": 1,"required": 1},'
'{"fieldName": "Connection State","key": "connectionState","mandatory": 0,"needed": 1,"required": 1},'
'{"fieldName": "Health State","key": "healthState","mandatory": 0,"needed": 1,"required": 1},'
'{"fieldName": "Time Stamp","key": "timeStamp","mandatory": 0,"needed": 1,"required": 1},'
'{"fieldName": "Device Ip","key": "deviceIp","mandatory": 0,"needed": 1,"required": 1},'
'{"fieldName": "Memory Power Consumption","key": "memPowerConsumption","mandatory": 0,"needed": 1,"required": 1},'
'{"fieldName": "CPU Power Consumption","key": "cpuPowerConsumption","mandatory": 0,"needed": 1,"required": 1},'
'{"fieldName": "CPU Utilization","key": "cpuUtilization","mandatory": 0,"needed": 1,"required": 1},'
'{"fieldName": "Memory Bandwidth Utilization","key": "memUtilization","mandatory": 0,"needed": 1,"required": 1},'
'{"fieldName": "I/O Utilization","key": "ioUtilization","mandatory": 0,"needed": 1,"required": 1}]}}')
reportstatus = getdata(urllib.request.Request(url, data=post_data))
statusUrl = ""
if reportstatus['errorObj'] is None:
statusUrl = reportstatus['responseObj']['link']
else:
print( reportstatus['errorObj'])
quit()
reportresult = getdata(urllib.request.Request(statusUrl))
while reportresult['responseObj']['message'] != 'Completed':
reportresult = getdata(urllib.request.Request(statusUrl))
if reportresult['responseObj']['message'] == 'Error':
print('Error while creating the report')
quit()
resultUrl = reportresult['responseObj']['link']
resultUrl += '&currentPage=0&rowCountPerPage=1000'
reportdata = getdata(urllib.request.Request(resultUrl))
pprint(reportdata)
quit()