36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
# Copyright (c) 2023 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
|
|
import argparse
|
|
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")
|
|
|
|
parser = argparse.ArgumentParser(
|
|
description='Get the list of devices and containers a configlet is attached to')
|
|
parser.add_argument('-c', '--configlet', required=True, help='The name of the configlet')
|
|
args = parser.parse_args()
|
|
|
|
configlet_name = args.configlet
|
|
devices = clnt.api.get_applied_devices(configlet_name)
|
|
|
|
containers = clnt.api.get_applied_containers(configlet_name)
|
|
print(f"Total number of devices {configlet_name} is attached to: {devices['total']}\n")
|
|
print(f"Total number of containers {configlet_name} is attached to: {containers['total']}\n")
|
|
col1 = "Device FQDN/hostname"
|
|
col2 = "IP Address"
|
|
print(f"{col1:<40}{col2:<40}")
|
|
print("="*80)
|
|
for device in devices['data']:
|
|
print(f"{device['hostName']:<40}{device['ipAddress']}")
|
|
|
|
print("\nList of containers:\n")
|
|
for container in containers['data']:
|
|
print(container['containerName'])
|