From 2934bfd0bde12f1ffb93dee354c1ba0a860a0716 Mon Sep 17 00:00:00 2001 From: IluaAir Date: Mon, 30 Jun 2025 22:48:26 +0300 Subject: [PATCH] update vlan parsers --- oxi/interface/base.py | 2 +- oxi/interface/models/vrp.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/oxi/interface/base.py b/oxi/interface/base.py index 776234e..d206dcc 100644 --- a/oxi/interface/base.py +++ b/oxi/interface/base.py @@ -40,7 +40,7 @@ class BaseDevice(Protocol): unamed_vlan_splitter: str = ',' 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): self.config: str = config diff --git a/oxi/interface/models/vrp.py b/oxi/interface/models/vrp.py index c7a02e0..83885af 100644 --- a/oxi/interface/models/vrp.py +++ b/oxi/interface/models/vrp.py @@ -15,10 +15,11 @@ class Vrp(BaseDevice): vlans = [] pattern = self.unamed_vlans_parse_pattern for match in re.finditer(pattern, self.config, re.MULTILINE): + print(match) tokens = match.group(1).split(self.unamed_vlan_splitter) i = 0 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]) end = int(tokens[i + 2]) for vlan_id in range(start, end + 1):