Adding upstream version 1.3.1+dfsg.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
455a3d9fdb
commit
d2e39936a0
95 changed files with 10747 additions and 0 deletions
57
docs/labs/lab02-inventory-operations/compliance_check.py
Normal file
57
docs/labs/lab02-inventory-operations/compliance_check.py
Normal file
|
@ -0,0 +1,57 @@
|
|||
# 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.
|
||||
|
||||
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()
|
||||
|
||||
### Compliance Code description
|
||||
compliance = {"0000":"Configuration is in sync",
|
||||
"0001": "Config is out of sync",
|
||||
"0002": "Image is out of sync",
|
||||
"0003": "Config & image out of sync",
|
||||
"0004": "Config, Image and Device time are in sync",
|
||||
"0005": "Device is not reachable",
|
||||
"0006": "The current EOS version on this device is not supported by CVP. Upgrade the device to manage.",
|
||||
"0007": "Extensions are out of sync",
|
||||
"0008": "Config, Image and Extensions are out of sync",
|
||||
"0009": "Config and Extensions are out of sync",
|
||||
"0010": "Image and Extensions are out of sync",
|
||||
"0011": "Unauthorized User",
|
||||
"0012": "Config, Image, Extension and Device time are out of sync",
|
||||
"0013": "Config, Image and Device time are out of sync",
|
||||
"0014": "Config, Extensions and Device time are out of sync",
|
||||
"0015": "Image, Extensions and Device time are out of sync",
|
||||
"0016": "Config and Device time are out of sync",
|
||||
"0017": "Image and Device time are out of sync",
|
||||
"0018": "Extensions and Device time are out of sync",
|
||||
"0019": "Device time is out of sync"
|
||||
}
|
||||
|
||||
# Create connection to CloudVision using Service account token
|
||||
with open("token.tok") as f:
|
||||
token = f.read().strip('\n')
|
||||
|
||||
clnt = CvpClient()
|
||||
clnt.connect(nodes=['cvp1'], username='',password='',api_token=token)
|
||||
|
||||
def check_devices_under_container(client, container):
|
||||
''' container is the container ID '''
|
||||
|
||||
nodeId = container['key']
|
||||
nodeName = container['name']
|
||||
api = '/ztp/getAllNetElementList.do?'
|
||||
queryParams = "nodeId={}&queryParam=&nodeName={}&startIndex=0&endIndex=0&contextQueryParam=&ignoreAdd=false&useCache=true".format(nodeId, nodeName)
|
||||
return client.get(api + queryParams)
|
||||
|
||||
|
||||
container = clnt.api.get_container_by_name('TP_LEAFS')
|
||||
|
||||
devices = (check_devices_under_container(clnt,container))
|
||||
|
||||
for device in devices['netElementList']:
|
||||
code = device['complianceCode']
|
||||
print(device['fqdn'], ' ', code,' ', compliance[code])
|
Loading…
Add table
Add a link
Reference in a new issue