Source code for srunx.web.deps
"""FastAPI dependency injection providers."""
from __future__ import annotations
from srunx.history import JobHistory, get_history
from .ssh_adapter import SlurmSSHAdapter
# Singleton SSH adapter — connected at startup via lifespan
_adapter: SlurmSSHAdapter | None = None
[docs]
def set_adapter(adapter: SlurmSSHAdapter) -> None:
global _adapter
_adapter = adapter
[docs]
def get_adapter() -> SlurmSSHAdapter:
if _adapter is None:
from fastapi import HTTPException
raise HTTPException(
status_code=503,
detail="SLURM connection not configured. Set SRUNX_SSH_PROFILE or SRUNX_SSH_HOSTNAME + SRUNX_SSH_USERNAME.",
)
return _adapter
[docs]
def get_history_db() -> JobHistory:
return get_history()