summaryrefslogtreecommitdiffstats
path: root/docs/labs/lab03-configlet-management/backup_configletsV2.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-05-11 09:04:53 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-05-13 09:34:21 +0000
commit47553c43d71b7b1144f912ab9679f5b60e858fa2 (patch)
tree08378beaeeea8f9bb2686d3037c7b6f5062bb948 /docs/labs/lab03-configlet-management/backup_configletsV2.py
parentInitial commit. (diff)
downloadcvprac-a65feb76b09ace829c4c389df1bb986491d035ae.tar.xz
cvprac-a65feb76b09ace829c4c389df1bb986491d035ae.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/backup_configletsV2.py')
-rw-r--r--docs/labs/lab03-configlet-management/backup_configletsV2.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/docs/labs/lab03-configlet-management/backup_configletsV2.py b/docs/labs/lab03-configlet-management/backup_configletsV2.py
new file mode 100644
index 0000000..0247f19
--- /dev/null
+++ b/docs/labs/lab03-configlet-management/backup_configletsV2.py
@@ -0,0 +1,48 @@
+# 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 configlets and save them to individual files using multi threading
+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()
+from concurrent.futures import ThreadPoolExecutor
+from functools import wraps
+
+# Create connection to CloudVision
+clnt = CvpClient()
+clnt.connect(['cvp1'],'username', 'password')
+
+total = clnt.api.get_configlets(start=0,end=1)['total']
+
+def get_list_of_configlets():
+ """
+ Create a thread pool and download specified urls
+ """
+
+ futures_list = []
+ results = []
+
+ with ThreadPoolExecutor(max_workers=40) as executor:
+ for i in range(0,total+1,10):
+ futures = executor.submit(clnt.api.get_configlets, start=i,end=i+10)
+ futures_list.append(futures)
+
+ for future in futures_list:
+ try:
+ result = future.result(timeout=60)
+ results.append(result)
+ except Exception:
+ results.append(None)
+ print(future.result())
+ return results
+
+if __name__ == "__main__":
+
+ results = get_list_of_configlets()
+ for future in results:
+ for configlet in future['data']:
+ with open(configlet['name'],'w') as f:
+ f.write(configlet['config'])