<< Click to Display Table of Contents >> Raynet One > 1.1 > User Guide > Technical overview > API Use case: device deletion with REST API |
A common task of IT landscape maintenance is the deletion of devices. Old devices need to be cleaned up. Sold devices need to be removed. The IT administration can automate the device removal from the device registries as part of their device scripts.
•Python 3+
•Requests library (https://docs.python-requests.org/en/latest/)
•API key
•frontend URL
import requests
APIKEY = "PUT API KEY HERE"
FRONTEND = "PUT FRONTEND URL HERE"
HEADERS = { "ApiKey": APIKEY }
def is_trial_device_name(S):
return S.startswith("trial-")
def obtain_paged(EP):
P = {}
P["count"] = 1000
items = []
while True:
result = requests.get(EP, params=P, headers=HEADERS)
if result.ok == False:
break
objs = result.json()
if objs == None:
return
if len(objs) == 0:
return
items.extend(objs)
lastobj = objs[len(objs)-1]
P["LastId"] = lastobj["id"]
return items
def main():
devs = obtain_paged(FRONTEND + "/api/v1/Devices")
if devs == None:
print( "failed to fetch devices from the frontend (" + FRONTEND + ")" )
return
print( "garbage collecting devices..." )
has_collected_device = False
for D in devs:
if "name" in D and is_trial_device_name(D["name"]):
params = {
"deviceId": D["id"]
}
R = requests.delete(FRONTEND + "/api/v1/Operations/device-id-delete", headers=HEADERS, params=params)
if R.ok:
print( "removed device " + D["name"] )
has_collected_device = True
else:
print( "failed to remove device " + D["name"] + " (" + str(R.status_code) + ")" )
if has_collected_device == False:
print( "didn't remove any device" )