Skip to content

Commit 07531d4

Browse files
committed
cleanup task submit in webserver
1 parent e3033e5 commit 07531d4

File tree

4 files changed

+21
-13
lines changed

4 files changed

+21
-13
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
from ..rabbitmq import get_rabbitmq_rpc_client
5858
from ..security.decorators import permission_required
5959
from ..tasks._exception_handlers import handle_export_data_exceptions
60-
from ..utils import get_owner_metadata
60+
from ..utils import WebServerOwnerMetadata
6161
from .schemas import StorageFileIDStr
6262
from .settings import StorageSettings, get_plugin_settings
6363

@@ -211,7 +211,7 @@ async def compute_path_size(request: web.Request) -> web.Response:
211211
rabbitmq_rpc_client,
212212
location_id=path_params.location_id,
213213
path=path_params.path,
214-
owner_metadata=get_owner_metadata(
214+
owner_metadata=WebServerOwnerMetadata(
215215
user_id=req_ctx.user_id,
216216
product_name=req_ctx.product_name,
217217
),
@@ -236,7 +236,7 @@ async def batch_delete_paths(request: web.Request):
236236
rabbitmq_rpc_client,
237237
location_id=path_params.location_id,
238238
paths=body.paths,
239-
owner_metadata=get_owner_metadata(
239+
owner_metadata=WebServerOwnerMetadata(
240240
user_id=req_ctx.user_id,
241241
product_name=req_ctx.product_name,
242242
),
@@ -503,7 +503,7 @@ def allow_only_simcore(cls, v: int) -> int:
503503
rabbitmq_rpc_client=rabbitmq_rpc_client,
504504
paths_to_export=export_data_post.paths,
505505
export_as="path",
506-
owner_metadata=get_owner_metadata(
506+
owner_metadata=WebServerOwnerMetadata(
507507
user_id=_req_ctx.user_id,
508508
product_name=_req_ctx.product_name,
509509
),

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
from ..projects.models import ProjectDict
3434
from ..projects.utils import NodesMap
3535
from ..rabbitmq import get_rabbitmq_rpc_client
36-
from ..utils import get_owner_metadata
36+
from ..utils import WebServerOwnerMetadata
3737
from .settings import StorageSettings, get_plugin_settings
3838

3939
_logger = logging.getLogger(__name__)
@@ -119,7 +119,7 @@ async def copy_data_folders_from_project(
119119
rabbitmq_client,
120120
method_name="copy_folders_from_project",
121121
rpc_namespace=STORAGE_RPC_NAMESPACE,
122-
job_filter=get_owner_metadata(
122+
owner_metadata=WebServerOwnerMetadata(
123123
user_id=user_id,
124124
product_name=product_name,
125125
),

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@
2929
from servicelib.aiohttp.rest_responses import create_data_response
3030
from servicelib.long_running_tasks import lrt_api
3131
from servicelib.rabbitmq.rpc_interfaces.async_jobs import async_jobs
32+
from simcore_service_webserver.utils import WebServerOwnerMetadata
3233

3334
from .._meta import API_VTAG
3435
from ..login.decorators import login_required
3536
from ..long_running_tasks.plugin import webserver_request_context_decorator
3637
from ..models import AuthenticatedRequestContext
3738
from ..rabbitmq import get_rabbitmq_rpc_client
3839
from ..security.decorators import permission_required
39-
from ..utils import get_owner_metadata
4040
from ._exception_handlers import handle_export_data_exceptions
4141

4242
log = logging.getLogger(__name__)
@@ -70,7 +70,7 @@ async def get_async_jobs(request: web.Request) -> web.Response:
7070
user_async_jobs = await async_jobs.list_jobs(
7171
rabbitmq_rpc_client=rabbitmq_rpc_client,
7272
rpc_namespace=STORAGE_RPC_NAMESPACE,
73-
job_filter=get_owner_metadata(
73+
owner_metadata=WebServerOwnerMetadata(
7474
user_id=_req_ctx.user_id,
7575
product_name=_req_ctx.product_name,
7676
),
@@ -119,7 +119,7 @@ async def get_async_job_status(request: web.Request) -> web.Response:
119119
rabbitmq_rpc_client=rabbitmq_rpc_client,
120120
rpc_namespace=STORAGE_RPC_NAMESPACE,
121121
job_id=async_job_get.task_id,
122-
job_filter=get_owner_metadata(
122+
owner_metadata=WebServerOwnerMetadata(
123123
user_id=_req_ctx.user_id,
124124
product_name=_req_ctx.product_name,
125125
),
@@ -155,7 +155,7 @@ async def cancel_async_job(request: web.Request) -> web.Response:
155155
rabbitmq_rpc_client=rabbitmq_rpc_client,
156156
rpc_namespace=STORAGE_RPC_NAMESPACE,
157157
job_id=async_job_get.task_id,
158-
owner_metadata=get_owner_metadata(
158+
owner_metadata=WebServerOwnerMetadata(
159159
user_id=_req_ctx.user_id,
160160
product_name=_req_ctx.product_name,
161161
),
@@ -183,7 +183,7 @@ class _PathParams(BaseModel):
183183
rabbitmq_rpc_client=rabbitmq_rpc_client,
184184
rpc_namespace=STORAGE_RPC_NAMESPACE,
185185
job_id=async_job_get.task_id,
186-
job_filter=get_owner_metadata(
186+
owner_metadata=WebServerOwnerMetadata(
187187
user_id=_req_ctx.user_id,
188188
product_name=_req_ctx.product_name,
189189
),

services/web/server/src/simcore_service_webserver/utils.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,15 @@
77
import os
88
import tracemalloc
99
from datetime import datetime
10+
from typing import Annotated
1011

1112
from common_library.error_codes import ErrorCodeStr
13+
from conftest import product_name
1214
from models_library.products import ProductName
1315
from models_library.users import UserID
16+
from pydantic import Field, StringConstraints
1417
from servicelib.celery.models import OwnerMetadata
18+
from test_models_api_keys import user_id
1519
from typing_extensions import ( # https://docs.pydantic.dev/latest/api/standard_library_types/#typeddict
1620
TypedDict,
1721
)
@@ -127,5 +131,9 @@ def compose_support_error_msg(
127131
return ". ".join(sentences)
128132

129133

130-
def get_owner_metadata(*, user_id: UserID, product_name: ProductName) -> OwnerMetadata:
131-
return OwnerMetadata(user_id=user_id, product_name=product_name, owner=APP_NAME)
134+
class WebServerOwnerMetadata(OwnerMetadata):
135+
user_id: UserID
136+
product_name: ProductName
137+
owner: Annotated[
138+
str, StringConstraints(pattern=rf"^{APP_NAME}$"), Field(frozen=True)
139+
] = APP_NAME

0 commit comments

Comments
 (0)