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:
parent
1ffdea8e43
commit
c479f90669
7 changed files with 128 additions and 11 deletions
|
@ -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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue