first
This commit is contained in:
@@ -1,8 +1,13 @@
|
||||
from fastapi import APIRouter
|
||||
from typing import Optional
|
||||
|
||||
from fastapi import APIRouter, Header
|
||||
|
||||
from app.schemas.common import ApiResponse
|
||||
from app.services.cluster_runtime_service import get_cluster_snapshot
|
||||
from app.services.runtime_control_service import runtime_action
|
||||
from app.services.runtime_status_service import get_runtime_preflight, get_runtime_status
|
||||
from app.services.sync_push_service import ingest_runtime_projection
|
||||
from app.services.sync_record_service import get_sync_summary, list_sync_records
|
||||
|
||||
router = APIRouter(tags=["runtime"])
|
||||
|
||||
@@ -12,11 +17,37 @@ def runtime_status() -> ApiResponse:
|
||||
return ApiResponse(data=get_runtime_status())
|
||||
|
||||
|
||||
@router.get("/runtime/readiness", response_model=ApiResponse)
|
||||
def runtime_readiness() -> ApiResponse:
|
||||
return ApiResponse(data=(get_runtime_status().get("readiness") or {}))
|
||||
|
||||
|
||||
@router.get("/runtime/preflight", response_model=ApiResponse)
|
||||
def runtime_preflight() -> ApiResponse:
|
||||
return ApiResponse(data=get_runtime_preflight())
|
||||
|
||||
|
||||
@router.get("/runtime/cluster", response_model=ApiResponse)
|
||||
def runtime_cluster() -> ApiResponse:
|
||||
return ApiResponse(data=get_cluster_snapshot())
|
||||
|
||||
|
||||
@router.get("/runtime/sync-summary", response_model=ApiResponse)
|
||||
def runtime_sync_summary() -> ApiResponse:
|
||||
return ApiResponse(data=get_sync_summary())
|
||||
|
||||
|
||||
@router.get("/runtime/sync-records", response_model=ApiResponse)
|
||||
def runtime_sync_records(limit: int = 20) -> ApiResponse:
|
||||
return ApiResponse(data={"records": list_sync_records(limit=limit)})
|
||||
|
||||
|
||||
@router.post("/runtime/sync-ingest", response_model=ApiResponse)
|
||||
def runtime_sync_ingest(payload: dict, x_domaincheck_sync_token: Optional[str] = Header(default=None)) -> ApiResponse:
|
||||
ok, message, data = ingest_runtime_projection(payload, shared_token=x_domaincheck_sync_token)
|
||||
return ApiResponse(code=0 if ok else 1, message=message, data=data)
|
||||
|
||||
|
||||
@router.post("/runtime/actions/{action}", response_model=ApiResponse)
|
||||
def runtime_action_trigger(action: str) -> ApiResponse:
|
||||
ok, message, data = runtime_action(action)
|
||||
|
||||
Reference in New Issue
Block a user