9627 available_vlans

This commit is contained in:
Arthur Hanson 2024-06-21 10:16:26 -07:00
parent 8fd80d786c
commit 9bc2b8ebf8
2 changed files with 22 additions and 3 deletions

View File

@ -11,6 +11,11 @@ def move_min_max(apps, schema_editor):
for group in VLANGroup.objects.all():
if group.min_vid or group.max_vid:
group.vlan_id_ranges = [NumericRange(group.min_vid, group.max_vid)]
group._total_vlan_ids = 0
for vlan_range in group.vlan_id_ranges:
group._total_vlan_ids += int(vlan_range.upper) - int(vlan_range.lower) + 1
group.save()

View File

@ -90,12 +90,12 @@ def add_available_ipaddresses(prefix, ipaddress_list, is_pool=False):
return output
def add_available_vlans(vlans, vlan_group=None):
def available_vlans_from_range(vlans, vlan_group, vlan_range):
"""
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
min_vid = int(vlan_range.lower) if vlan_range else VLAN_VID_MIN
max_vid = int(vlan_range.upper) if vlan_range else VLAN_VID_MAX
if not vlans:
return [{
@ -128,6 +128,20 @@ def add_available_vlans(vlans, vlan_group=None):
'available': max_vid - prev_vid,
})
return new_vlans
def add_available_vlans(vlans, vlan_group=None):
"""
Create fake records for all gaps between used VLANs
"""
new_vlans = []
if vlan_group and vlan_group.vlan_id_ranges:
for vlan_range in vlan_group.vlan_id_ranges:
new_vlans.extend(available_vlans_from_range(vlans, vlan_group, vlan_range))
else:
new_vlans = available_vlans_from_range(vlans, vlan_group, vlan_range)
vlans = list(vlans) + new_vlans
vlans.sort(key=lambda v: v.vid if type(v) is VLAN else v['vid'])