28 lines
1.7 KiB
Markdown
28 lines
1.7 KiB
Markdown
|
# Node Agent
|
|||
|
|
|||
|
Агент для работы на ворк-нодах.
|
|||
|
|
|||
|
Пока взаимодействовать можно только так (через [test.py](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).
|