|
|
@@ -68,24 +68,40 @@ def add_available_ipaddresses(prefix, ipaddress_list, is_pool=False):
|
|
|
return output
|
|
|
|
|
|
|
|
|
-def add_available_vlans(vlan_group, vlans):
|
|
|
+def add_available_vlans(vlans, vlan_group=None):
|
|
|
"""
|
|
|
Create fake records for all gaps between used VLANs
|
|
|
"""
|
|
|
if not vlans:
|
|
|
- return [{'vid': VLAN_VID_MIN, 'available': VLAN_VID_MAX - VLAN_VID_MIN + 1}]
|
|
|
+ return [{
|
|
|
+ 'vid': VLAN_VID_MIN,
|
|
|
+ 'vlan_group': vlan_group,
|
|
|
+ 'available': VLAN_VID_MAX - VLAN_VID_MIN + 1
|
|
|
+ }]
|
|
|
|
|
|
prev_vid = VLAN_VID_MAX
|
|
|
new_vlans = []
|
|
|
for vlan in vlans:
|
|
|
if vlan.vid - prev_vid > 1:
|
|
|
- new_vlans.append({'vid': prev_vid + 1, 'available': vlan.vid - prev_vid - 1})
|
|
|
+ new_vlans.append({
|
|
|
+ 'vid': prev_vid + 1,
|
|
|
+ 'vlan_group': vlan_group,
|
|
|
+ 'available': vlan.vid - prev_vid - 1,
|
|
|
+ })
|
|
|
prev_vid = vlan.vid
|
|
|
|
|
|
if vlans[0].vid > VLAN_VID_MIN:
|
|
|
- new_vlans.append({'vid': VLAN_VID_MIN, 'available': vlans[0].vid - VLAN_VID_MIN})
|
|
|
+ new_vlans.append({
|
|
|
+ 'vid': VLAN_VID_MIN,
|
|
|
+ 'vlan_group': vlan_group,
|
|
|
+ 'available': vlans[0].vid - VLAN_VID_MIN,
|
|
|
+ })
|
|
|
if prev_vid < VLAN_VID_MAX:
|
|
|
- new_vlans.append({'vid': prev_vid + 1, 'available': VLAN_VID_MAX - prev_vid})
|
|
|
+ new_vlans.append({
|
|
|
+ 'vid': prev_vid + 1,
|
|
|
+ 'vlan_group': vlan_group,
|
|
|
+ 'available': VLAN_VID_MAX - prev_vid,
|
|
|
+ })
|
|
|
|
|
|
vlans = list(vlans) + new_vlans
|
|
|
vlans.sort(key=lambda v: v.vid if type(v) == VLAN else v['vid'])
|