Skip to content

Commit c865908

Browse files
committed
add result endpoint
1 parent 4f88db3 commit c865908

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed

packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/storage/zipping.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
from typing import Final
22

33
from models_library.api_schemas_long_running_tasks.base import TaskId
4-
from models_library.api_schemas_long_running_tasks.tasks import TaskGet, TaskStatus
4+
from models_library.api_schemas_long_running_tasks.tasks import (
5+
TaskGet,
6+
TaskResult,
7+
TaskStatus,
8+
)
59
from models_library.api_schemas_storage import STORAGE_RPC_NAMESPACE
610
from models_library.api_schemas_storage.zipping_tasks import (
711
ZipTaskAbortOutput,
@@ -54,3 +58,16 @@ async def get_zipping_status(
5458
)
5559
assert isinstance(result, TaskStatus)
5660
return result
61+
62+
63+
async def get_zipping_result(
64+
rabbitmq_rpc_client: RabbitMQRPCClient, *, task_id: TaskId
65+
) -> TaskResult:
66+
result = await rabbitmq_rpc_client.request(
67+
STORAGE_RPC_NAMESPACE,
68+
_RPC_METHOD_NAME_ADAPTER.validate_python("get_zipping_result"),
69+
task_id=task_id,
70+
timeout_s=_DEFAULT_TIMEOUT_S,
71+
)
72+
assert isinstance(result, TaskResult)
73+
return result

services/storage/src/simcore_service_storage/api/rabbitmq_rpc/_zipping.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from models_library.api_schemas_long_running_tasks.tasks import (
77
TaskGet,
88
TaskId,
9+
TaskResult,
910
TaskStatus,
1011
)
1112
from models_library.api_schemas_storage.zipping_tasks import (
@@ -43,3 +44,8 @@ async def get_zipping_status(app: FastAPI, task_id: TaskId) -> TaskStatus:
4344
percent=ProgressPercent(0.5),
4445
)
4546
return TaskStatus(task_progress=progress, done=False, started=datetime.now())
47+
48+
49+
@router.expose()
50+
async def get_zipping_result(app: FastAPI, task_id: TaskId) -> TaskResult:
51+
return TaskResult(result="Here's your result.", error=None)

services/storage/tests/unit/test_zipping.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from servicelib.rabbitmq import RabbitMQRPCClient
1515
from servicelib.rabbitmq.rpc_interfaces.storage import zipping
1616
from settings_library.rabbit import RabbitSettings
17-
from simcore_service_storage.api.rabbitmq_rpc._zipping import TaskId
17+
from simcore_service_storage.api.rabbitmq_rpc._zipping import TaskId, TaskResult
1818
from simcore_service_storage.core.settings import ApplicationSettings
1919

2020
pytest_plugins = [
@@ -79,3 +79,9 @@ async def test_get_zipping_status(rpc_client: RabbitMQRPCClient, faker: Faker):
7979
result = await zipping.get_zipping_status(rpc_client, task_id=_task_id)
8080
assert isinstance(result, TaskStatus)
8181
assert result.task_progress.task_id == _task_id
82+
83+
84+
async def test_get_zipping_result(rpc_client: RabbitMQRPCClient, faker: Faker):
85+
_task_id = TaskId(f"{faker.uuid4()}")
86+
result = await zipping.get_zipping_result(rpc_client, task_id=_task_id)
87+
assert isinstance(result, TaskResult)

0 commit comments

Comments
 (0)