Files
oxipy/oxi/interfaces/models/mikrotik.py
IluaAir a938fe2d47 Update Interfaces model and Mikrotik template for improved data handling
- Made the `description` field in the `Interfaces` model optional to enhance flexibility.
- Renamed `id` to `vlan_id` in the `Vlans` model for clarity.
- Refactored the `Mikrotik` class methods to streamline raw data access and removed unnecessary print statements.
- Updated the Mikrotik TTP template to reflect changes in variable names and improve overall structure for interface and VLAN configurations.
2026-02-19 00:31:54 +03:00

29 lines
829 B
Python

from oxi.interfaces import register_parser
from oxi.interfaces.base import BaseDevice
from oxi.interfaces.contract import Interfaces, System, Vlans
@register_parser(["routeros", "ros", "mikrotik"])
class Mikrotik(BaseDevice):
template = "mikrotik.ttp"
def system(self) -> "System":
systems = self._raw.get("system")
return System(**systems)
def interfaces(self) -> "Interfaces":
print(self._raw.get("interfaces"))
return [Interfaces(**item) for item in self._raw.get("interfaces")]
def vlans(self) -> list["Vlans"]:
print(self._raw.get("vlans"))
return [Vlans(**item) for item in self._raw.get("vlans")]
if __name__ == "__main__":
with open("../../test.txt") as file:
data = file.read()
mikr = Mikrotik(data)
mikr.parse()
print(mikr)