RCON model
This commit is contained in:
@@ -9,6 +9,11 @@ from .collector import collect_server_snapshots
|
||||
from .config import get_historical_data_source_kind, get_live_data_source_kind
|
||||
from .providers.public_scoreboard_provider import PublicScoreboardHistoricalDataSource
|
||||
from .providers.rcon_provider import RconLiveDataSource
|
||||
from .rcon_historical_read_model import (
|
||||
describe_rcon_historical_read_model,
|
||||
list_rcon_historical_recent_activity,
|
||||
list_rcon_historical_server_summaries,
|
||||
)
|
||||
from .server_targets import A2SServerTarget, load_a2s_targets
|
||||
|
||||
|
||||
@@ -72,15 +77,19 @@ class A2SLiveDataSource:
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class RconHistoricalDataSource:
|
||||
"""Placeholder historical provider for future production RCON integration."""
|
||||
"""Minimal persisted historical read model over prospective RCON capture."""
|
||||
|
||||
source_kind: str = SOURCE_KIND_RCON
|
||||
|
||||
def fetch_public_info(self, *, base_url: str) -> dict[str, object]:
|
||||
raise RuntimeError("Historical RCON provider is not implemented yet.")
|
||||
raise RuntimeError(
|
||||
"RCON historical read mode does not support CRCON ingestion operations."
|
||||
)
|
||||
|
||||
def fetch_match_page(self, *, base_url: str, page: int, limit: int) -> dict[str, object]:
|
||||
raise RuntimeError("Historical RCON provider is not implemented yet.")
|
||||
raise RuntimeError(
|
||||
"RCON historical read mode does not support CRCON ingestion operations."
|
||||
)
|
||||
|
||||
def fetch_match_details(
|
||||
self,
|
||||
@@ -89,7 +98,26 @@ class RconHistoricalDataSource:
|
||||
match_ids: list[str],
|
||||
max_workers: int,
|
||||
) -> list[dict[str, object]]:
|
||||
raise RuntimeError("Historical RCON provider is not implemented yet.")
|
||||
raise RuntimeError(
|
||||
"RCON historical read mode does not support CRCON ingestion operations."
|
||||
)
|
||||
|
||||
def list_server_summaries(self, *, server_key: str | None = None) -> list[dict[str, object]]:
|
||||
"""Return coverage and freshness from persisted prospective RCON samples."""
|
||||
return list_rcon_historical_server_summaries(server_key=server_key)
|
||||
|
||||
def list_recent_activity(
|
||||
self,
|
||||
*,
|
||||
server_key: str | None = None,
|
||||
limit: int = 20,
|
||||
) -> list[dict[str, object]]:
|
||||
"""Return recent persisted RCON activity without on-demand network calls."""
|
||||
return list_rcon_historical_recent_activity(server_key=server_key, limit=limit)
|
||||
|
||||
def describe_capabilities(self) -> dict[str, object]:
|
||||
"""Describe the supported RCON historical read surface."""
|
||||
return describe_rcon_historical_read_model()
|
||||
|
||||
|
||||
def get_historical_data_source() -> HistoricalDataSource:
|
||||
|
||||
Reference in New Issue
Block a user