Система хуков#
Хуки в ПВ являются программами, выполняемыми при изменении состояния ВМ или узлов. Хуки могут выполняться как локально, так и удаленно в узле, где работает ВМ. Для настройки системы хуков необходимо установить следующие значения в конфигурационном
файле /etc/one/oned.conf:
executable— путь исполняемого модуля драйвера хука, может быть абсолютным или относительным (относительно каталога/usr/lib/one/mads/);arguments— конфигурационный файл для исполняемого модуля драйвера хука, может быть абсолютным или относительным (относительно каталога/etc/one/).
Примечание
Пример
HM_MAD = [ executable =
"one_hm"
]
Хуки виртуальной машины (VM_HOOK)#
Хуки ВМ определяются по следующим параметрами:
name— имя хука;on— условия выполнения хука:
CREATE— при создании ВМ;
PROLOG— при нахождении ВМ в состоянииPROLOG;
RUNNING— после успешной загрузки ВМ;
UNKNOWN— при нахождении ВМ в неизвестном состоянии;
SHUTDOWN— после отключения ВМ;
DONE— после удаления или отключения ВМ;
CUSTOM— определяемое пользователем конкретное состояниеSTATEи комбинация состоянийLCM_STATEдля запуска хука;
command— путь может быть абсолютным или относительным (относительно каталога/usr/share/one/hooks);arguments— аргументы для хука. Можно просмотреть информацию по ВМ с помощью команды$:
remote— удаленное выполнение. Возможные значения:
YES— хук выполняется на узле виртуализации, где установлена ВМ;
NO— хук выполняется на фронтальной машине. Является значением по умолчанию.
Примечание
Пример
VM_HOOK = [ name = "advanced_hook", on = "CUSTOM", state = "ACTIVE", lcm_state = "BOOT_UNKNOWN", command = "log.rb", arguments = "$ID $PREV_STATE $PREV_LCM_STATE"
]
Хуки узла (HOST_HOOK)#
Хуки узла определяются по следующим параметрами:
name— имя хука;on— условия выполнения хука:
CREATE— при создании узла (использование командыonehost create);
ERROR— при нахождении узла в состоянии сбоя;
DISABLE— после отключения узла;
command— путь может быть абсолютным или относительным (относительно каталога/usr/share/one/hooks);arguments— аргументы для хука. Можно использовать следующую информацию об узле:
$ID— идентификатор узла;
$TEMPLATE— шаблон узла в форматеxmlс кодированиемbase64;
remote— удаленное выполнение. Возможные значения:
YES— хук выполняется на узле;
NO— хук выполняется на фронтальной машине. Является значением по умолчанию.