Enforce that when a bridgedomain has an address (ie a BVI), that it must also have an LCP

This commit is contained in:
Pim van Pelt
2022-03-13 19:32:30 +00:00
parent 8825984d49
commit 0d8a28cadd
3 changed files with 23 additions and 10 deletions

View File

@ -34,11 +34,6 @@ interfaces:
GigabitEthernet4/0/1: GigabitEthernet4/0/1:
mtu: 9000 mtu: 9000
GigabitEthernet4/0/2:
mtu: 9000
GigabitEthernet4/0/3:
mtu: 9000
BondEthernet0: BondEthernet0:
mtu: 3000 mtu: 3000
sub-interfaces: sub-interfaces:
@ -61,8 +56,3 @@ bridgedomains:
mtu: 9000 mtu: 9000
interfaces: [ GigabitEthernet4/0/0, GigabitEthernet4/0/1 ] interfaces: [ GigabitEthernet4/0/0, GigabitEthernet4/0/1 ]
lcp: "bvi11" lcp: "bvi11"
bd13:
description: "Bridge Domain 13, address but no LCP"
mtu: 9000
interfaces: [ GigabitEthernet4/0/2, GigabitEthernet4/0/3 ]
addresses: [ 192.0.2.9/29, 2001:db8:1::1/64 ]

View File

@ -0,0 +1,19 @@
test:
description: "A bridgedomain with a BVI address must have an LCP"
errors:
expected:
- "bridgedomain .* has an address but no LCP"
count: 1
---
interfaces:
GigabitEthernet1/0/0:
mtu: 3000
GigabitEthernet1/0/1:
mtu: 3000
bridgedomains:
bd13:
description: "Bridge Domain 13, address but no LCP"
mtu: 3000
interfaces: [ GigabitEthernet1/0/0, GigabitEthernet1/0/0 ]
addresses: [ 192.0.2.9/29, 2001:db8:1::1/64 ]

View File

@ -32,6 +32,10 @@ def validate_bridgedomains(yaml):
if 'mtu' in iface: if 'mtu' in iface:
bd_mtu = iface['mtu'] bd_mtu = iface['mtu']
if 'addresses' in iface and not 'lcp' in iface:
msgs.append("bridgedomain %s has an address but no LCP" % ifname)
result = False
if 'interfaces' in iface: if 'interfaces' in iface:
for member in iface['interfaces']: for member in iface['interfaces']:
member_iface = interface.get_by_name(yaml, member) member_iface = interface.get_by_name(yaml, member)