File tree Expand file tree Collapse file tree 2 files changed +38
-0
lines changed
services/storage/src/simcore_service_storage/api/_worker_tasks Expand file tree Collapse file tree 2 files changed +38
-0
lines changed Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 88from ...modules .celery .tasks import export_data
99from ._files import complete_upload_file
1010from ._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 )
You can’t perform that action at this time.
0 commit comments