Базовый шаблон для нового устройства. Скопируйте этот файл, переименуйте в <vendor>.ttp и заполните группы под формат конфигурации вашего устройства. Обязательные группы: system, interfaces. Опциональная группа: vlans — добавляйте только если устройство поддерживает VLAN. --- Группа system --- Должна возвращать одиночный словарь с полями: model (str) — модель устройства serial_number (str) — серийный номер version (str) — версия прошивки --- Группа interfaces --- Должна возвращать список словарей. Каждый элемент: interface (str) — имя интерфейса (alias поля name) ip_address (str|None) — IPv4-адрес mask (int|None) — длина префикса (напр. 24) description (str|None) — описание интерфейса Если устройство возвращает маску в виде 255.255.255.0, конвертируйте её в prefix length в методе interfaces() класса устройства. --- Группа vlans --- Должна возвращать список словарей. Каждый элемент: id (int) — номер VLAN (alias поля vlan_id) description (str|None) — название VLAN (alias поля name) --- Полезные модификаторы TTP --- {{ field | ORPHRASE }} — одно слово или фраза до конца строки {{ field | _start_ }} — начало новой записи группы {{ field | strip('"') }} — убрать кавычки {{ field | replace("yes","True") }} — замена подстроки {{ field | exclude("pattern") }} — пропустить строку при совпадении {{ ignore }} — захватить и выбросить значение {{ ignore('.*') }} — выбросить всё до конца строки Подробнее: docs/templates.md default_system = { "model": "", "serial_number": "", "version": "" } #{{ 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_ }} description {{ description | ORPHRASE | strip('"')}}