add slot ttl output with effective timeout config

This commit is contained in:
Abel Luck 2026-02-27 16:43:52 +01:00
parent d8afde8b18
commit 8fdf2d5e5b
5 changed files with 211 additions and 4 deletions

View file

@ -14,12 +14,15 @@ from pydantic import BaseModel
from .models import (
CapacityHint,
CapacityPolicy,
EffectiveConfigResponse,
ErrorDetail,
ErrorResponse,
HealthResponse,
ReservationPhase,
ReservationRequest,
ReservationResponse,
SchedulerPolicy,
SlotInfo,
SlotState,
StateSummary,
@ -180,6 +183,27 @@ def create_app(
summary = db.get_state_summary()
return StateSummary.model_validate(summary)
@app.get("/v1/config/effective", response_model=EffectiveConfigResponse)
def effective_config() -> EffectiveConfigResponse:
return EffectiveConfigResponse(
capacity=CapacityPolicy(
min_slots=config.capacity.min_slots,
max_slots=config.capacity.max_slots,
target_warm_slots=config.capacity.target_warm_slots,
max_leases_per_slot=config.capacity.max_leases_per_slot,
idle_scale_down_seconds=config.capacity.idle_scale_down_seconds,
drain_timeout_seconds=config.capacity.drain_timeout_seconds,
launch_timeout_seconds=config.capacity.launch_timeout_seconds,
boot_timeout_seconds=config.capacity.boot_timeout_seconds,
binding_timeout_seconds=config.capacity.binding_timeout_seconds,
terminating_timeout_seconds=config.capacity.terminating_timeout_seconds,
),
scheduler=SchedulerPolicy(
tick_seconds=config.scheduler.tick_seconds,
reconcile_seconds=config.scheduler.reconcile_seconds,
),
)
@app.post("/v1/hints/capacity")
def capacity_hint(hint: CapacityHint) -> dict[str, str]:
log.info(