Initial release of the oVirt/RHV Engine API simulator.
Stateful FastAPI lab with contract packs, Compose/Helm, Docker Hub release targets, and Pulumi coverage across all Engine series (GET/POST/PUT/DELETE/HEAD).
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
"""FastAPI dependencies for oVirt routes."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from fastapi import Request
|
||||
|
||||
from app.db.pool import AsyncpgDatabase
|
||||
from app.ovirt.auth import AuthContext, resolve_request_auth
|
||||
from app.ovirt.errors import OVirtError
|
||||
|
||||
|
||||
def get_db(request: Request) -> AsyncpgDatabase:
|
||||
db = getattr(request.app.state, "database", None)
|
||||
if db is None:
|
||||
raise OVirtError("ServiceUnavailable", "Database not ready", status_code=503)
|
||||
return db # type: ignore[return-value]
|
||||
|
||||
|
||||
async def require_auth(request: Request) -> AuthContext:
|
||||
db = get_db(request)
|
||||
async with db.pool.acquire() as conn:
|
||||
return await resolve_request_auth(conn, dict(request.headers))
|
||||
Reference in New Issue
Block a user