Skip to content

Commit 2e96147

Browse files
add check
1 parent 53187d3 commit 2e96147

File tree

3 files changed

+22
-17
lines changed
  • services
    • storage/src/simcore_service_storage/modules/celery
    • web/server/src/simcore_service_webserver/tasks

3 files changed

+22
-17
lines changed

services/storage/src/simcore_service_storage/modules/celery/backends/_redis.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from typing import Final
44

55
from models_library.progress_bar import ProgressReport
6+
from pydantic import ValidationError
67
from servicelib.redis._client import RedisClientSDK
78

89
from ..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))

services/storage/src/simcore_service_storage/modules/celery/models.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from uuid import UUID
55

66
from models_library.progress_bar import ProgressReport
7-
from pydantic import BaseModel, model_validator
7+
from pydantic import BaseModel
88

99
TaskContext: TypeAlias = dict[str, Any]
1010
TaskID: 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

5649
class Task(BaseModel):
5750
uuid: TaskUUID

services/web/server/src/simcore_service_webserver/tasks/_rest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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))))}",

0 commit comments

Comments
 (0)