Go to file
2023-06-17 20:07:50 +03:00
node_agent init 2023-06-17 20:07:50 +03:00
.gitignore init 2023-06-17 20:07:50 +03:00
configuration.toml init 2023-06-17 20:07:50 +03:00
Makefile init 2023-06-17 20:07:50 +03:00
pyproject.toml init 2023-06-17 20:07:50 +03:00
README.md init 2023-06-17 20:07:50 +03:00
test.py init 2023-06-17 20:07:50 +03:00

Node Agent

Агент для работы на ворк-нодах.

Пока взаимодействовать можно только так (через test.py):

sudo env NODEAGENT_CONFIG_FILE=$PWD/configuration.toml python test.py

Модули

Основной класс тут NodeAgent. Через него осуществляется доступ ко всем методам.

  • base тут базовый класс.
  • main тут объявлен NodeAgent.
  • exceptions тут исключения.
  • config тут понятно.
  • vm тут объявлен класс VirtualMachine с базовыми методами для виртуалок. Генерацию XML для дефайна ВМ следует сделать в отдельном модуле.

TODO

Нужно что-то придумать с обработкой ошибок. Сейчас на неожиданности я вызываю исключения, нужно некритичные из них обработать, чтобы приложение не падало при обращении к несуществующему домену или нефатальных ошибок при работе с существующими доменами.

Как это должно выглядеть

node-agent должен быть обычным DEB-пакетом. В пакете само приложение, sysyemd-сервис, конфиг. Бонусом можно доложить консольные утилиты (пока не реализованы): nodeagent-vmctl (чтобы напрямую дергать методы виртуалок), guest-cmd (обёртка над virsh quest-agent-command).