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).
|