From 47553c43d71b7b1144f912ab9679f5b60e858fa2 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 11 May 2023 11:04:53 +0200 Subject: Adding upstream version 1.3.1+dfsg. Signed-off-by: Daniel Baumann --- .../lab03-configlet-management/get_configlets.py | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 docs/labs/lab03-configlet-management/get_configlets.py (limited to 'docs/labs/lab03-configlet-management/get_configlets.py') diff --git a/docs/labs/lab03-configlet-management/get_configlets.py b/docs/labs/lab03-configlet-management/get_configlets.py new file mode 100644 index 0000000..fc3dc2d --- /dev/null +++ b/docs/labs/lab03-configlet-management/get_configlets.py @@ -0,0 +1,53 @@ +# 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. +# +# Get list of configlets in parallel + +from cvprac.cvp_client import CvpClient +import ssl +from concurrent.futures import ThreadPoolExecutor +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") + +import time +from functools import wraps + +def get_list_of_configlets(configlets): + """ + Create a thread pool and download specified urls + """ + + futures_list = [] + results = [] + + with ThreadPoolExecutor(max_workers=40) as executor: + for configlet in configlets: + futures = executor.submit(clnt.api.get_configlet_by_name, configlet) + futures_list.append(futures) + + for future in futures_list: + try: + result = future.result(timeout=60) + results.append(result) + except Exception: + results.append(None) + return results + +if __name__ == "__main__": + # Example with pre-defined list + configlets = ["tp-avd_tp-avd-leaf1","tp-avd_tp-avd-leaf2","tp-avd_tp-avd-leaf3","tp-avd_tp-avd-leaf4"] + + # Example with loading list of configlets from a file + # with open("configlet_list.txt") as f: + # configlets = f.read().splitlines() + + results = get_list_of_configlets(configlets) + for result in results: + print(result) -- cgit v1.2.3