Skip to content

Commit 0ed2bb5

Browse files
Test Userstevefulme1
authored andcommitted
feat: add Catalyst Center dynamic inventory plugin
Add cisco.catalystcenter.catalystcenter inventory plugin that queries Catalyst Center for managed devices and builds Ansible inventory with site hierarchy groups, device role/family groups, tag groups, and full Constructable support (keyed_groups, compose, conditional groups). Key features: - Uses catalystcentersdk (same SDK as the collection modules) - Pagination for large deployments (500+ devices) - Caching via standard Ansible cache framework - Auto-sets ansible_network_os for IOS-XE and NX-OS (FQCNs) - AP filtering (excluded by default) - Environment variable fallback (CATALYSTCENTER_*) Based on jandiorio/ansible-dnac-inventory-plugin, modernized with BaseInventoryPlugin + Constructable + Cacheable pattern. Includes 29 unit tests and integration test target.
1 parent 5e9599d commit 0ed2bb5

8 files changed

Lines changed: 1295 additions & 0 deletions

File tree

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
minor_changes:
3+
- "Added ``cisco.catalystcenter.catalystcenter`` dynamic inventory plugin for building Ansible inventory from Catalyst Center managed devices."
4+
- "Inventory plugin supports site hierarchy grouping, device role and family groups, tag-based groups, and full Constructable features (keyed_groups, compose, groups)."
5+
- "Inventory plugin supports caching via the standard Ansible cache framework."
6+
- "Inventory plugin auto-sets ``ansible_network_os`` and ``ansible_connection`` for IOS-XE and NX-OS devices using FQCNs."

meta/runtime.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
---
22
requires_ansible: '>=2.16.0'
3+
plugin_routing:
4+
inventory:
5+
catalystcenter:
6+
redirect: cisco.catalystcenter.catalystcenter

plugins/inventory/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)