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:
@ -152,6 +152,7 @@ Where it is desired to limit the range of available VLANs within a group, users
|
|||||||
* [#8661](https://github.com/netbox-community/netbox/issues/8661) - Fix ValueError exception when trying to connect a cable
|
* [#8661](https://github.com/netbox-community/netbox/issues/8661) - Fix ValueError exception when trying to connect a cable
|
||||||
* [#8670](https://github.com/netbox-community/netbox/issues/8670) - Fix filtering device components by installed module
|
* [#8670](https://github.com/netbox-community/netbox/issues/8670) - Fix filtering device components by installed module
|
||||||
* [#8671](https://github.com/netbox-community/netbox/issues/8671) - Fix AttributeError when viewing console/power/interface connection lists
|
* [#8671](https://github.com/netbox-community/netbox/issues/8671) - Fix AttributeError when viewing console/power/interface connection lists
|
||||||
|
* [#8682](https://github.com/netbox-community/netbox/issues/8682) - Limit available VLANs by group min/max VIDs
|
||||||
|
|
||||||
### Other Changes
|
### Other Changes
|
||||||
|
|
||||||
|
@ -86,14 +86,17 @@ def add_available_vlans(vlans, vlan_group=None):
|
|||||||
"""
|
"""
|
||||||
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
|
||||||
|
max_vid = vlan_group.max_vid if vlan_group else VLAN_VID_MAX
|
||||||
|
|
||||||
if not vlans:
|
if not vlans:
|
||||||
return [{
|
return [{
|
||||||
'vid': VLAN_VID_MIN,
|
'vid': min_vid,
|
||||||
'vlan_group': vlan_group,
|
'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 = []
|
new_vlans = []
|
||||||
for vlan in vlans:
|
for vlan in vlans:
|
||||||
if vlan.vid - prev_vid > 1:
|
if vlan.vid - prev_vid > 1:
|
||||||
@ -104,17 +107,17 @@ def add_available_vlans(vlans, vlan_group=None):
|
|||||||
})
|
})
|
||||||
prev_vid = vlan.vid
|
prev_vid = vlan.vid
|
||||||
|
|
||||||
if vlans[0].vid > VLAN_VID_MIN:
|
if vlans[0].vid > min_vid:
|
||||||
new_vlans.append({
|
new_vlans.append({
|
||||||
'vid': VLAN_VID_MIN,
|
'vid': min_vid,
|
||||||
'vlan_group': vlan_group,
|
'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({
|
new_vlans.append({
|
||||||
'vid': prev_vid + 1,
|
'vid': prev_vid + 1,
|
||||||
'vlan_group': vlan_group,
|
'vlan_group': vlan_group,
|
||||||
'available': VLAN_VID_MAX - prev_vid,
|
'available': max_vid - prev_vid,
|
||||||
})
|
})
|
||||||
|
|
||||||
vlans = list(vlans) + new_vlans
|
vlans = list(vlans) + new_vlans
|
||||||
|
Reference in New Issue
Block a user