# -*- coding: utf-8 -*- """ System-bezogene Netzwerk-Befehle. """ from dataclasses import dataclass, field from typing import Any from trixy_core.network.cmd.base import CommandMessage @dataclass class SystemReboot(CommandMessage): """ System-Neustart anfordern. Kann vom Server an Satellites oder umgekehrt gesendet werden. """ target: str = "" # satellite_id oder "server" delay_seconds: int = 0 reason: str = "" @dataclass class SystemUpdate(CommandMessage): """ System-Update anfordern. Fordert ein Update des Systems oder der Modelle an. """ target: str = "" update_type: str = "" # system, models, config version: str = "" force: bool = False @dataclass class SystemStatus(CommandMessage): """ System-Status-Abfrage oder -Antwort. Enthält den aktuellen Status des Systems. """ target: str = "" status: str = "" # running, starting, stopping, error uptime_seconds: float = 0.0 memory_usage_mb: float = 0.0 cpu_usage_percent: float = 0.0 active_satellites: int = 0 loaded_plugins: list[str] = field(default_factory=list) errors: list[str] = field(default_factory=list) extra: dict[str, Any] = field(default_factory=dict) @dataclass class ServerShutdown(CommandMessage): """ Server-Shutdown-Benachrichtigung. Wird an alle verbundenen Clients gesendet, bevor der Server heruntergefahren wird. Clients sollten darauf reagieren und ihre Verbindung sauber beenden. """ reason: str = "" reconnect_after_seconds: int = 0 # 0 = keine Wiederverbindung erwartet