From e7570cd4aabaebcd1418fca007f26f41c4458544 Mon Sep 17 00:00:00 2001 From: "Andres D. Molins" Date: Wed, 16 Apr 2025 14:05:44 +0200 Subject: [PATCH] Fix: Solve message class casting issue with requirements field. --- src/aleph/vm/pool.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/aleph/vm/pool.py b/src/aleph/vm/pool.py index 4c01bc226..56ece8ede 100644 --- a/src/aleph/vm/pool.py +++ b/src/aleph/vm/pool.py @@ -149,7 +149,7 @@ async def create_a_vm( try: if message.requirements and message.requirements.gpu: # Ensure we have the necessary GPU for the user by reserving them - resources = self.find_resources_available_for_user(cast(message, InstanceContent), message.address) + resources = self.find_resources_available_for_user(message, message.address) # First assign Host GPUs from the available execution.prepare_gpus(list(resources)) # Prepare VM general Resources and also the GPUs @@ -383,7 +383,7 @@ def get_valid_reservation(self, resource) -> Reservation | None: del self.reservations[resource] return self.reservations.get(resource) - async def reserve_resources(self, message: InstanceContent, user): + async def reserve_resources(self, message: ExecutableContent, user): gpu_to_reserve = message.requirements.gpu if message.requirements and message.requirements.gpu else [] expiration_date = datetime.now(tz=timezone.utc) + timedelta(seconds=60) if not gpu_to_reserve: @@ -400,8 +400,8 @@ async def reserve_resources(self, message: InstanceContent, user): return expiration_date - def find_resources_available_for_user(self, message: InstanceContent, user) -> set[GpuDevice]: - """Find required resource to run InstanceContent from reserved resources by user or free resources. + def find_resources_available_for_user(self, message: ExecutableContent, user) -> set[GpuDevice]: + """Find required resource to run ExecutableContent from reserved resources by user or free resources. Only implement GPU for now""" # Calling function should use the creation_lock to avoid resource being stollem