utp_service/backend/app/plugins/loader.py
2026-04-07 12:49:59 +03:00

39 lines
1.4 KiB
Python

"""
PluginLoader — discovers and registers action plugins at startup.
Étape 3: builtins include SSH file snapshots, Mikrotik, and Camera plugins.
Étape 5: will scan plugins/custom/ and cross-reference with the plugins DB table.
"""
from app.plugins.base import BaseAction
from app.plugins.builtin.camera.get_status import CameraGetStatusAction
from app.plugins.builtin.camera.set_ntp import CameraSetNTPAction
from app.plugins.builtin.common.ping import PingAction
from app.plugins.builtin.mikrotik.get_config import MikrotikGetConfigAction
from app.plugins.builtin.mikrotik.get_ntp import MikrotikGetNTPAction
from app.plugins.builtin.mikrotik.set_ntp import MikrotikSetNTPAction
from app.plugins.builtin.ssh.get_file import GetFileAction
from app.plugins.builtin.ssh.get_timedatectl import GetTimedatectlAction
from app.plugins.builtin.ssh.ssh_command import SSHCommandAction
from app.plugins.registry import action_registry
_BUILTIN_ACTIONS: list[BaseAction] = [
# Universal
PingAction(),
# SSH / Linux
SSHCommandAction(),
GetTimedatectlAction(),
GetFileAction(),
# Mikrotik (RouterOS via SSH)
MikrotikGetConfigAction(),
MikrotikGetNTPAction(),
MikrotikSetNTPAction(),
# Cameras (Hikvision ISAPI)
CameraGetStatusAction(),
CameraSetNTPAction(),
]
def load_plugins() -> None:
for action in _BUILTIN_ACTIONS:
action_registry.register(action)