update vlan parsers
This commit is contained in:
@@ -40,7 +40,7 @@ class BaseDevice(Protocol):
|
|||||||
|
|
||||||
unamed_vlan_splitter: str = ','
|
unamed_vlan_splitter: str = ','
|
||||||
unamed_vlan_counter = '-'
|
unamed_vlan_counter = '-'
|
||||||
unamed_vlans_parse_pattern = r"^vlan\s+(?:\w+\s+)?([\d,-]*[ ,][\d (to),-]*)$"
|
unamed_vlans_parse_pattern = r"vlan\s+(?:\w+\s+)?([\d,-]*[ ,][\d (to),-]*)$"
|
||||||
|
|
||||||
def __init__(self, config):
|
def __init__(self, config):
|
||||||
self.config: str = config
|
self.config: str = config
|
||||||
|
|||||||
@@ -15,10 +15,11 @@ class Vrp(BaseDevice):
|
|||||||
vlans = []
|
vlans = []
|
||||||
pattern = self.unamed_vlans_parse_pattern
|
pattern = self.unamed_vlans_parse_pattern
|
||||||
for match in re.finditer(pattern, self.config, re.MULTILINE):
|
for match in re.finditer(pattern, self.config, re.MULTILINE):
|
||||||
|
print(match)
|
||||||
tokens = match.group(1).split(self.unamed_vlan_splitter)
|
tokens = match.group(1).split(self.unamed_vlan_splitter)
|
||||||
i = 0
|
i = 0
|
||||||
while i < len(tokens):
|
while i < len(tokens):
|
||||||
if i + 2 < len(tokens) and tokens[i + 1].lower() == 'to':
|
if i + 2 < len(tokens) and tokens[i + 1].lower() == self.unamed_vlan_counter:
|
||||||
start = int(tokens[i])
|
start = int(tokens[i])
|
||||||
end = int(tokens[i + 2])
|
end = int(tokens[i + 2])
|
||||||
for vlan_id in range(start, end + 1):
|
for vlan_id in range(start, end + 1):
|
||||||
|
|||||||
Reference in New Issue
Block a user