Моделирование
Реестр атрибутов
Реестр атрибутов содержит список типизированных атрибутов, которые могут быть привязаны к ТКЕ для хранения информации.
При создании атрибута нужно заполнить:
- Название - системное название атрибута
- Отображение - название атрибута, которое будет отображаться пользователю
- Целевое использование - флаг, запрещающий редактирование атрибута
- Шаблон - список сохраненных схем атрибута
- Схема - схема данных атрибута
Название:
- должно быть уникальным
- может содержать только латинские символы, цифры или символ подчеркивания
Создание ТКЕ
При создании ТКЕ нужно заполнить:
- Родительский ТКЕ
- Название
- Отображение
- Иконка
- Цвет
- Размер иконки
Название:
- должно быть уникальным
- может содержать только латинские символы, цифры или символ подчеркивания
Родительский ТКЕ нельзя менять после создания. Иконка и цвет влияют на отображение в CMDB.
Привязка атрибутов
Атрибуты привязываются к ТКЕ на вкладке Атрибуты. Атрибут может быть привязан к ТКЕ только один раз. Привязка атрибута распространяется на всех наследников.
Атрибуты могут иметь модификаторы, которые изменяют поведение атрибута:
- обязательный:
- КЕ не может быть создан без заполнения этого атрибута
- редактируемый:
- значение атрибута может редактироваться пользователем
- скрытый:
- атрибут не будет показан пользователю
- сохранять историю:
- Памир будет хранить историю изменения значения атрибута
- изменить схему атрибута:
- позволяет переопределить json схему атрибута.
Наследование
Наследование в CMDB — это механизм, который позволяет автоматически распространять привязку ресурсов от родительских Типов КЕ к дочерним. Это упрощает управление данными, уменьшает дублирование и обеспечивает согласованность информации в базе данных.
В качестве ресурсов выступают:
- атрибуты
- связи
- правила наименования
- правила идентификации
Алгоритм наследования атрибутов
Привязка атрибута:
- Атрибуты, привязанные к родительским ТКЕ, распространяются на все дочерние ТКЕ
- Вновь созданные дочерние ТКЕ получают в наследство от родителя все родительские атрибуты
- Фетчеры и Парсеры, привязанные к атрибуту, так же наследуют свои настройки. При этом в дочерний ТКЕ передается не само значение настройки, а ссылка на родительский элемент.
- Возможна ситуация при которой атрибут привязывается к родительскому ТКЕ, в то время, как у дочерних ТКЕ аналогичный
атрибут уже привязан. В этом случае все существующие атрибуты станут зависеть от вновь созданного.
Отвязывание атрибутов:
- Атрибуты, отвязанные от родительского ТКЕ удаляются со всех дочерних ТКЕ
- Удаление атрибутов возможно только на родительском ТКЕ
Алгоритм наследования связей
Наследование связей происходит аналогичным атрибутам образом.
Правила наименования
Правила наименования определяют название, которые будет использовать КЕ при отображении.
Правило наименования записывается в виде шаблона в текстовом виде. В качестве шаблонизатора применяется Jinja2.
Переменные шаблона должны быть записаны в квадратных скобках [[ ]]
.
В шаблонизаторе доступны переменные:
- attributes – атрибуты, доступные на ТКЕ. Во всех используемых в приложении шаблонизаторах, для переменных, доступны кастомные фильтры:
set_if_not_value
– установить указанное значение при отсутствии значения у переменной, аргумент: значение которое- нужно использовать;
[[attributes.name|set_if_not_value("значение которое нужно использовать")]]
skip_if_not_value
– пропустить переменную при отсутствии у переменной значения (подставит пустую строку), аргументов нет;[[attributes.name|skip_if_not_value]]
datetimeformat
– значение переменной в формате iso даты преобразовать в указанный формат, аргумент: строка с- форматом вывода даты (в виде кодов C стандарта), по умолчанию используется "%d %B %Y %H:%M";
[[attributes.date|datetimeformat]]
[[attributes.date|datetimeformat("%d.%B.%Y")]]
При использовании в шаблонах переменных без значения будет возникать ошибка, последствия которой зависят от контекста в котором применяется шаблонизатор (пропущено какое-либо действие, возврат пользователю уведомления о ошибке и пр.)
Правила идентификации
Назначение:
Правила идентификации предназначены для предотвращения дублирования конфигурационных единиц (КЕ) при их создании или изменении.
Они определяют условия, при которых экземпляры типовых конфигурационных единиц (ТКЕ) считаются одинаковыми.
Принцип работы:
- Условие уникальности – правило задаёт логическое условие на основе атрибутов ТКЕ.
- Проверка при создании/изменении КЕ – система проверяет, есть ли в базе данных конфигурационных единиц (БДКЕ) записи, удовлетворяющие этому условию.
- Объединение при совпадении – если найдены совпадающие КЕ, система либо автоматически объединяет их, либо предлагает пользователю выполнить объединение.
Влияние композиции:
- Если КЕ входит в состав другой КЕ (является композируемым), проверка на дублирование выполняется только среди КЕ того же уровня в рамках родительской КЕ.
- Если КЕ не является композируемым, проверка выполняется среди всех КЕ того же типа в БДКЕ.
Алгоритм поиска конфликтов
Правила идентификации содержат критерии для определения всех возможных кандидатов на идентичность.
Идентичными считаются КЕ, у которых любой из критериев вычисляется в true
. Критерий это набор атрибутов соединенных через И
.
Если один из атрибутов не имеет значения, критерий вычисляется в false
. Критерии соединяются через ИЛИ
.
В графическом интерфейсе критерий представляет собой строку, в которую можно добавлять атрибуты из списка привязанных к ТКЕ.
Между атрибутами используется логический оператор И
.
Добавление нового критерия выполняется через кнопку Добавить
.
Разрешение конфликтов при идентификации
Ситуация:
Если в результате проверки найдено несколько дублирующихся КЕ, система выполняет их объединение, чтобы устранить избыточность.
Алгоритм объединения:
- Выбор основного КЕ – из дублирующихся записей выбирается самая старая (созданная раньше всех).
- Обновление атрибутов:
- Все атрибуты из дубликатов переносятся в выбранный КЕ.
- Если атрибут присутствует в нескольких КЕ, сохраняется самое новое значение.
- Перенос связей – все внешние связи (отношения) с дублирующихся КЕ переносятся на выбранный КЕ.
- Удаление дубликатов – после объединения оставшиеся КЕ удаляются из системы.
Результат:
В БДКЕ остаётся только один экземпляр КЕ с актуальными данными и всеми связями.