@@ -127,14 +127,23 @@ def get_gateway_status_change_message(
127127
128128
129129async def list_project_gateways (session : AsyncSession , project : ProjectModel ) -> List [Gateway ]:
130- gateways = await list_project_gateway_models (session = session , project = project )
130+ gateways = await list_project_gateway_models (
131+ session = session ,
132+ project = project ,
133+ load_gateway_compute = True ,
134+ )
131135 return [gateway_model_to_gateway (g ) for g in gateways ]
132136
133137
134138async def get_gateway_by_name (
135139 session : AsyncSession , project : ProjectModel , name : str
136140) -> Optional [Gateway ]:
137- gateway = await get_project_gateway_model_by_name (session = session , project = project , name = name )
141+ gateway = await get_project_gateway_model_by_name (
142+ session = session ,
143+ project = project ,
144+ name = name ,
145+ load_gateway_compute = True ,
146+ )
138147 if gateway is None :
139148 return None
140149 return gateway_model_to_gateway (gateway )
@@ -494,20 +503,30 @@ async def set_default_gateway(
494503
495504
496505async def list_project_gateway_models (
497- session : AsyncSession , project : ProjectModel
506+ session : AsyncSession ,
507+ project : ProjectModel ,
508+ load_gateway_compute : bool = False ,
498509) -> Sequence [GatewayModel ]:
499- res = await session .execute (select (GatewayModel ).where (GatewayModel .project_id == project .id ))
510+ stmt = select (GatewayModel ).where (GatewayModel .project_id == project .id )
511+ if load_gateway_compute :
512+ stmt = stmt .options (joinedload (GatewayModel .gateway_compute ))
513+ res = await session .execute (stmt )
500514 return res .scalars ().all ()
501515
502516
503517async def get_project_gateway_model_by_name (
504- session : AsyncSession , project : ProjectModel , name : str
518+ session : AsyncSession ,
519+ project : ProjectModel ,
520+ name : str ,
521+ load_gateway_compute : bool = False ,
505522) -> Optional [GatewayModel ]:
506- res = await session .execute (
507- select (GatewayModel ).where (
508- GatewayModel .project_id == project .id , GatewayModel .name == name
509- )
523+ stmt = select (GatewayModel ).where (
524+ GatewayModel .project_id == project .id ,
525+ GatewayModel .name == name ,
510526 )
527+ if load_gateway_compute :
528+ stmt = stmt .options (joinedload (GatewayModel .gateway_compute ))
529+ res = await session .execute (stmt )
511530 return res .scalar ()
512531
513532
@@ -538,20 +557,24 @@ async def get_project_gateway_model_by_name_for_update(
538557 res = await session .execute (
539558 select (GatewayModel )
540559 .where (GatewayModel .id .in_ ([gateway_id ]), * filters )
560+ .options (joinedload (GatewayModel .gateway_compute ))
541561 .with_for_update (key_share = True , of = GatewayModel )
542562 )
543563 yield res .scalar_one_or_none ()
544564
545565
546566async def get_project_default_gateway_model (
547- session : AsyncSession , project : ProjectModel
567+ session : AsyncSession ,
568+ project : ProjectModel ,
569+ load_gateway_compute : bool = False ,
548570) -> Optional [GatewayModel ]:
549- res = await session .execute (
550- select (GatewayModel ).where (
551- GatewayModel .id == project .default_gateway_id ,
552- GatewayModel .to_be_deleted == False ,
553- )
571+ stmt = select (GatewayModel ).where (
572+ GatewayModel .id == project .default_gateway_id ,
573+ GatewayModel .to_be_deleted == False ,
554574 )
575+ if load_gateway_compute :
576+ stmt = stmt .options (joinedload (GatewayModel .gateway_compute ))
577+ res = await session .execute (stmt )
555578 return res .scalar_one_or_none ()
556579
557580
@@ -567,7 +590,12 @@ async def generate_gateway_name(session: AsyncSession, project: ProjectModel) ->
567590async def get_or_add_gateway_connection (
568591 session : AsyncSession , gateway_id : uuid .UUID
569592) -> tuple [GatewayModel , GatewayConnection ]:
570- gateway = await session .get (GatewayModel , gateway_id )
593+ gateway = await session .get (
594+ GatewayModel ,
595+ gateway_id ,
596+ options = [joinedload (GatewayModel .gateway_compute )],
597+ populate_existing = True ,
598+ )
571599 if gateway is None :
572600 raise GatewayError ("Gateway not found" )
573601 if gateway .gateway_compute is None :
0 commit comments