access: move switch config templates back to this repo

Let’s keep it simple. Also editing templates in NetBox is a pain.
This commit is contained in:
Timotej Lazar 2024-04-08 10:48:10 +02:00
parent 1ffdea8e43
commit c479f90669
7 changed files with 128 additions and 11 deletions

View file

@ -7,11 +7,26 @@ class FilterModule(object):
def filters(self):
return {
'compact_numlist': self.compact_numlist,
'iface_real': self.iface_real,
'iface_peer': self.iface_peer,
'iface_vlans': self.iface_vlans
}
def compact_numlist(self, nums, sort=True, delimiter=',', range_delimiter='-'):
'''Transform [1,2,3,5,7,8,9] into "1-3,5,7-9"'''
if sort:
nums = sorted(nums)
i = 0
spans = []
while i < len(nums):
j = i + 1
while j < len(nums) and nums[j]-nums[i] == j-i:
j += 1
spans += [f'{nums[i]}{range_delimiter}{nums[j-1]}' if j > i+1 else f'{nums[i]}']
i = j
return delimiter.join(spans)
def iface_real(self, interfaces):
'''Return only non-virtual interfaces'''
for iface in interfaces: