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/backup_configletsV2.py | |
parent | Initial commit. (diff) | |
download | cvprac-47553c43d71b7b1144f912ab9679f5b60e858fa2.tar.xz cvprac-47553c43d71b7b1144f912ab9679f5b60e858fa2.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 '')
-rw-r--r-- | docs/labs/lab03-configlet-management/backup_configletsV2.py | 48 |
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']) |