Skip to content

Commit 587f953

Browse files
committed
new task for copying
1 parent 7af49ea commit 587f953

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import logging
2+
from typing import Any
3+
4+
from celery import Task
5+
from models_library.api_schemas_storage.storage_schemas import FoldersBody
6+
from models_library.users import UserID
7+
from servicelib.logging_utils import log_context
8+
9+
from ...dsm import get_dsm_provider
10+
from ...modules.celery.utils import get_fastapi_app
11+
from ...simcore_s3_dsm import SimcoreS3DataManager
12+
13+
_logger = logging.getLogger(__name__)
14+
15+
16+
async def deep_copy_files_from_project(
17+
task: Task, user_id: UserID, body: FoldersBody
18+
) -> dict[str, Any]:
19+
with log_context(
20+
_logger,
21+
logging.INFO,
22+
msg=f"copying {body.source['uuid']} -> {body.destination['uuid']}",
23+
):
24+
dsm = get_dsm_provider(get_fastapi_app(task.app)).get(
25+
SimcoreS3DataManager.get_location_id()
26+
)
27+
assert isinstance(dsm, SimcoreS3DataManager) # nosec
28+
await dsm.deep_copy_project_simcore_s3(
29+
user_id,
30+
body.source,
31+
body.destination,
32+
body.nodes_map,
33+
task_progress=None, # TODO: fix by using a real progress bar
34+
)
35+
36+
return body.destination

services/storage/src/simcore_service_storage/api/_worker_tasks/tasks.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from ...modules.celery.tasks import export_data
99
from ._files import complete_upload_file
1010
from ._paths import compute_path_size
11+
from ._simcore_s3 import deep_copy_files_from_project
1112

1213
_logger = logging.getLogger(__name__)
1314

@@ -22,3 +23,4 @@ def setup_worker_tasks(app: Celery) -> None:
2223
define_task(app, export_data)
2324
define_task(app, compute_path_size)
2425
define_task(app, complete_upload_file)
26+
define_task(app, deep_copy_files_from_project)

0 commit comments

Comments
 (0)