File tree Expand file tree Collapse file tree 3 files changed +22
-17
lines changed
storage/src/simcore_service_storage/modules/celery
web/server/src/simcore_service_webserver/tasks Expand file tree Collapse file tree 3 files changed +22
-17
lines changed Original file line number Diff line number Diff line change 33from typing import Final
44
55from models_library .progress_bar import ProgressReport
6+ from pydantic import ValidationError
67from servicelib .redis ._client import RedisClientSDK
78
89from ..models import (
@@ -86,14 +87,25 @@ async def list_tasks(self, task_context: TaskContext) -> list[Task]:
8687
8788 results = await pipe .execute ()
8889
89- return [
90- Task (
91- uuid = TaskUUID (key [search_key_len :]),
92- metadata = TaskMetadata .model_validate_json (metadata ),
93- )
94- for key , metadata in zip (keys , results , strict = True )
95- if metadata is not None
96- ]
90+ tasks = []
91+ for key , raw_metadata in zip (keys , results , strict = True ):
92+ if raw_metadata is None :
93+ continue
94+
95+ try :
96+ task_metadata = TaskMetadata .model_validate_json (raw_metadata )
97+ tasks .append (
98+ Task (
99+ uuid = TaskUUID (key [search_key_len :]),
100+ metadata = task_metadata ,
101+ )
102+ )
103+ except ValidationError as exc :
104+ _logger .debug (
105+ "Failed to deserialize task metadata for key %s: %s" , key , str (exc )
106+ )
107+
108+ return tasks
97109
98110 async def remove_task (self , task_id : TaskID ) -> None :
99111 await self ._redis_client_sdk .redis .delete (_build_key (task_id ))
Original file line number Diff line number Diff line change 44from uuid import UUID
55
66from models_library .progress_bar import ProgressReport
7- from pydantic import BaseModel , model_validator
7+ from pydantic import BaseModel
88
99TaskContext : TypeAlias = dict [str , Any ]
1010TaskID : TypeAlias = str
@@ -45,13 +45,6 @@ class TaskMetadata(BaseModel):
4545 ephemeral : bool = True
4646 queue : TasksQueue = TasksQueue .DEFAULT
4747
48- @model_validator (mode = "before" )
49- @classmethod
50- def _legacy_name_if_missing (cls , data : Any ) -> Any :
51- if isinstance (data , dict ) and "name" not in data :
52- data ["name" ] = ""
53- return data
54-
5548
5649class Task (BaseModel ):
5750 uuid : TaskUUID
Original file line number Diff line number Diff line change @@ -85,7 +85,7 @@ async def get_async_jobs(request: web.Request) -> web.Response:
8585 [
8686 TaskGet (
8787 task_id = f"{ job .job_id } " ,
88- task_name = job .job_name or f" { job . job_id } " ,
88+ task_name = job .job_name ,
8989 status_href = f"{ request .url .with_path (str (request .app .router ['get_async_job_status' ].url_for (task_id = str (job .job_id ))))} " ,
9090 abort_href = f"{ request .url .with_path (str (request .app .router ['abort_async_job' ].url_for (task_id = str (job .job_id ))))} " ,
9191 result_href = f"{ request .url .with_path (str (request .app .router ['get_async_job_result' ].url_for (task_id = str (job .job_id ))))} " ,
You can’t perform that action at this time.
0 commit comments