Commit Graph

25 Commits

Author SHA1 Message Date
528b65e4c0 Merge pull request 'feat(netbox): Add NetBox API client with v4.4 compatibility' (#22) from feat/netbox-data-model into main
Reviewed-on: #22
2026-01-09 14:26:03 +00:00
darnodo
ac763aa376 fix(netbox): adapt client for NetBox 4.4 API compatibility
- Bump pynetbox dependency to >=7.5.0
- Change get_device_asn to read ASN from device custom field instead of
  filtering ASNs by device (unsupported in NetBox 4.4)
- Remove device_name filter from get_l2vpn_terminations as L2VPN
  terminations cannot be filtered by device in NetBox 4.4
- Refactor get_vrf_interfaces to query IP addresses with VRF filter and
  extract associated interfaces (VRF filtering on interfaces unsupported)
- Add get_interface_mlag_id method to read MLAG ID from interface
  custom field
2026-01-09 10:24:57 +01:00
2f828f43d6 docs: add complete custom fields reference and API compatibility notes
- Add comprehensive custom fields table for Device, Interface, VRF, and IP Address
- Include API examples for custom field creation
- Document working vs non-working API filters for NetBox 4.4
- Add workarounds for filters that don't exist (ASN by device, L2VPN terminations by device)
- Update VRF interface assignment to show IP-based VRF membership
- Add virtual_ip custom field for anycast gateway support
2026-01-08 12:33:17 +00:00
darnodo
b1c46686d2 chore: add missing newline and update dependencies
- Fix missing newline at end of __init__.py
- Add certifi and charset-normalizer packages to uv.lock
- Update lock file with HTTP-related dependencies
2026-01-08 13:02:39 +01:00
darnodo
4799c4cbf2 feat(netbox): Add NetBox API client for fabric intent retrieval
Implements FabricNetBoxClient using pynetbox to fetch:
- Device and interface data
- BGP sessions and peer groups (plugin)
- L2VPN/EVPN VNI mappings
- VRF and route target configuration
- MLAG custom fields

Relates to #5
2026-01-08 13:02:09 +01:00
555f8436f1 docs: Add NetBox data model documentation for fabric intent
Documents how EVPN-VXLAN fabric configuration is represented in NetBox
using native models and the BGP plugin.

Includes:
- Model mapping tables (native + BGP plugin)
- IP addressing scheme
- BGP session configuration
- VXLAN/EVPN L2VPN setup
- MLAG custom fields requirements
- VRF configuration
- Data retrieval examples with pynetbox

Relates to #5
2026-01-08 07:53:37 +00:00
413d87873a Merge pull request 'feat: Add gNMI discovery CLI tools for YANG path exploration' (#21) from feat-discoverytools into main
Reviewed-on: #21
2026-01-07 12:00:05 +00:00
darnodo
2445750f23 docs: format markdown tables and update CLI command syntax
- Align columns in README.md roadmap and technology stack tables
- Update CLI example to use 'uv run fabric-orch' command prefix
- Improve overall markdown table readability
2026-01-07 12:51:14 +01:00
darnodo
97cdc161da docs(gnmi): remove async context manager references from client
Remove outdated async documentation from GNMIClient module:
- Remove async context manager from feature list
- Remove async usage example from class docstring

The client now only documents synchronous usage patterns.
2025-12-31 17:48:29 +01:00
darnodo
5b3517c355 fix: resolve import paths, remove async context managers, clean up CLI
- Change absolute imports to relative imports in gnmi module
- Remove async context manager methods (pygnmi is synchronous)
- Remove unimplemented --depth option from CLI
- Update documentation to reflect sync-only usage
2025-12-31 17:44:21 +01:00
darnodo
8e460225c2 docs: format markdown tables in yang-paths.md
Improve table readability by aligning columns with consistent
spacing and proper markdown table formatting throughout the
YANG paths reference documentation.
2025-12-31 17:18:01 +01:00
darnodo
e355cce4c8 docs: add CLI user guide for fabric-orch commands
Add comprehensive documentation for the fabric-orch CLI tool covering:
- Installation and quick start instructions
- Environment variables for gNMI authentication
- All discover subcommands (capabilities, get, set, subscribe, paths)
- YANG path syntax reference and common paths table
- Output formats and error handling guidance
2025-12-31 17:15:56 +01:00
darnodo
e041dab724 feat(build): configure project tooling and update dependencies
- Replace placeholder deps with click, pygnmi, and rich for CLI functionality
- Add fabric-orch CLI entry point via project.scripts
- Configure hatchling as build backend with wheel/sdist targets
- Add ruff linter configuration for code quality
- Add dev dependency group with ruff
- Alphabetize yang module imports
2025-12-31 09:36:00 +01:00
darnodo
3e76eba46a refactor(yang): remove unused Optional import from paths
The `Optional` type was imported from `typing` in `src/yang/paths.py`
but was not being used in the file. This change removes the unnecessary
import to clean up the code.
2025-12-26 15:59:25 +01:00
darnodo
f8ef64e9b0 docs: update installation steps and reformat markdown tables
- Update the dependency installation command in the main README to use `uv sync` instead of `pip`, reflecting the project's package manager.
- Realign markdown tables in `src/yang/README.md` to improve raw text readability and consistency.
2025-12-26 15:56:17 +01:00
ad3e93b933 Actualiser README.md 2025-12-26 14:48:56 +00:00
a796864aad Actualiser README.md 2025-12-26 14:46:19 +00:00
b864273dfb Actualiser README.md 2025-12-26 14:45:10 +00:00
0f0336296a docs: add README for yang module
Usage examples for all path classes:
- Interfaces, Loopbacks, VLANs
- BGP with AFI-SAFI
- VXLAN VNI mappings
- MLAG, EVPN (with limitations noted)
- Port-Channel
- Subscription helpers

Part of #3
2025-12-26 13:47:00 +00:00
9edf963704 feat: add yang package init
Exports all YANG path classes for easy imports.

Part of #3
2025-12-26 13:42:47 +00:00
f335d1fc33 feat: add YANG path constants module
Python module with validated gNMI YANG paths for:
- Interfaces, Loopbacks, VLANs (OpenConfig)
- BGP with neighbor and AFI-SAFI helpers (OpenConfig)
- VXLAN VNI mappings (Arista experimental)
- MLAG and EVPN config (Arista experimental)
- Port-Channel/LAG paths
- Subscription helpers for fabric monitoring

Part of #3
2025-12-26 13:42:31 +00:00
4c7634da59 docs: add YANG paths reference documentation
Comprehensive documentation of validated gNMI YANG paths for:
- Interfaces, Loopbacks, VLANs (OpenConfig)
- BGP with EVPN AFI (OpenConfig)
- VXLAN VNI mappings (Arista experimental)
- MLAG and EVPN config (Arista experimental)

Includes examples, limitations, and key learnings.

Closes partial requirement for #3
2025-12-26 13:39:58 +00:00
8a069c1e24 docs: Simplify README, link to issues for phase tracking 2025-12-20 15:50:16 +00:00
9102bc1318 docs: Add comprehensive README with architecture and project phases 2025-12-20 15:36:14 +00:00
cac41f330d Initial commit 2025-12-20 15:34:01 +00:00