Child pages
  • Проверка конфигов
Skip to end of metadata
Go to start of metadata

Назначение

Автоматическая проверка конфигов при каждом изменении на соответсвие заданным политикам конфигурирования

Затронутые системы

CM

Описание

Механизм проверки конфигов позволяет:

  1. Формировать библиотеку проверок (как поставляющихся вместе с дистрибутивом, так и локальных)
  2. Объединять проверки в политики конфигурирования и настраивать их из web-интерфейса
  3. Применять политики конфигурирования к группам устройств
  4. При каждом изменении конфига проверять его на соотвествие заданным политикам и формировать уведомления о нарушении политик
  5. При просмотре конфига из web-интерфейса выводить список ошибок и подсвечивать соотвествующие строки в конфигах

Дизайн

Проверки

Проверки являются программным модулем, комбинирующим код на языках python и javascript с шаблонами HTML, картинками, шаблонами CSS и HTML-файлами. В простейшем случае проверка содержит только python-модуль.

Проверки располагаются в каталоге sa/profiles/<vendor>/<system>/validations/. Проверки, состоящие только из одного python-модуля располагаются в файлах sa/profiles/<vendor>/<system>/validations/<name>.py. Проверки, содержащие несколько файлов располагаются в каталоге sa/profiles/<vendor>/<system>/validations/name/ и имеют следующую структуру

ПутьОписание
__init__.pyОсновной модуль проверки
tests/Unittest'ы
js/Javascript-модули
img/Картинки
css/CSS-файлы
templates/HTML-шаблоны

Модуль проверки (__init__.py или <name>.py) должен содержать декларацию класса python

class Check(NOCCheck):
    name = "<check name>"  # Название проверки (например Force10.FTOS.switchport_edgeport)
    profile = "<profile name>"  # Название профиля
    config = {
         "name": "type"  # Параметры конфигурирования (make_option)?
    }
 
    check_version = ...  # Callable с селектором допустимых версий и платформ
    description = {
        "code": "Описание"  # Описание проверки 
    }

    def __init__(self, **kwargs):
        ...  # kwargs содержит значения    параметров

    def check(self, **kwargs):
        ...  # Генератор, возвращающий instance CheckResult    

 

Связанные issues

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

  • No labels

3 Comments

  1. Unknown User (mikevlz)

    Это будет отлично. Просто ваять на pyRule валидатор, который надо цеплять к каждой железке(с учетом, что на тысяче длинков надо валидацию делать - это ужас. Задолбаешься даже csv править автоматически, чтоб ее потом импортировать).

  2. Unknown User (zi)

    таки что мы имеем спустя год?

  3. Unknown User (lliamah)

    А что мы имеем спустя четыре года?