Advertisement
Guest User

Untitled

a guest
Dec 4th, 2018
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.98 KB | None | 0 0
  1. DNAC = "sandboxdnac.cisco.com"
  2. DNAC_USER = "devnetuser"
  3. DNAC_PASSWORD = "Cisco123!"
  4. DNAC_PORT = 443
  5.  
  6. import requests;
  7. from requests.auth import HTTPBasicAuth;
  8.  
  9. def get_auth_token(controller_ip=DNAC, username=DNAC_USER, password=DNAC_PASSWORD):
  10.     """ Authenticates with controller and returns a token to be used in subsequent API invocations
  11.    """
  12.  
  13.     login_url = "https://{0}:{1}/api/system/v1/auth/token".format(controller_ip, DNAC_PORT)
  14.     result = requests.post(url=login_url, auth=HTTPBasicAuth(DNAC_USER, DNAC_PASSWORD), verify=False)
  15.     result.raise_for_status()
  16.  
  17.     token = result.json()["Token"]
  18.     return {
  19.         "controller_ip": controller_ip,
  20.         "token": token
  21.     }
  22. def create_url(path, controller_ip=DNAC):
  23.     """ Helper function to create a DNAC API endpoint URL
  24.    """
  25.  
  26.     return "https://%s:%s/api/v1/%s" % (controller_ip, DNAC_PORT, path)
  27. def get_url(url):
  28.  
  29.     url = create_url(path=url)
  30.     print(url)
  31.     token = get_auth_token()
  32.     headers = {'X-auth-token' : token['token']}
  33.     try:
  34.         response = requests.get(url, headers=headers, verify=False)
  35.     except requests.exceptions.RequestException as cerror:
  36.         print("Error processing request", cerror)
  37.         sys.exit(1)
  38.  
  39.     return response.json()
  40. def list_network_devices():
  41.     return get_url("network-device")
  42. if __name__ == "__main__":
  43.     response = list_network_devices()
  44.     print("{0:42}{1:17}{2:12}{3:18}{4:12}{5:16}{6:15}".
  45.         format("hostname","mgmt IP","serial",
  46.         "platformId","SW Version","role","Uptime"))
  47.  
  48.     for device in response['response']:
  49.         uptime = "N/A" if device['upTime'] is None else device['upTime']
  50.         print("{0:42}{1:17}{2:12}{3:18}{4:12}{5:16}{6:15}".
  51.             format(device['hostname'],
  52.                     device['managementIpAddress'],
  53.                     device['serialNumber'],
  54.                     device['platformId'],
  55.                     device['softwareVersion'],
  56.                     device['role'],uptime))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement