Auto-start collectors when saving machines
This commit is contained in:
@@ -12,6 +12,7 @@ from pydantic import BaseModel, Field
|
||||
from media_library_viewer_api.clients.ssh import RemoteSSHClient
|
||||
from media_library_viewer_api.config import get_settings
|
||||
from media_library_viewer_api.dependencies import get_monitoring_poller, get_settings_store
|
||||
from media_library_viewer_api.services.monitoring_actions import start_collector
|
||||
from media_library_viewer_api.services.db_maintenance import remove_sqlite_database
|
||||
from media_library_viewer_api.services.known_hosts import has_known_host
|
||||
from media_library_viewer_api.services.media_index import MediaIndex
|
||||
@@ -124,6 +125,12 @@ def _validate_saved_machine_ssh(machine: MonitoringMachineInput, store: Settings
|
||||
client.close()
|
||||
|
||||
|
||||
def _start_machine_collector(machine: MonitoringMachineInput, store: SettingsStore) -> None:
|
||||
if "monitoring" not in {str(service).strip().lower() for service in machine.services}:
|
||||
return
|
||||
start_collector(machine.model_dump(exclude_none=True), store)
|
||||
|
||||
|
||||
@router.post("/machines/test-ssh")
|
||||
def test_machine_ssh(
|
||||
machine: MonitoringMachineInput,
|
||||
@@ -183,7 +190,9 @@ def post_machine(
|
||||
saved = store.upsert_machine(machine.model_dump(exclude_none=True), machine.id)
|
||||
poller = get_monitoring_poller()
|
||||
try:
|
||||
_validate_saved_machine_ssh(MonitoringMachineInput.model_validate(saved), store)
|
||||
saved_machine = MonitoringMachineInput.model_validate(saved)
|
||||
_validate_saved_machine_ssh(saved_machine, store)
|
||||
_start_machine_collector(saved_machine, store)
|
||||
finally:
|
||||
poller.start()
|
||||
poller.kick()
|
||||
@@ -201,7 +210,9 @@ def put_machine(
|
||||
saved = store.upsert_machine(machine.model_dump(exclude_none=True), machine_id)
|
||||
poller = get_monitoring_poller()
|
||||
try:
|
||||
_validate_saved_machine_ssh(MonitoringMachineInput.model_validate(saved), store)
|
||||
saved_machine = MonitoringMachineInput.model_validate(saved)
|
||||
_validate_saved_machine_ssh(saved_machine, store)
|
||||
_start_machine_collector(saved_machine, store)
|
||||
finally:
|
||||
poller.start()
|
||||
poller.kick()
|
||||
|
||||
Reference in New Issue
Block a user