- 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>
54 lines
1.1 KiB
GraphQL
54 lines
1.1 KiB
GraphQL
query MlagIntent($device_name: String!) {
|
|
InfraMlagPeerConfig(device__name__value: $device_name) {
|
|
edges {
|
|
node {
|
|
local_interface_ip { value }
|
|
peer_address { value }
|
|
heartbeat_peer_ip { value }
|
|
device {
|
|
node {
|
|
name { value }
|
|
}
|
|
}
|
|
mlag_domain {
|
|
node {
|
|
domain_id { value }
|
|
virtual_mac { value }
|
|
heartbeat_vrf { value }
|
|
dual_primary_detection { value }
|
|
dual_primary_delay { value }
|
|
dual_primary_action { value }
|
|
devices {
|
|
edges {
|
|
node {
|
|
name { value }
|
|
}
|
|
}
|
|
}
|
|
peer_vlan {
|
|
node {
|
|
vlan_id { value }
|
|
}
|
|
}
|
|
ibgp_vlan {
|
|
node {
|
|
vlan_id { value }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
local_interface {
|
|
node {
|
|
name { value }
|
|
}
|
|
}
|
|
peer_link {
|
|
node {
|
|
name { value }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|