summaryrefslogtreecommitdiffstats
path: root/docs/labs/lab02-inventory-operations/get_running_configs.py
blob: 5478f2e145f88868b3258dd48f7506cb369140e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Copyright (c) 2021 Arista Networks, Inc.
# Use of this source code is governed by the Apache License 2.0
# that can be found in the COPYING file.

from cvprac.cvp_client import CvpClient
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()

# Create connection to CloudVision
clnt = CvpClient()
clnt.connect(nodes=['cvp1'], username="username",password="password")

# Get the full inventory
inventory = clnt.api.get_inventory()

# Create a list of MAC addresses
device_macs = []
for i in inventory:
    device_macs.append(i['systemMacAddress'])

# Create a dictionary with MAC to running-config mapping
running_configs = {}
for i in device_macs:
    running_configs[i] = clnt.api.get_device_configuration(i)

# Write the running-configs of each device using the hostname as the filename
for i in inventory:
    with open(i['fqdn']+'.cfg', 'w') as f:
        f.write(running_configs[i['systemMacAddress']])