|
1 | 1 | import structlog |
2 | 2 | import svcs |
3 | | -from fastapi import APIRouter, HTTPException |
| 3 | +from fastapi import APIRouter |
4 | 4 | from fastapi.responses import JSONResponse |
5 | 5 |
|
6 | 6 | from skvaider.inference.manager import Manager |
@@ -64,18 +64,18 @@ async def update_manifest( |
64 | 64 | ) -> JSONResponse: |
65 | 65 | """Update the manifest of models to load; the manager converges asynchronously.""" |
66 | 66 | manager = services.get(Manager) |
67 | | - models = {m.lower() for m in body.models} |
68 | | - unknown = models - manager.models.keys() |
| 67 | + unknown = body.models - manager.models.keys() |
| 68 | + models = body.models - unknown |
| 69 | + manager.update_manifest(models, body.serial) |
69 | 70 | if unknown: |
70 | | - log.error( |
71 | | - "manifest rejected: unknown models", |
| 71 | + log.warning( |
| 72 | + "manifest accepted with errors: unknown models", |
72 | 73 | unknown=sorted(unknown), |
73 | | - requested=sorted(models), |
74 | | - configured=sorted(manager.models.keys()), |
| 74 | + manifest=sorted(models), |
| 75 | + known=sorted(manager.models.keys()), |
75 | 76 | ) |
76 | | - raise HTTPException( |
77 | | - status_code=500, |
78 | | - detail=f"Unknown models: {sorted(unknown)}", |
| 77 | + return JSONResponse( |
| 78 | + status_code=400, |
| 79 | + content={"status": "unknown models", "unknown": sorted(unknown)}, |
79 | 80 | ) |
80 | | - manager.update_manifest(models, body.serial) |
81 | 81 | return JSONResponse(status_code=202, content={"status": "ok"}) |
0 commit comments