mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-09 00:58:16 -06:00
9627 available_vlans
This commit is contained in:
parent
8fd80d786c
commit
9bc2b8ebf8
@ -11,6 +11,11 @@ def move_min_max(apps, schema_editor):
|
|||||||
for group in VLANGroup.objects.all():
|
for group in VLANGroup.objects.all():
|
||||||
if group.min_vid or group.max_vid:
|
if group.min_vid or group.max_vid:
|
||||||
group.vlan_id_ranges = [NumericRange(group.min_vid, 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()
|
group.save()
|
||||||
|
|
||||||
|
|
||||||
|
@ -90,12 +90,12 @@ def add_available_ipaddresses(prefix, ipaddress_list, is_pool=False):
|
|||||||
return output
|
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
|
Create fake records for all gaps between used VLANs
|
||||||
"""
|
"""
|
||||||
min_vid = vlan_group.min_vid if vlan_group else VLAN_VID_MIN
|
min_vid = int(vlan_range.lower) if vlan_range else VLAN_VID_MIN
|
||||||
max_vid = vlan_group.max_vid if vlan_group else VLAN_VID_MAX
|
max_vid = int(vlan_range.upper) if vlan_range else VLAN_VID_MAX
|
||||||
|
|
||||||
if not vlans:
|
if not vlans:
|
||||||
return [{
|
return [{
|
||||||
@ -128,6 +128,20 @@ def add_available_vlans(vlans, vlan_group=None):
|
|||||||
'available': max_vid - prev_vid,
|
'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 = list(vlans) + new_vlans
|
||||||
vlans.sort(key=lambda v: v.vid if type(v) is VLAN else v['vid'])
|
vlans.sort(key=lambda v: v.vid if type(v) is VLAN else v['vid'])
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user