Adding upstream version 1.3.1+dfsg.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
455a3d9fdb
commit
d2e39936a0
95 changed files with 10747 additions and 0 deletions
54
docs/labs/lab03-configlet-management/config_search.py
Normal file
54
docs/labs/lab03-configlet-management/config_search.py
Normal file
|
@ -0,0 +1,54 @@
|
|||
# Copyright (c) 2022 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")
|
||||
|
||||
def main():
|
||||
|
||||
print('Retrieving configlets ...')
|
||||
|
||||
inventory = clnt.api.get_inventory()
|
||||
data = clnt.api.get_configlets_and_mappers()['data']
|
||||
print(data)
|
||||
|
||||
print('Number of configlets:', len(data['configlets']))
|
||||
|
||||
searchAgain = True
|
||||
while searchAgain:
|
||||
try:
|
||||
search = input( "\nEnter Config Line: " )
|
||||
print(f"\n\n\'{search}\' has been found in following configlets:\n\n")
|
||||
print(f"{'Hostname':<30}{'Serial number':<50}{'MAC address':<30}{'Configlets':<40}")
|
||||
print("=" * 150)
|
||||
for i in inventory:
|
||||
device = i['hostname']
|
||||
device_sn = i['serialNumber']
|
||||
device_mac = i['systemMacAddress']
|
||||
configlet_list = []
|
||||
for c in data['configlets']:
|
||||
for g in data['generatedConfigletMappers']:
|
||||
if device_mac == g['netElementId'] and c['key'] == g['configletBuilderId'] and search in c['config']:
|
||||
configlet_list.append(c['name'])
|
||||
for k in data['configletMappers']:
|
||||
if device_mac == k['objectId'] and c['key'] == k['configletId'] and search in c['config']:
|
||||
configlet_list.append(c['name'])
|
||||
configlet_list_final = ",".join(configlet_list)
|
||||
if len(configlet_list) > 0:
|
||||
print(f"{device:<30}{device_sn:<50}{device_mac:<30}{configlet_list_final:<30}")
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print('\nExiting... \n')
|
||||
return
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue