summaryrefslogtreecommitdiffstats
path: root/docs/labs/lab03-configlet-management/get_configlets.py
diff options
context:
space:
mode:
Diffstat (limited to 'docs/labs/lab03-configlet-management/get_configlets.py')
-rw-r--r--docs/labs/lab03-configlet-management/get_configlets.py53
1 files changed, 53 insertions, 0 deletions
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)