Aquí les muestro y explico como extraer información de la API Assurance del Cisco DNA Center como pasos principales los siguientes:
- definimos el body y el header de la consulta, lo principal es que consultamos por los últimos 5 minutos.
- Nos autenticamos con el DNA Center a traves de la función de autenticacion
- Realizamos el request para obtener la información
- Y al final la información la transformamos en un dataframe de Pandas.
#!/usr/bin/python3
import requests
import json
import pandas as pd
from pandas.io.json import json_normalize
from requests.auth import HTTPBasicAuth
import time
from datetime import datetime
headers = {
'content-type': "application/json",
'x-auth-token': ""
}
### definimos rango de tiempo inicio(atras) y fin(ahora)
### en hora unix y en milisegundos
ahora=int(time.time()*1000)
atras= ahora - (5*60*1000)
### Este es el cuerpo de la consulta donde se filtra por fecha
### y por tipo
body='{"startTime":'+str(atras)+',"endTime":'+str(ahora)+',"limit":1000,"offset":1,"filters":{"kpi":[{"kpiAttr":"LAST_UPDATED","condition":[{"name":"decr","value":[]}]}],"scoreType":[],"devType":["WIRELESS"],"typeIdList":["__global__"]}}'
### Funcion login DNA
def dnac_login(host, username, password):
url = "https://{}/api/system/v1/auth/token".format(host)
response = requests.request("POST", url, auth=HTTPBasicAuth(username, password), verify=False)
return response.json()["Token"]
## Me registro en el DNA y obtengo token
token = dnac_login("Ip_DNA:port", "user", "password")
### Consulta la API /api/assurance/v1/host
### utilizamos el token obtenido y el body creado al principio
url="https://Ip_DNA:port/api/assurance/v1/host"
headers["x-auth-token"] = token
### hacemos la consulta
response = requests.post(url, headers=headers, data=body, verify=False)
### Transformo la respuesta en un dataframe
response.json()['response']
df = json_normalize(response.json()['response'])
No hay comentarios.:
Publicar un comentario