1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Fixes #8682: Limit available VLANs by group min/max VIDs

This commit is contained in:
jeremystretch
2022-02-22 11:39:05 -05:00
parent d9696ae34c
commit 7872460162
2 changed files with 12 additions and 8 deletions

View File

@ -86,14 +86,17 @@ def add_available_vlans(vlans, vlan_group=None):
"""
Create fake records for all gaps between used VLANs
"""
min_vid = vlan_group.min_vid if vlan_group else VLAN_VID_MIN
max_vid = vlan_group.max_vid if vlan_group else VLAN_VID_MAX
if not vlans:
return [{
'vid': VLAN_VID_MIN,
'vid': min_vid,
'vlan_group': vlan_group,
'available': VLAN_VID_MAX - VLAN_VID_MIN + 1
'available': max_vid - min_vid + 1
}]
prev_vid = VLAN_VID_MAX
prev_vid = max_vid
new_vlans = []
for vlan in vlans:
if vlan.vid - prev_vid > 1:
@ -104,17 +107,17 @@ def add_available_vlans(vlans, vlan_group=None):
})
prev_vid = vlan.vid
if vlans[0].vid > VLAN_VID_MIN:
if vlans[0].vid > min_vid:
new_vlans.append({
'vid': VLAN_VID_MIN,
'vid': min_vid,
'vlan_group': vlan_group,
'available': vlans[0].vid - VLAN_VID_MIN,
'available': vlans[0].vid - min_vid,
})
if prev_vid < VLAN_VID_MAX:
if prev_vid < max_vid:
new_vlans.append({
'vid': prev_vid + 1,
'vlan_group': vlan_group,
'available': VLAN_VID_MAX - prev_vid,
'available': max_vid - prev_vid,
})
vlans = list(vlans) + new_vlans