Skip to content

Commit 56a8623

Browse files
fix REST interface in tasks plugin
1 parent 27909c3 commit 56a8623

File tree

7 files changed

+23
-34
lines changed

7 files changed

+23
-34
lines changed

api/specs/web-server/_long_running_tasks.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,24 @@
1212
from servicelib.aiohttp.long_running_tasks._routes import _PathParam
1313
from servicelib.long_running_tasks.models import TaskGet, TaskStatus
1414
from simcore_service_webserver._meta import API_VTAG
15-
from simcore_service_webserver.tasks._exception_handlers import _TO_HTTP_ERROR_MAP
15+
from simcore_service_webserver.tasks._controller._rest_exceptions import (
16+
_TO_HTTP_ERROR_MAP,
17+
)
1618

1719
router = APIRouter(
1820
prefix=f"/{API_VTAG}",
1921
tags=[
2022
"long-running-tasks",
2123
],
24+
responses={
25+
i.status_code: {"model": EnvelopedError} for i in _TO_HTTP_ERROR_MAP.values()
26+
},
2227
)
2328

24-
_responses: dict[int | str, dict[str, Any]] = {
25-
i.status_code: {"model": EnvelopedError} for i in _TO_HTTP_ERROR_MAP.values()
26-
}
27-
2829

2930
@router.get(
3031
"/tasks",
3132
response_model=Envelope[list[TaskGet]],
32-
responses=_responses,
3333
)
3434
def list_tasks():
3535
"""Lists all long running tasks"""
@@ -38,7 +38,6 @@ def list_tasks():
3838
@router.get(
3939
"/tasks/{task_id}",
4040
response_model=Envelope[TaskStatus],
41-
responses=_responses,
4241
)
4342
def get_task_status(
4443
_path_params: Annotated[_PathParam, Depends()],
@@ -57,7 +56,6 @@ def get_task_stream(
5756

5857
@router.delete(
5958
"/tasks/{task_id}",
60-
responses=_responses,
6159
status_code=status.HTTP_204_NO_CONTENT,
6260
)
6361
def cancel_task(
@@ -69,7 +67,6 @@ def cancel_task(
6967
@router.get(
7068
"/tasks/{task_id}/result",
7169
response_model=Any,
72-
responses=_responses,
7370
)
7471
def get_task_result(
7572
_path_params: Annotated[_PathParam, Depends()],

api/specs/web-server/_storage.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# pylint: disable=too-many-arguments
55

66

7-
from typing import Annotated, Any, TypeAlias
7+
from typing import Annotated, TypeAlias
88

99
from fastapi import APIRouter, Depends, Query, status
1010
from models_library.api_schemas_long_running_tasks.tasks import (
@@ -35,8 +35,8 @@
3535
from servicelib.fastapi.rest_pagination import CustomizedPathsCursorPage
3636
from simcore_service_webserver._meta import API_VTAG
3737
from simcore_service_webserver.storage.schemas import DatasetMetaData, FileMetaData
38-
from simcore_service_webserver.tasks._exception_handlers import (
39-
_TO_HTTP_ERROR_MAP as export_data_http_error_map,
38+
from simcore_service_webserver.tasks._controller._rest_exceptions import (
39+
_TO_HTTP_ERROR_MAP,
4040
)
4141

4242
router = APIRouter(
@@ -220,19 +220,14 @@ async def is_completed_upload_file(
220220
"""Returns state of upload completion"""
221221

222222

223-
# data export
224-
_export_data_responses: dict[int | str, dict[str, Any]] = {
225-
i.status_code: {"model": EnvelopedError}
226-
for i in export_data_http_error_map.values()
227-
}
228-
229-
230223
@router.post(
231224
"/storage/locations/{location_id}/export-data",
232225
response_model=Envelope[TaskGet],
233226
name="export_data",
234227
description="Export data",
235-
responses=_export_data_responses,
228+
responses={
229+
i.status_code: {"model": EnvelopedError} for i in _TO_HTTP_ERROR_MAP.values()
230+
},
236231
)
237232
async def export_data(export_data: DataExportPost, location_id: LocationID):
238233
"""Trigger data export. Returns async job id for getting status and results"""

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
from ..models import AuthenticatedRequestContext, WebServerOwnerMetadata
5858
from ..rabbitmq import get_rabbitmq_rpc_client
5959
from ..security.decorators import permission_required
60-
from ..tasks._exception_handlers import handle_export_data_exceptions
60+
from ..tasks._controller._rest_exceptions import handle_export_data_exceptions
6161
from .schemas import StorageFileIDStr
6262
from .settings import StorageSettings, get_plugin_settings
6363

services/web/server/src/simcore_service_webserver/tasks/_controller/__init__.py

Whitespace-only changes.

services/web/server/src/simcore_service_webserver/tasks/_rest.py renamed to services/web/server/src/simcore_service_webserver/tasks/_controller/_rest.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
"""Handlers exposed by storage subsystem
2-
3-
Mostly resolves and redirect to storage API
4-
"""
1+
"""Handlers exposed by subsystem"""
52

63
import logging
74
from typing import Final
@@ -31,13 +28,13 @@
3128
from servicelib.long_running_tasks import lrt_api
3229
from servicelib.rabbitmq.rpc_interfaces.async_jobs import async_jobs
3330

34-
from .._meta import API_VTAG
35-
from ..login.decorators import login_required
36-
from ..long_running_tasks.plugin import webserver_request_context_decorator
37-
from ..models import AuthenticatedRequestContext, WebServerOwnerMetadata
38-
from ..rabbitmq import get_rabbitmq_rpc_client
39-
from ..security.decorators import permission_required
40-
from ._exception_handlers import handle_export_data_exceptions
31+
from ..._meta import API_VTAG
32+
from ...login.decorators import login_required
33+
from ...long_running_tasks.plugin import webserver_request_context_decorator
34+
from ...models import AuthenticatedRequestContext, WebServerOwnerMetadata
35+
from ...rabbitmq import get_rabbitmq_rpc_client
36+
from ...security.decorators import permission_required
37+
from ._rest_exceptions import handle_export_data_exceptions
4138

4239
log = logging.getLogger(__name__)
4340

services/web/server/src/simcore_service_webserver/tasks/_exception_handlers.py renamed to services/web/server/src/simcore_service_webserver/tasks/_controller/_rest_exceptions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
)
1414
from servicelib.aiohttp import status
1515

16-
from ..exception_handling import (
16+
from ...exception_handling import (
1717
ExceptionToHttpErrorMap,
1818
HttpErrorInfo,
1919
exception_handling_decorator,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from aiohttp import web
22

33
from ..rest.plugin import setup_rest
4-
from . import _rest
4+
from ._controller import _rest
55

66

77
def setup_tasks(app: web.Application):

0 commit comments

Comments
 (0)