- Add GraphQL query mlag_intent.gql: queries InfraMlagPeerConfig by
device name, returning local IP, peer address, heartbeat peer IP,
MLAG domain (domain-id, virtual-mac, heartbeat VRF, dual-primary
detection settings, peer/iBGP VLANs, peer devices), local interface
SVI name, and peer-link LAG name
- Add Jinja2 template mlag_yang.j2: renders a JSON object targeting
Arista-native YANG path /arista-mlag-augments:mlag/config; returns
empty array [] for devices with no MLAG config (spines); all optional
relationship accesses guarded with 'is defined and is not none' checks
- Update .infrahub.yml: register mlag_intent query and mlag_yang_transform
- Add unit test fixtures for leaf1 (full MLAG config) and spine1 (empty
response → []) following jinja2-transform-unit-render format
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Damien
merged commit cf7da535ed into main2026-03-01 11:06:56 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Closes #22. Implements Infrahub Jinja2 transforms for MLAG configuration, generating Arista-native YANG-compatible JSON payloads from Infrahub intent data.
infrahub/transforms/queries/mlag_intent.gqlInfraMlagPeerConfigby$device_name, including MLAG domain attributes, peer/iBGP VLANs, local interface SVI, and peer-link LAGinfrahub/transforms/templates/mlag_yang.j2/arista-mlag-augments:mlag/config; returns[]for devices with no MLAG (spines)infrahub/transforms/tests/mlag_yang/test.ymlleaf1andspine1infrahub/transforms/tests/mlag_yang/leaf1/leafs-1-2)infrahub/transforms/tests/mlag_yang/spine1/[]for spine1.infrahub.ymlmlag_intentquery andmlag_yang_transformjinja2 transformOutput shape (leaf1)
Validation
Design notes
is defined and is not noneguards[](empty array) — consistent with the "no data → empty collection" pattern used in vxlan_yang for devices without VTEP🤖 Generated with Claude Code