Описание
Политика валидации - набор правил по которым происходит сравнение фактов, полученных путём разбора конфигурации, с эталоном. В случае расхождения факта и эталона поднимается авария.
Запрос к базе фактов - текстовая строка составленная по определённым правилам, позволяющая производить операции над фактами.
База фактов (ConfDB) - сущность, содержащая в себе данные (факты), полученные на основе разбора конфигурации оборудования.
Механизм
При сборе конфигурации с устройства она пропускается через нормализатор в котором происходит её разбор на факты. Они объединяются в синтаксическое дерево, которое составляет Базу фактов (ConfDB). Само дерево можно увидеть в интрефейсе объекта справа от кнопки Config:
Cинтаксис описан системой, благодаря этому он будет одинаковым для всех устройств, а его наполнение зависит только от полноты реализации нормализатора. Это позволяет писать запросы, которые будут работать на любой конфигурации. Его можно расширять в профилях (адаптерах) - т.е. оно будет существовать в в рамках профиля.
Также добавляется секция Meta с информацией собранной в ходе опроса. Это позволяет обращаться к ней в запросах.
После построения базы фактов к ней можно делать запросы. Язык запросов позволяет устанавливать факты, извлекать и проводить сравнения с значениями. Это делает возможным применять его для проверки конфигурации оборудования на предмет соответствия заданным эталонам или выборки объектов по различным признакам.
Механизм проверки называется Политика валидации. Привязывается к `профилю объекта` и содержит список запросов к ConfDB с установлением факта ошибки (error). При сборе конфигурации извлекаются факты и к ним, по порядку, применяются, указанным в политике, запросы, которые соответствуют критерию. В случае установления факта ошибки валидации поднимается авария с указанием места ошибки и текста, выставленного в error.
Настройка
Запросы
Интерфейс запросов находится в меню `Управление конфигурацией` -> `Настройки` -> `ConfDB Queries`. В нём можно добавить новый запрос или изменить назначение существующего. Интерфейс создания/редактирования запроса состоит из следующих полей:
- Name (Имя запроса) - уникальное имя
- Description (Описание)
- Soure (Исходник) - текст запроса
- Parameters (параметры) - перечень переменных, для перадчи в запрос
- Name (Имя) - наименование переменной
- Type (Тип) - тип переменной
- Default (По умолчанию) - используется, если не выставлено значение пользователем
- Description (Описание) - краткое описание
- Allow (Разрешённые назначения) - в каком качестве можно использовать запрос:
- Object Filter - фильтр объектов
- Object Validation - для валидации фактов по объекту
- Interface Filter - для фильтрации интерфейсов
- Interface Validation - для валидации фактов по интерфейсу
- Requiere RAW - для запроса необходима секция raw (факты до нормализации)
Тестирование запросов
Написание и проверку запросов удобно проводить в интерфейсе устройства: Service Activation (Управление объектами) -> Managed Object (Список объектов) -> Выбрать интересующий объект. В нём зайти в ConfDB
В левой части отобразится дерево ConfDB. По нажатии на копку Query откроется текстовое поле с кнопкой Запуск. В него можно вписать текст запроса и посмотреть результат (снизу после нажатия Запуск).
Политика валидации
Интерфейс работы с политиками валидации находится в меню Configuration Management (`Управление конфигурацией`) -> Setup (Настройки) -> Object Validation Policies (Политики валидации объекта). Форма добавления/изменения политики выглядит так
- Name (Имя) - говорящее имя политики
- Description (Описание) - текст описания
- Filter Query - запрос фильтрации политики (должен быть отмечен как Object Filter)
- Правила - список правил валидации. Состоит из
- Query - запрос валидации (должен быть отмечен для применения в Object Validation)
- Query Parameters - значения параметров, передающихся в запрос в качестве переменных (список берётся из настроек запроса)
- Filter Query - запрос для фильтрации правила (должен быть отмечен как Object Filter). Используется при необходимости применения правила к ограниченному перечню объектов (н-р конкретных моделям)
- Active - рабочее или не рабочее правило
- Code (`Код`) - код аварии, применяется при необходимо обработке аварий внешней системой
- Error Template - шаблон сообщения аварии
- Alarm Class (`Класс аварии`) - класс открытой аварии при нарушении правила
- Fatal - в случае нарушения опрога остановить опрос устройства
Проверка работы политики
Для проверки работы политики необходимо привязать её к профилю объекта и перезапустить опрос.
Назначение политики валидации происходит в `ManagedObject Profile` (профиле объекта) на вкладке `Config` (Конфиг), блок `Config Validation`. В нём есть 2 настройки:
- Validation Policy (Политика применения валидации) - настройка валидации:
- Always будет применяться каждый раз при сборе конфигурации
- Validate on Change - только при изменении
- Disable - валидация отключена
- Action (Действие) - выбранная политика
По умолчанию Политика применяется только при изменении конфигурации. Поведение определяется настройкой в ObjectProfile -> Вкладка Config -> Validation Policy: Always
После назначения настроенной политики необходимо запустить полный опрос на оборудовании. Чтобы не дожидаться времени опроса можно сделать это принудительно. В интерфейсе Объекта (Service Activation (Управление объектами) -> Managed Objects (Список объектов -> выбранный объект). Кнопка Discovery (Опрос) на панели сверху.
При выборе строки с box справа покажется лог опроса. Необходимо нажать Run (Запуск). После окончания опроса необходимо Обновить лог. Записи о найденных проблемах будут в строке [configvalidation], Записи о поднятых авариях внизу.