summaryrefslogtreecommitdiffstats
path: root/docs/labs/lab03-configlet-management/get_applied_netelements.py
diff options
context:
space:
mode:
Diffstat (limited to 'docs/labs/lab03-configlet-management/get_applied_netelements.py')
-rw-r--r--docs/labs/lab03-configlet-management/get_applied_netelements.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/docs/labs/lab03-configlet-management/get_applied_netelements.py b/docs/labs/lab03-configlet-management/get_applied_netelements.py
new file mode 100644
index 0000000..71e020e
--- /dev/null
+++ b/docs/labs/lab03-configlet-management/get_applied_netelements.py
@@ -0,0 +1,36 @@
+# 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'])