In this worked example, we will produce the same CSV file output as in the first PowerShell worked example.
...
Code Block |
---|
|
import requests
r = requests.get('http://vm-mike-2012b/api/v1/devices',auth=('admin','password'))
max = r.headers['X-fetch-count']
data = r.json()
count = len(data) |
By default the REST API "/api/v1/devices" page will return 200 devices at a time. We can increase or decrease this using the "fetch_size" parameter. The variable max contains the total number of devices. If this is more than 200 we would need to fetch a second batch - see other worked examples in this series for more details on that. In this example we will print at most 200. data holds the RestAPI data converted into a Python data structure, count is the number of devices returned.
...
We then print off the hostname, ram and cpu info seperated by commas. Unlike in the PowerShell example linked above - we simply send the output to the screen/standard output rather than to a file
Completed Code
Code Block |
---|
|
#
# RestAPI duplicate the PowerShell example in Python
#
import requests
# Set this to your own host name/login/password)
r = requests.get('http://vm-mike-2012b/api/v1/devices',auth=('admin','password'))
max = r.headers['X-fetch-count']
data = r.json()
count = len(data)
i = 0
print ('Host,RAM,CPU Type')
while (i < count):
row = data[i]
if ( 'host_name' in row ):
hostname = row['host_name']
else:
hostname = '(no hostname)'
url2 = row['self']
r2 = requests.get(url2,auth=('admin','password'))
device = r2.json()
if ('total_memory_mb' in device):
ram = device['total_memory_mb']
else:
ram = '(unknown ram)'
if ('cpu' in device):
cpu = device['cpu'][0]['cpu_model']
else:
cpu = '(unknown cpu)'
# remove commas from the cpu string
cpu = cpu.replace(',','')
print (hostname,',',ram,',',cpu,sep='')
i+=1 |
Related articles
Filter by label (Content by label) |
---|
showLabels | false |
---|
max | 5 |
---|
spaces | com.atlassian.confluence.content.render.xhtml.model.resource.identifiers.SpaceResourceIdentifier@1fb5c7 |
---|
showSpace | false |
---|
sort | modified |
---|
reverse | true |
---|
type | page |
---|
cql | label = "restapi" and type = "page" and space = "CSKB" |
---|
labels | RestAPI |
---|
|
...