Files
NexaPG/backend/app/services/infra_probe.py
nessi ba1559e790 Improve agentless mode messaging for host-level metrics
Updated the messaging and UI to clarify unavailability of host-level metrics, such as CPU, RAM, and disk space, in agentless mode. Added clear formatting and new functions to handle missing metrics gracefully in the frontend.
2026-02-13 10:01:24 +01:00

30 lines
834 B
Python

from dataclasses import dataclass
@dataclass
class DiskSpaceProbeResult:
source: str
status: str
free_bytes: int | None = None
message: str | None = None
class DiskSpaceProvider:
async def get_free_bytes(self, target_host: str) -> DiskSpaceProbeResult:
raise NotImplementedError
class NullDiskSpaceProvider(DiskSpaceProvider):
async def get_free_bytes(self, target_host: str) -> DiskSpaceProbeResult:
return DiskSpaceProbeResult(
source="agentless",
status="unavailable",
free_bytes=None,
message=f"Agentless mode: host-level free disk is not available for {target_host}.",
)
def get_disk_space_provider() -> DiskSpaceProvider:
# Extension point: replace by SSH/Agent backed implementation.
return NullDiskSpaceProvider()