Skip to content

Commit bc7ce89

Browse files
committed
clean up error mapping
1 parent b18792d commit bc7ce89

File tree

2 files changed

+30
-28
lines changed

2 files changed

+30
-28
lines changed

services/api-server/src/simcore_service_api_server/exceptions/task_errors.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,31 @@
33
from .backend_errors import BaseBackEndError
44

55

6-
class TaskBaseError(BaseBackEndError):
7-
pass
8-
9-
10-
class TaskSchedulerError(TaskBaseError):
6+
class TaskSchedulerError(BaseBackEndError):
117
msg_template: str = "TaskScheduler error"
128
status_code = status.HTTP_500_INTERNAL_SERVER_ERROR
139

1410

15-
class TaskMissingError(TaskBaseError):
11+
class TaskMissingError(BaseBackEndError):
1612
msg_template: str = "Task {job_id} does not exist"
1713
status_code = status.HTTP_404_NOT_FOUND
1814

1915

20-
class TaskStatusError(TaskBaseError):
16+
class TaskStatusError(BaseBackEndError):
2117
msg_template: str = "Could not get status of task {job_id}"
2218
status_code = status.HTTP_404_NOT_FOUND
2319

2420

25-
class TaskNotDoneError(TaskBaseError):
21+
class TaskNotDoneError(BaseBackEndError):
2622
msg_template: str = "Task {job_id} not done"
2723
status_code = status.HTTP_409_CONFLICT
2824

2925

30-
class TaskCancelledError(TaskBaseError):
26+
class TaskCancelledError(BaseBackEndError):
3127
msg_template: str = "Task {job_id} cancelled"
3228
status_code = status.HTTP_409_CONFLICT
3329

3430

35-
class TaskError(TaskBaseError):
31+
class TaskError(BaseBackEndError):
3632
msg_template: str = "Task '{job_id}' failed"
3733
status_code = status.HTTP_500_INTERNAL_SERVER_ERROR

services/api-server/src/simcore_service_api_server/services_rpc/async_jobs.py

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,17 @@
1111
from models_library.api_schemas_rpc_async_jobs.exceptions import (
1212
JobAbortedError,
1313
JobError,
14-
JobMissingError,
1514
JobNotDoneError,
1615
JobSchedulerError,
17-
JobStatusError,
1816
)
1917
from models_library.api_schemas_storage import STORAGE_RPC_NAMESPACE
20-
from servicelib.long_running_tasks.errors import TaskCancelledError
2118
from servicelib.rabbitmq._client_rpc import RabbitMQRPCClient
2219
from servicelib.rabbitmq.rpc_interfaces.async_jobs import async_jobs
2320
from simcore_service_api_server.exceptions.task_errors import (
21+
TaskCancelledError,
2422
TaskError,
25-
TaskMissingError,
2623
TaskNotDoneError,
2724
TaskSchedulerError,
28-
TaskStatusError,
2925
)
3026

3127
from ..exceptions.service_errors_utils import service_exception_mapper
@@ -34,21 +30,16 @@
3430
service_exception_mapper, service_name="Async jobs"
3531
)
3632

37-
_exception_map = {
38-
JobSchedulerError: TaskSchedulerError,
39-
JobMissingError: TaskMissingError,
40-
JobStatusError: TaskStatusError,
41-
JobNotDoneError: TaskNotDoneError,
42-
JobAbortedError: TaskCancelledError,
43-
JobError: TaskError,
44-
}
45-
4633

4734
@dataclass
4835
class AsyncJobClient:
4936
_rabbitmq_rpc_client: RabbitMQRPCClient
5037

51-
@_exception_mapper(rpc_exception_map=_exception_map)
38+
@_exception_mapper(
39+
rpc_exception_map={
40+
JobSchedulerError: TaskSchedulerError,
41+
}
42+
)
5243
async def cancel(
5344
self, *, job_id: AsyncJobId, job_id_data: AsyncJobNameData
5445
) -> None:
@@ -59,7 +50,11 @@ async def cancel(
5950
job_id_data=job_id_data,
6051
)
6152

62-
@_exception_mapper(rpc_exception_map=_exception_map)
53+
@_exception_mapper(
54+
rpc_exception_map={
55+
JobSchedulerError: TaskSchedulerError,
56+
}
57+
)
6358
async def status(
6459
self, *, job_id: AsyncJobId, job_id_data: AsyncJobNameData
6560
) -> AsyncJobStatus:
@@ -70,7 +65,14 @@ async def status(
7065
job_id_data=job_id_data,
7166
)
7267

73-
@_exception_mapper(rpc_exception_map=_exception_map)
68+
@_exception_mapper(
69+
rpc_exception_map={
70+
JobSchedulerError: TaskSchedulerError,
71+
JobNotDoneError: TaskNotDoneError,
72+
JobAbortedError: TaskCancelledError,
73+
JobError: TaskError,
74+
}
75+
)
7476
async def result(
7577
self, *, job_id: AsyncJobId, job_id_data: AsyncJobNameData
7678
) -> AsyncJobResult:
@@ -81,7 +83,11 @@ async def result(
8183
job_id_data=job_id_data,
8284
)
8385

84-
@_exception_mapper(rpc_exception_map=_exception_map)
86+
@_exception_mapper(
87+
rpc_exception_map={
88+
JobSchedulerError: TaskSchedulerError,
89+
}
90+
)
8591
async def list_jobs(
8692
self, *, filter_: str, job_id_data: AsyncJobNameData
8793
) -> list[AsyncJobGet]:

0 commit comments

Comments
 (0)