← Back to team overview

sts-sponsors team mailing list archive

[Merge] ~ack/maas-site-manager:fix-starlette-warning into maas-site-manager:main

 

Alberto Donato has proposed merging ~ack/maas-site-manager:fix-starlette-warning into maas-site-manager:main.

Commit message:
fix Starlette deprecation about on_startup/on_shutdown

Requested reviews:
  MAAS Lander (maas-lander): unittests
  MAAS Committers (maas-committers)

For more details, see:
https://code.launchpad.net/~ack/maas-site-manager/+git/site-manager/+merge/440859
-- 
Your team MAAS Committers is requested to review the proposed merge of ~ack/maas-site-manager:fix-starlette-warning into maas-site-manager:main.
diff --git a/backend/msm/user_api/_setup.py b/backend/msm/user_api/_setup.py
index 0645e1b..03b9d18 100644
--- a/backend/msm/user_api/_setup.py
+++ b/backend/msm/user_api/_setup.py
@@ -1,4 +1,6 @@
+from contextlib import asynccontextmanager
 from os import environ
+from typing import AsyncGenerator
 
 from fastapi import FastAPI
 from fastapi.middleware.cors import CORSMiddleware
@@ -25,13 +27,18 @@ origins = [
 
 
 def create_app(db_dsn: str = DEFAULT_DB_DSN) -> FastAPI:
+    @asynccontextmanager
+    async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]:
+        await db.connect()
+        yield
+        await db.disconnect()
+
     db = Database(db_dsn)
     app = FastAPI(
         title="MAAS Site Manager",
         name=PACKAGE.project_name,
         version=PACKAGE.version,
-        on_startup=[db.connect],
-        on_shutdown=[db.disconnect],
+        lifespan=lifespan,
     )
     app.add_middleware(
         CORSMiddleware,