39 lines
1.4 KiB
Python
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)
|