@@ -180,9 +180,7 @@ async def list_fleets(
180180 limit = limit ,
181181 ascending = ascending ,
182182 )
183- return [
184- fleet_model_to_fleet (v , include_deleted_instances = not only_active ) for v in fleet_models
185- ]
183+ return [fleet_model_to_fleet (v ) for v in fleet_models ]
186184
187185
188186async def list_projects_fleet_models (
@@ -227,7 +225,7 @@ async def list_projects_fleet_models(
227225 .where (* filters )
228226 .order_by (* order_by )
229227 .limit (limit )
230- .options (joinedload (FleetModel .instances ))
228+ .options (joinedload (FleetModel .instances . and_ ( InstanceModel . deleted == False ) ))
231229 )
232230 fleet_models = list (res .unique ().scalars ().all ())
233231 return fleet_models
@@ -256,7 +254,9 @@ async def list_project_fleet_models(
256254 if not include_deleted :
257255 filters .append (FleetModel .deleted == False )
258256 res = await session .execute (
259- select (FleetModel ).where (* filters ).options (joinedload (FleetModel .instances ))
257+ select (FleetModel )
258+ .where (* filters )
259+ .options (joinedload (FleetModel .instances .and_ (InstanceModel .deleted == False )))
260260 )
261261 return list (res .unique ().scalars ().all ())
262262
@@ -293,7 +293,9 @@ async def get_project_fleet_model_by_id(
293293 FleetModel .project_id == project .id ,
294294 ]
295295 res = await session .execute (
296- select (FleetModel ).where (* filters ).options (joinedload (FleetModel .instances ))
296+ select (FleetModel )
297+ .where (* filters )
298+ .options (joinedload (FleetModel .instances .and_ (InstanceModel .deleted == False )))
297299 )
298300 return res .unique ().scalar_one_or_none ()
299301
@@ -311,7 +313,9 @@ async def get_project_fleet_model_by_name(
311313 if not include_deleted :
312314 filters .append (FleetModel .deleted == False )
313315 res = await session .execute (
314- select (FleetModel ).where (* filters ).options (joinedload (FleetModel .instances ))
316+ select (FleetModel )
317+ .where (* filters )
318+ .options (joinedload (FleetModel .instances .and_ (InstanceModel .deleted == False )))
315319 )
316320 return res .unique ().scalar_one_or_none ()
317321
@@ -717,8 +721,13 @@ def get_fleet_spec(fleet_model: FleetModel) -> FleetSpec:
717721
718722
719723async def generate_fleet_name (session : AsyncSession , project : ProjectModel ) -> str :
720- fleet_models = await list_project_fleet_models (session = session , project = project )
721- names = {v .name for v in fleet_models }
724+ res = await session .execute (
725+ select (FleetModel .name ).where (
726+ FleetModel .project_id == project .id ,
727+ FleetModel .deleted == False ,
728+ )
729+ )
730+ names = set (res .scalars ().all ())
722731 while True :
723732 name = random_names .generate_name ()
724733 if name not in names :
0 commit comments