Child pages
  • Проверка конфигов

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Назначение

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

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

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

Code Block
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

Jira Issues
columnskey, summary
urlhttp://bt.nocproject.org/browse/NOC-138