diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-05-11 09:04:53 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-05-13 09:34:21 +0000 |
commit | 47553c43d71b7b1144f912ab9679f5b60e858fa2 (patch) | |
tree | 08378beaeeea8f9bb2686d3037c7b6f5062bb948 /docs/labs/lab03-configlet-management/config_search.py | |
parent | Initial commit. (diff) | |
download | cvprac-upstream/1.3.1+dfsg.tar.xz cvprac-upstream/1.3.1+dfsg.zip |
Adding upstream version 1.3.1+dfsg.upstream/1.3.1+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'docs/labs/lab03-configlet-management/config_search.py')
-rw-r--r-- | docs/labs/lab03-configlet-management/config_search.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/docs/labs/lab03-configlet-management/config_search.py b/docs/labs/lab03-configlet-management/config_search.py new file mode 100644 index 0000000..4c3ad27 --- /dev/null +++ b/docs/labs/lab03-configlet-management/config_search.py @@ -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() + |