The below script was used on Nexus 9000v NX-API which can be enabled with ‘feature nxapi’
I’m using the same topology from the VXLAN post:
#!/usr/bin/python import requests import json def updateDescriptions( server ): session = requests.session() session.auth = ("admin","admin") # Creating the payload to send "show cdp neighbor detail" to NX-API payload = { "ins_api" : { "version" : "1.0", "type" : "cli_show", "sid" : "1", "chunk" : "0", "input" : "show cdp nei detail", "output_format" : "json" } } try: response = session.post("http://" + server + "/ins",data=json.dumps(payload)) # Loading the CDP neighbors into a list data = json.loads(response.text)["ins_api"]["outputs"]["output"]["body"]["TABLE_cdp_neighbor_detail_info"]["ROW_cdp_neighbor_detail_info"] except requests.exceptions.Timeout: print server + " has timed out" except requests.exceptions.RequestException: print server + " connection failed" # Looping through the cdp neighbor list for key in data: my_interface = key["intf_id"] neighbor_name = key["device_id"] neighbor_ip = key["v4addr"] # Creating the payload to push the cdp neighbor info to the interface description config_payload = { "ins_api" : { "version" : "1.0", "type" : "cli_conf", "sid" : "1", "chunk" : "0", "input" : "interface %s ; description %s (%s)" % (my_interface,neighbor_name,neighbor_ip), "output_format" : "json" } } try: push = session.post("http://" + server + "/ins",data=json.dumps(config_payload)) except requests.exceptions.Timeout: print server + " has timed out" except requests.exceptions.RequestException: print server + " connection failed" servers = ["192.168.255.1","192.168.255.2","192.168.255.3","192.168.255.4"] for ip in servers: updateDescriptions(ip)
Verify
# Before # LEAF-1 ------------------------------------------------------------------------------- Port Type Speed Description ------------------------------------------------------------------------------- Eth1/1 eth 10G -- Eth1/2 eth 10G -- # After # LEAF-1 ------------------------------------------------------------------------------- Port Type Speed Description ------------------------------------------------------------------------------- Eth1/1 eth 10G SPINE-1(9S7VTM2OG4Z) (192.168.0.13) Eth1/2 eth 10G SPINE-2(9U7PYVIGKC3) (192.168.0.21)
Be First to Comment