diff --git a/oxi/interfaces/models/quasar.py b/oxi/interfaces/models/quasar.py
index cce3a97..a41db15 100644
--- a/oxi/interfaces/models/quasar.py
+++ b/oxi/interfaces/models/quasar.py
@@ -5,6 +5,23 @@ from oxi.interfaces import BaseDevice, register_parser
class Quasar(BaseDevice):
template = "quasar.ttp"
+ def system(self) -> dict:
+ raw = self.raw.get("system", {})
+ items = raw if isinstance(raw, list) else [raw]
+ selected = next(
+ (item for item in items if item.get("assembly_version")),
+ items[0] if items else {},
+ )
+ result = dict(selected)
+ result["version"] = (
+ result.pop("assembly_version", None)
+ or result.pop("engine_version", None)
+ or ""
+ )
+ result.pop("assembly_version", None)
+ result.pop("engine_version", None)
+ return result
+
def interfaces(self) -> list[dict]:
ether_interfaces: dict = self.raw["interfaces"]
interfaces: list[dict] = []
@@ -28,3 +45,9 @@ if __name__ == "__main__":
quasar = Quasar(data)
qt = quasar.parse()
print(qt)
+ print()
+ with open("./test8.txt") as file:
+ data = file.read()
+ quasar = Quasar(data)
+ qt = quasar.parse()
+ print(qt)
diff --git a/oxi/interfaces/models/templates/quasar.ttp b/oxi/interfaces/models/templates/quasar.ttp
index e633654..6cfbf67 100644
--- a/oxi/interfaces/models/templates/quasar.ttp
+++ b/oxi/interfaces/models/templates/quasar.ttp
@@ -46,16 +46,20 @@ default_system = {
-# Engine {{ version }}
-# Product Name {{ model }}
-# Product Serial Number {{ serial_number }}
+#{{ ignore("\s+Assembly\s+") }}{{ assembly_version }}
+#{{ ignore("\s+Product Name\s+") }}{{ model | ORPHRASE }}
+#{{ ignore("\s+Product Serial Number\s+") }}{{ serial_number }}
+
+
+#{{ ignore("\s+Engine\s+") }}{{ engine_version }}
+#{{ ignore("\s+Product Name\s+") }}{{ model | ORPHRASE }}
+#{{ ignore("\s+Product Serial Number\s+") }}{{ serial_number }}
{{ ignore("\\s*") }}config {{ interface }} ipv4 address {{ ip_address }}/{{ mask }} gateway {{ gateway }} {{ ignore }}
-{{ ignore("\\s*") }}config interface {{ interface | _start_ }} fec none mode force-up enable
{{ ignore("\\s*") }}config interface {{ interface | _start_ }} description {{ description | ORPHRASE | strip('"')}}
\ No newline at end of file