from fastapi import APIRouter, HTTPException from models.schemas import Enclosure, SlotInfo from services import store router = APIRouter(prefix="/api/enclosures", tags=["enclosures"]) @router.get("", response_model=list[Enclosure]) async def get_enclosures(): """List all discovered SES enclosures (from the poller inventory).""" inventory = await store.get_inventory() return [Enclosure(**e) for e in inventory.get("enclosures", [])] @router.get("/{enclosure_id}/drives", response_model=list[SlotInfo]) async def get_enclosure_drives(enclosure_id: str): """List all drive slots for an enclosure (from the poller inventory).""" inventory = await store.get_inventory() for enc in inventory.get("enclosures", []): if enc["id"] == enclosure_id: return [SlotInfo(**s) for s in enc.get("slots", [])] raise HTTPException(status_code=404, detail=f"Enclosure '{enclosure_id}' not found")