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/lab02-inventory-operations/get_running_configs_by_time.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/lab02-inventory-operations/get_running_configs_by_time.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/docs/labs/lab02-inventory-operations/get_running_configs_by_time.py b/docs/labs/lab02-inventory-operations/get_running_configs_by_time.py new file mode 100644 index 0000000..7bbc294 --- /dev/null +++ b/docs/labs/lab02-inventory-operations/get_running_configs_by_time.py @@ -0,0 +1,34 @@ +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() + +clnt = CvpClient() +clnt.connect(nodes=['cvp1'], username="username",password="password") + +ts = "2021-11-19T15:04:05.0Z" # rfc3339 time +uri = "/api/v3/services/compliancecheck.Compliance/GetConfig" + +# Fetch the inventory +inventory = clnt.api.get_inventory() + +# Iterate through all devices and get the running-config at the specified time for each device +for device in inventory: + sn = device['serialNumber'] + data = {"request":{ + "device_id": sn, + "timestamp": ts, + "type":"RUNNING_CONFIG" + } + } + try: + resultRunningConfig = clnt.post(uri, data=data) + for idx in resultRunningConfig: + if 'config' in idx: + result = idx['config'] + break + with open(device['hostname']+'.cfg','w') as f: + f.write(result) + except Exception as e: + print("Not able to get configuration for device {} - exception {}".format(device['fqdn'], e)) |