fractal-server 2.18.0a4__py3-none-any.whl → 2.18.0a6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. fractal_server/__init__.py +1 -1
  2. fractal_server/app/models/v2/job.py +13 -2
  3. fractal_server/app/models/v2/resource.py +13 -0
  4. fractal_server/app/routes/admin/v2/__init__.py +10 -12
  5. fractal_server/app/routes/admin/v2/job.py +15 -15
  6. fractal_server/app/routes/admin/v2/task.py +7 -7
  7. fractal_server/app/routes/admin/v2/task_group.py +11 -11
  8. fractal_server/app/routes/admin/v2/task_group_lifecycle.py +20 -20
  9. fractal_server/app/routes/api/v2/__init__.py +47 -49
  10. fractal_server/app/routes/api/v2/_aux_functions.py +22 -47
  11. fractal_server/app/routes/api/v2/_aux_functions_task_lifecycle.py +4 -4
  12. fractal_server/app/routes/api/v2/_aux_functions_tasks.py +2 -2
  13. fractal_server/app/routes/api/v2/dataset.py +62 -82
  14. fractal_server/app/routes/api/v2/history.py +7 -5
  15. fractal_server/app/routes/api/v2/job.py +12 -12
  16. fractal_server/app/routes/api/v2/project.py +11 -11
  17. fractal_server/app/routes/api/v2/status_legacy.py +15 -29
  18. fractal_server/app/routes/api/v2/submit.py +65 -66
  19. fractal_server/app/routes/api/v2/task.py +15 -17
  20. fractal_server/app/routes/api/v2/task_collection.py +18 -18
  21. fractal_server/app/routes/api/v2/task_collection_custom.py +11 -13
  22. fractal_server/app/routes/api/v2/task_collection_pixi.py +9 -9
  23. fractal_server/app/routes/api/v2/task_group.py +18 -18
  24. fractal_server/app/routes/api/v2/task_group_lifecycle.py +26 -26
  25. fractal_server/app/routes/api/v2/task_version_update.py +5 -5
  26. fractal_server/app/routes/api/v2/workflow.py +18 -18
  27. fractal_server/app/routes/api/v2/workflow_import.py +11 -11
  28. fractal_server/app/routes/api/v2/workflowtask.py +10 -10
  29. fractal_server/app/routes/auth/_aux_auth.py +99 -0
  30. fractal_server/app/routes/auth/users.py +9 -0
  31. fractal_server/app/schemas/user.py +1 -1
  32. fractal_server/app/schemas/v2/__init__.py +48 -48
  33. fractal_server/app/schemas/v2/dataset.py +35 -13
  34. fractal_server/app/schemas/v2/dumps.py +9 -9
  35. fractal_server/app/schemas/v2/job.py +11 -11
  36. fractal_server/app/schemas/v2/project.py +3 -3
  37. fractal_server/app/schemas/v2/resource.py +13 -4
  38. fractal_server/app/schemas/v2/status_legacy.py +3 -3
  39. fractal_server/app/schemas/v2/task.py +6 -6
  40. fractal_server/app/schemas/v2/task_collection.py +4 -4
  41. fractal_server/app/schemas/v2/task_group.py +16 -16
  42. fractal_server/app/schemas/v2/workflow.py +16 -16
  43. fractal_server/app/schemas/v2/workflowtask.py +14 -14
  44. fractal_server/app/shutdown.py +6 -6
  45. fractal_server/config/_main.py +1 -1
  46. fractal_server/data_migrations/2_18_0.py +2 -1
  47. fractal_server/images/models.py +1 -2
  48. fractal_server/main.py +20 -13
  49. fractal_server/migrations/versions/88270f589c9b_add_prevent_new_submissions.py +39 -0
  50. fractal_server/migrations/versions/f0702066b007_one_submitted_job_per_dataset.py +40 -0
  51. fractal_server/runner/v2/_local.py +3 -2
  52. fractal_server/runner/v2/_slurm_ssh.py +3 -2
  53. fractal_server/runner/v2/_slurm_sudo.py +3 -2
  54. fractal_server/runner/v2/runner.py +36 -17
  55. fractal_server/runner/v2/runner_functions.py +11 -14
  56. fractal_server/runner/v2/submit_workflow.py +22 -9
  57. fractal_server/tasks/v2/local/_utils.py +2 -2
  58. fractal_server/tasks/v2/local/collect.py +5 -6
  59. fractal_server/tasks/v2/local/collect_pixi.py +5 -6
  60. fractal_server/tasks/v2/local/deactivate.py +7 -7
  61. fractal_server/tasks/v2/local/deactivate_pixi.py +3 -3
  62. fractal_server/tasks/v2/local/delete.py +5 -5
  63. fractal_server/tasks/v2/local/reactivate.py +5 -5
  64. fractal_server/tasks/v2/local/reactivate_pixi.py +5 -5
  65. fractal_server/tasks/v2/ssh/collect.py +5 -5
  66. fractal_server/tasks/v2/ssh/collect_pixi.py +5 -5
  67. fractal_server/tasks/v2/ssh/deactivate.py +7 -7
  68. fractal_server/tasks/v2/ssh/deactivate_pixi.py +2 -2
  69. fractal_server/tasks/v2/ssh/delete.py +5 -5
  70. fractal_server/tasks/v2/ssh/reactivate.py +5 -5
  71. fractal_server/tasks/v2/ssh/reactivate_pixi.py +5 -5
  72. fractal_server/tasks/v2/utils_background.py +7 -7
  73. fractal_server/tasks/v2/utils_database.py +5 -5
  74. fractal_server/types/__init__.py +13 -4
  75. fractal_server/types/validators/__init__.py +3 -1
  76. fractal_server/types/validators/_common_validators.py +23 -1
  77. {fractal_server-2.18.0a4.dist-info → fractal_server-2.18.0a6.dist-info}/METADATA +1 -1
  78. {fractal_server-2.18.0a4.dist-info → fractal_server-2.18.0a6.dist-info}/RECORD +81 -79
  79. {fractal_server-2.18.0a4.dist-info → fractal_server-2.18.0a6.dist-info}/WHEEL +0 -0
  80. {fractal_server-2.18.0a4.dist-info → fractal_server-2.18.0a6.dist-info}/entry_points.txt +0 -0
  81. {fractal_server-2.18.0a4.dist-info → fractal_server-2.18.0a6.dist-info}/licenses/LICENSE +0 -0
@@ -64,9 +64,9 @@ GetRunnerConfigType = GetRunnerConfigTypeLocal | GetRunnerConfigTypeSLURM
64
64
 
65
65
 
66
66
  __all__ = [
67
- "run_v2_task_parallel",
68
- "run_v2_task_non_parallel",
69
- "run_v2_task_compound",
67
+ "run_task_parallel",
68
+ "run_task_non_parallel",
69
+ "run_task_compound",
70
70
  ]
71
71
 
72
72
 
@@ -145,7 +145,7 @@ def _check_parallelization_list_size(my_list):
145
145
  )
146
146
 
147
147
 
148
- def run_v2_task_non_parallel(
148
+ def run_task_non_parallel(
149
149
  *,
150
150
  images: list[dict[str, Any]],
151
151
  zarr_dir: str,
@@ -168,9 +168,7 @@ def run_v2_task_non_parallel(
168
168
  TaskType.NON_PARALLEL,
169
169
  TaskType.CONVERTER_NON_PARALLEL,
170
170
  ]:
171
- raise ValueError(
172
- f"Invalid {task_type=} for `run_v2_task_non_parallel`."
173
- )
171
+ raise ValueError(f"Invalid {task_type=} for `run_task_non_parallel`.")
174
172
 
175
173
  # Get TaskFiles object
176
174
  task_files = TaskFiles(
@@ -213,7 +211,7 @@ def run_v2_task_non_parallel(
213
211
  db.commit()
214
212
  db.refresh(history_unit)
215
213
  logger.debug(
216
- "[run_v2_task_non_parallel] Created `HistoryUnit` with "
214
+ "[run_task_non_parallel] Created `HistoryUnit` with "
217
215
  f"{history_run_id=}."
218
216
  )
219
217
  history_unit_id = history_unit.id
@@ -265,7 +263,7 @@ def run_v2_task_non_parallel(
265
263
  return outcome, num_tasks
266
264
 
267
265
 
268
- def run_v2_task_parallel(
266
+ def run_task_parallel(
269
267
  *,
270
268
  images: list[dict[str, Any]],
271
269
  task: TaskV2,
@@ -326,7 +324,7 @@ def run_v2_task_parallel(
326
324
  db.add_all(history_units)
327
325
  db.commit()
328
326
  logger.debug(
329
- f"[run_v2_task_non_parallel] Created {len(history_units)} "
327
+ f"[run_task_non_parallel] Created {len(history_units)} "
330
328
  "`HistoryUnit`s."
331
329
  )
332
330
 
@@ -388,7 +386,7 @@ def run_v2_task_parallel(
388
386
  return outcome, num_tasks
389
387
 
390
388
 
391
- def run_v2_task_compound(
389
+ def run_task_compound(
392
390
  *,
393
391
  images: list[dict[str, Any]],
394
392
  zarr_dir: str,
@@ -445,7 +443,7 @@ def run_v2_task_compound(
445
443
  db.refresh(history_unit)
446
444
  init_history_unit_id = history_unit.id
447
445
  logger.debug(
448
- "[run_v2_task_compound] Created `HistoryUnit` with "
446
+ "[run_task_compound] Created `HistoryUnit` with "
449
447
  f"{init_history_unit_id=}."
450
448
  )
451
449
  # Create one `HistoryImageCache` for each input image
@@ -557,8 +555,7 @@ def run_v2_task_compound(
557
555
  for history_unit in history_units:
558
556
  db.refresh(history_unit)
559
557
  logger.debug(
560
- f"[run_v2_task_compound] Created {len(history_units)} "
561
- "`HistoryUnit`s."
558
+ f"[run_task_compound] Created {len(history_units)} `HistoryUnit`s."
562
559
  )
563
560
  history_unit_ids = [history_unit.id for history_unit in history_units]
564
561
 
@@ -20,7 +20,7 @@ from fractal_server.app.models.v2 import JobV2
20
20
  from fractal_server.app.models.v2 import Profile
21
21
  from fractal_server.app.models.v2 import Resource
22
22
  from fractal_server.app.models.v2 import WorkflowV2
23
- from fractal_server.app.schemas.v2 import JobStatusTypeV2
23
+ from fractal_server.app.schemas.v2 import JobStatusType
24
24
  from fractal_server.app.schemas.v2 import ResourceType
25
25
  from fractal_server.logger import get_logger
26
26
  from fractal_server.logger import reset_logger_handlers
@@ -71,7 +71,7 @@ def fail_job(
71
71
  logger.error(log_msg)
72
72
  reset_logger_handlers(logger)
73
73
  job = db.get(JobV2, job.id) # refetch, in case it was updated
74
- job.status = JobStatusTypeV2.FAILED
74
+ job.status = JobStatusType.FAILED
75
75
  job.end_timestamp = get_timestamp()
76
76
  job.log = log_msg
77
77
  db.merge(job)
@@ -145,14 +145,27 @@ def submit_workflow(
145
145
  return
146
146
  if dataset is None or workflow is None:
147
147
  log_msg = ""
148
- if not dataset:
149
- log_msg += f"Cannot fetch dataset {dataset_id} from database\n"
150
- if not workflow:
151
- log_msg += (
152
- f"Cannot fetch workflow {workflow_id} from database\n"
148
+ if dataset is None:
149
+ current_log_msg = (
150
+ f"Cannot fetch dataset {dataset_id} from database "
151
+ f"(as part of job {job_id})."
153
152
  )
153
+ logger.error(current_log_msg)
154
+ log_msg += f"{current_log_msg}\n"
155
+ if workflow is None:
156
+ current_log_msg += (
157
+ f"Cannot fetch workflow {workflow_id} from database "
158
+ f"(as part of job {job_id})."
159
+ )
160
+ logger.error(current_log_msg)
161
+ log_msg += f"{current_log_msg}\n"
162
+
154
163
  fail_job(
155
- db=db_sync, job=job, log_msg=log_msg, logger_name=logger_name
164
+ db=db_sync,
165
+ job=job,
166
+ log_msg=log_msg,
167
+ logger_name=logger_name,
168
+ emit_log=False,
156
169
  )
157
170
  return
158
171
 
@@ -273,7 +286,7 @@ def submit_workflow(
273
286
  # Update job DB entry
274
287
  with next(DB.get_sync_db()) as db_sync:
275
288
  job = db_sync.get(JobV2, job_id)
276
- job.status = JobStatusTypeV2.DONE
289
+ job.status = JobStatusType.DONE
277
290
  job.end_timestamp = get_timestamp()
278
291
  with log_file_path.open("r") as f:
279
292
  logs = f.read()
@@ -1,7 +1,7 @@
1
1
  from pathlib import Path
2
2
 
3
3
  from fractal_server.app.models import Resource
4
- from fractal_server.app.schemas.v2 import TaskCreateV2
4
+ from fractal_server.app.schemas.v2 import TaskCreate
5
5
  from fractal_server.logger import get_logger
6
6
  from fractal_server.logger import set_logger
7
7
  from fractal_server.tasks.v2.utils_pixi import simplify_pyproject_toml
@@ -51,7 +51,7 @@ def _customize_and_run_template(
51
51
  return stdout
52
52
 
53
53
 
54
- def check_task_files_exist(task_list: list[TaskCreateV2]) -> None:
54
+ def check_task_files_exist(task_list: list[TaskCreate]) -> None:
55
55
  """
56
56
  Check that the modules listed in task commands point to existing files.
57
57
 
@@ -9,8 +9,8 @@ from fractal_server.app.models import Profile
9
9
  from fractal_server.app.models import Resource
10
10
  from fractal_server.app.models.v2 import TaskGroupV2
11
11
  from fractal_server.app.schemas.v2 import FractalUploadedFile
12
- from fractal_server.app.schemas.v2 import TaskGroupActivityActionV2
13
- from fractal_server.app.schemas.v2 import TaskGroupActivityStatusV2
12
+ from fractal_server.app.schemas.v2 import TaskGroupActivityAction
13
+ from fractal_server.app.schemas.v2 import TaskGroupActivityStatus
14
14
  from fractal_server.app.schemas.v2.manifest import ManifestV2
15
15
  from fractal_server.logger import reset_logger_handlers
16
16
  from fractal_server.logger import set_logger
@@ -132,14 +132,13 @@ def collect_local(
132
132
  Path(task_group.path) / SCRIPTS_SUBFOLDER
133
133
  ).as_posix(),
134
134
  prefix=(
135
- f"{int(time.time())}_"
136
- f"{TaskGroupActivityActionV2.COLLECT}"
135
+ f"{int(time.time())}_{TaskGroupActivityAction.COLLECT}"
137
136
  ),
138
137
  logger_name=LOGGER_NAME,
139
138
  )
140
139
 
141
140
  # Set status to ONGOING and refresh logs
142
- activity.status = TaskGroupActivityStatusV2.ONGOING
141
+ activity.status = TaskGroupActivityStatus.ONGOING
143
142
  activity.log = get_current_log(log_file_path)
144
143
  activity = add_commit_refresh(obj=activity, db=db)
145
144
 
@@ -257,7 +256,7 @@ def collect_local(
257
256
 
258
257
  # Finalize (write metadata to DB)
259
258
  logger.info("finalising - START")
260
- activity.status = TaskGroupActivityStatusV2.OK
259
+ activity.status = TaskGroupActivityStatus.OK
261
260
  activity.timestamp_ended = get_timestamp()
262
261
  activity = add_commit_refresh(obj=activity, db=db)
263
262
  logger.info("finalising - END")
@@ -8,8 +8,8 @@ from fractal_server.app.db import get_sync_db
8
8
  from fractal_server.app.models import Profile
9
9
  from fractal_server.app.models import Resource
10
10
  from fractal_server.app.schemas.v2 import FractalUploadedFile
11
- from fractal_server.app.schemas.v2 import TaskGroupActivityActionV2
12
- from fractal_server.app.schemas.v2 import TaskGroupActivityStatusV2
11
+ from fractal_server.app.schemas.v2 import TaskGroupActivityAction
12
+ from fractal_server.app.schemas.v2 import TaskGroupActivityStatus
13
13
  from fractal_server.app.schemas.v2.manifest import ManifestV2
14
14
  from fractal_server.logger import reset_logger_handlers
15
15
  from fractal_server.logger import set_logger
@@ -132,13 +132,12 @@ def collect_local_pixi(
132
132
  task_group.path, SCRIPTS_SUBFOLDER
133
133
  ).as_posix(),
134
134
  prefix=(
135
- f"{int(time.time())}_"
136
- f"{TaskGroupActivityActionV2.COLLECT}"
135
+ f"{int(time.time())}_{TaskGroupActivityAction.COLLECT}"
137
136
  ),
138
137
  logger_name=LOGGER_NAME,
139
138
  )
140
139
 
141
- activity.status = TaskGroupActivityStatusV2.ONGOING
140
+ activity.status = TaskGroupActivityStatus.ONGOING
142
141
  activity.log = get_current_log(log_file_path)
143
142
  activity = add_commit_refresh(obj=activity, db=db)
144
143
 
@@ -241,7 +240,7 @@ def collect_local_pixi(
241
240
 
242
241
  # Finalize (write metadata to DB)
243
242
  logger.info("finalising - START")
244
- activity.status = TaskGroupActivityStatusV2.OK
243
+ activity.status = TaskGroupActivityStatus.OK
245
244
  activity.timestamp_ended = get_timestamp()
246
245
  activity = add_commit_refresh(obj=activity, db=db)
247
246
  logger.info("finalising - END")
@@ -6,9 +6,9 @@ from tempfile import TemporaryDirectory
6
6
  from fractal_server.app.db import get_sync_db
7
7
  from fractal_server.app.models import Profile
8
8
  from fractal_server.app.models import Resource
9
- from fractal_server.app.schemas.v2 import TaskGroupActivityActionV2
10
- from fractal_server.app.schemas.v2 import TaskGroupV2OriginEnum
11
- from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatusV2
9
+ from fractal_server.app.schemas.v2 import TaskGroupActivityAction
10
+ from fractal_server.app.schemas.v2 import TaskGroupOriginEnum
11
+ from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatus
12
12
  from fractal_server.logger import reset_logger_handlers
13
13
  from fractal_server.logger import set_logger
14
14
  from fractal_server.tasks.utils import FORBIDDEN_DEPENDENCY_STRINGS
@@ -78,7 +78,7 @@ def deactivate_local(
78
78
  return
79
79
 
80
80
  try:
81
- activity.status = TaskGroupActivityStatusV2.ONGOING
81
+ activity.status = TaskGroupActivityStatus.ONGOING
82
82
  activity = add_commit_refresh(obj=activity, db=db)
83
83
 
84
84
  if task_group.env_info is None:
@@ -102,7 +102,7 @@ def deactivate_local(
102
102
  ).as_posix(),
103
103
  prefix=(
104
104
  f"{int(time.time())}_"
105
- f"{TaskGroupActivityActionV2.DEACTIVATE}"
105
+ f"{TaskGroupActivityAction.DEACTIVATE}"
106
106
  ),
107
107
  logger_name=LOGGER_NAME,
108
108
  )
@@ -120,7 +120,7 @@ def deactivate_local(
120
120
  logger.info("Add pip freeze stdout to TaskGroupV2 - end")
121
121
 
122
122
  # Handle some specific cases for wheel-file case
123
- if task_group.origin == TaskGroupV2OriginEnum.WHEELFILE:
123
+ if task_group.origin == TaskGroupOriginEnum.WHEELFILE:
124
124
  logger.info(
125
125
  f"Handle specific cases for {task_group.origin=}."
126
126
  )
@@ -209,7 +209,7 @@ def deactivate_local(
209
209
  logger.info(f"Now removing {task_group.venv_path}.")
210
210
  shutil.rmtree(task_group.venv_path)
211
211
  logger.info(f"All good, {task_group.venv_path} removed.")
212
- activity.status = TaskGroupActivityStatusV2.OK
212
+ activity.status = TaskGroupActivityStatus.OK
213
213
  activity.log = get_current_log(log_file_path)
214
214
  activity.timestamp_ended = get_timestamp()
215
215
  activity = add_commit_refresh(obj=activity, db=db)
@@ -5,7 +5,7 @@ from tempfile import TemporaryDirectory
5
5
  from fractal_server.app.db import get_sync_db
6
6
  from fractal_server.app.models import Profile
7
7
  from fractal_server.app.models import Resource
8
- from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatusV2
8
+ from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatus
9
9
  from fractal_server.logger import reset_logger_handlers
10
10
  from fractal_server.logger import set_logger
11
11
  from fractal_server.tasks.utils import get_log_path
@@ -70,7 +70,7 @@ def deactivate_local_pixi(
70
70
  return
71
71
 
72
72
  try:
73
- activity.status = TaskGroupActivityStatusV2.ONGOING
73
+ activity.status = TaskGroupActivityStatus.ONGOING
74
74
  activity = add_commit_refresh(obj=activity, db=db)
75
75
 
76
76
  # Actually mark the task group as non-active
@@ -82,7 +82,7 @@ def deactivate_local_pixi(
82
82
  logger.info(f"Now removing '{source_dir.as_posix()}'.")
83
83
  shutil.rmtree(source_dir)
84
84
  logger.info(f"All good, '{source_dir.as_posix()}' removed.")
85
- activity.status = TaskGroupActivityStatusV2.OK
85
+ activity.status = TaskGroupActivityStatus.OK
86
86
  activity.log = get_current_log(log_file_path)
87
87
  activity.timestamp_ended = get_timestamp()
88
88
  activity = add_commit_refresh(obj=activity, db=db)
@@ -5,8 +5,8 @@ from tempfile import TemporaryDirectory
5
5
  from fractal_server.app.db import get_sync_db
6
6
  from fractal_server.app.models import Profile
7
7
  from fractal_server.app.models import Resource
8
- from fractal_server.app.schemas.v2 import TaskGroupActivityStatusV2
9
- from fractal_server.app.schemas.v2 import TaskGroupV2OriginEnum
8
+ from fractal_server.app.schemas.v2 import TaskGroupActivityStatus
9
+ from fractal_server.app.schemas.v2 import TaskGroupOriginEnum
10
10
  from fractal_server.logger import reset_logger_handlers
11
11
  from fractal_server.logger import set_logger
12
12
  from fractal_server.tasks.utils import get_log_path
@@ -45,7 +45,7 @@ def delete_local(
45
45
  return
46
46
 
47
47
  try:
48
- activity.status = TaskGroupActivityStatusV2.ONGOING
48
+ activity.status = TaskGroupActivityStatus.ONGOING
49
49
  activity.log = get_current_log(log_file_path)
50
50
  activity = add_commit_refresh(obj=activity, db=db)
51
51
 
@@ -53,12 +53,12 @@ def delete_local(
53
53
  db.commit()
54
54
  logger.debug("Task group removed from database.")
55
55
 
56
- if task_group.origin != TaskGroupV2OriginEnum.OTHER:
56
+ if task_group.origin != TaskGroupOriginEnum.OTHER:
57
57
  logger.debug(f"Removing {task_group.path=}.")
58
58
  shutil.rmtree(task_group.path)
59
59
  logger.debug(f"{task_group.path=} removed.")
60
60
 
61
- activity.status = TaskGroupActivityStatusV2.OK
61
+ activity.status = TaskGroupActivityStatus.OK
62
62
  activity.log = get_current_log(log_file_path)
63
63
  activity.timestamp_ended = get_timestamp()
64
64
  activity = add_commit_refresh(obj=activity, db=db)
@@ -6,8 +6,8 @@ from tempfile import TemporaryDirectory
6
6
  from fractal_server.app.db import get_sync_db
7
7
  from fractal_server.app.models import Profile
8
8
  from fractal_server.app.models import Resource
9
- from fractal_server.app.schemas.v2 import TaskGroupActivityActionV2
10
- from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatusV2
9
+ from fractal_server.app.schemas.v2 import TaskGroupActivityAction
10
+ from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatus
11
11
  from fractal_server.logger import reset_logger_handlers
12
12
  from fractal_server.logger import set_logger
13
13
  from fractal_server.tasks.utils import get_log_path
@@ -79,7 +79,7 @@ def reactivate_local(
79
79
  return
80
80
 
81
81
  try:
82
- activity.status = TaskGroupActivityStatusV2.ONGOING
82
+ activity.status = TaskGroupActivityStatus.ONGOING
83
83
  activity = add_commit_refresh(obj=activity, db=db)
84
84
 
85
85
  # Prepare replacements for templates
@@ -105,7 +105,7 @@ def reactivate_local(
105
105
  ).as_posix(),
106
106
  prefix=(
107
107
  f"{int(time.time())}_"
108
- f"{TaskGroupActivityActionV2.REACTIVATE}"
108
+ f"{TaskGroupActivityAction.REACTIVATE}"
109
109
  ),
110
110
  logger_name=LOGGER_NAME,
111
111
  )
@@ -126,7 +126,7 @@ def reactivate_local(
126
126
  )
127
127
  logger.debug("end - install from pip freeze")
128
128
  activity.log = get_current_log(log_file_path)
129
- activity.status = TaskGroupActivityStatusV2.OK
129
+ activity.status = TaskGroupActivityStatus.OK
130
130
  activity.timestamp_ended = get_timestamp()
131
131
  activity = add_commit_refresh(obj=activity, db=db)
132
132
  task_group.active = True
@@ -6,8 +6,8 @@ from tempfile import TemporaryDirectory
6
6
  from fractal_server.app.db import get_sync_db
7
7
  from fractal_server.app.models import Profile
8
8
  from fractal_server.app.models import Resource
9
- from fractal_server.app.schemas.v2 import TaskGroupActivityActionV2
10
- from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatusV2
9
+ from fractal_server.app.schemas.v2 import TaskGroupActivityAction
10
+ from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatus
11
11
  from fractal_server.logger import reset_logger_handlers
12
12
  from fractal_server.logger import set_logger
13
13
  from fractal_server.tasks.utils import get_log_path
@@ -77,7 +77,7 @@ def reactivate_local_pixi(
77
77
  return
78
78
 
79
79
  try:
80
- activity.status = TaskGroupActivityStatusV2.ONGOING
80
+ activity.status = TaskGroupActivityStatus.ONGOING
81
81
  activity = add_commit_refresh(obj=activity, db=db)
82
82
 
83
83
  common_args = dict(
@@ -126,7 +126,7 @@ def reactivate_local_pixi(
126
126
  ).as_posix(),
127
127
  prefix=(
128
128
  f"{int(time.time())}_"
129
- f"{TaskGroupActivityActionV2.REACTIVATE}"
129
+ f"{TaskGroupActivityAction.REACTIVATE}"
130
130
  ),
131
131
  logger_name=LOGGER_NAME,
132
132
  )
@@ -176,7 +176,7 @@ def reactivate_local_pixi(
176
176
  )
177
177
 
178
178
  activity.log = get_current_log(log_file_path)
179
- activity.status = TaskGroupActivityStatusV2.OK
179
+ activity.status = TaskGroupActivityStatus.OK
180
180
  activity.timestamp_ended = get_timestamp()
181
181
  activity = add_commit_refresh(obj=activity, db=db)
182
182
  task_group.active = True
@@ -6,8 +6,8 @@ from fractal_server.app.db import get_sync_db
6
6
  from fractal_server.app.models import Profile
7
7
  from fractal_server.app.models import Resource
8
8
  from fractal_server.app.schemas.v2 import FractalUploadedFile
9
- from fractal_server.app.schemas.v2 import TaskGroupActivityActionV2
10
- from fractal_server.app.schemas.v2 import TaskGroupActivityStatusV2
9
+ from fractal_server.app.schemas.v2 import TaskGroupActivityAction
10
+ from fractal_server.app.schemas.v2 import TaskGroupActivityStatus
11
11
  from fractal_server.app.schemas.v2.manifest import ManifestV2
12
12
  from fractal_server.logger import reset_logger_handlers
13
13
  from fractal_server.logger import set_logger
@@ -166,7 +166,7 @@ def collect_ssh(
166
166
  script_dir_remote=script_dir_remote,
167
167
  prefix=(
168
168
  f"{int(time.time())}_"
169
- f"{TaskGroupActivityActionV2.COLLECT}"
169
+ f"{TaskGroupActivityAction.COLLECT}"
170
170
  ),
171
171
  fractal_ssh=fractal_ssh,
172
172
  logger_name=LOGGER_NAME,
@@ -175,7 +175,7 @@ def collect_ssh(
175
175
  logger.info("installing - START")
176
176
 
177
177
  # Set status to ONGOING and refresh logs
178
- activity.status = TaskGroupActivityStatusV2.ONGOING
178
+ activity.status = TaskGroupActivityStatus.ONGOING
179
179
  activity.log = get_current_log(log_file_path)
180
180
  activity = add_commit_refresh(obj=activity, db=db)
181
181
 
@@ -290,7 +290,7 @@ def collect_ssh(
290
290
 
291
291
  # Finalize (write metadata to DB)
292
292
  logger.info("finalising - START")
293
- activity.status = TaskGroupActivityStatusV2.OK
293
+ activity.status = TaskGroupActivityStatus.OK
294
294
  activity.timestamp_ended = get_timestamp()
295
295
  activity = add_commit_refresh(obj=activity, db=db)
296
296
  logger.info("finalising - END")
@@ -6,8 +6,8 @@ from fractal_server.app.db import get_sync_db
6
6
  from fractal_server.app.models import Profile
7
7
  from fractal_server.app.models import Resource
8
8
  from fractal_server.app.schemas.v2 import FractalUploadedFile
9
- from fractal_server.app.schemas.v2 import TaskGroupActivityActionV2
10
- from fractal_server.app.schemas.v2 import TaskGroupActivityStatusV2
9
+ from fractal_server.app.schemas.v2 import TaskGroupActivityAction
10
+ from fractal_server.app.schemas.v2 import TaskGroupActivityStatus
11
11
  from fractal_server.app.schemas.v2.manifest import ManifestV2
12
12
  from fractal_server.logger import reset_logger_handlers
13
13
  from fractal_server.logger import set_logger
@@ -184,7 +184,7 @@ def collect_ssh_pixi(
184
184
  logger.info("installing - START")
185
185
 
186
186
  # Set status to ONGOING and refresh logs
187
- activity.status = TaskGroupActivityStatusV2.ONGOING
187
+ activity.status = TaskGroupActivityStatus.ONGOING
188
188
  activity.log = get_current_log(log_file_path)
189
189
  activity = add_commit_refresh(obj=activity, db=db)
190
190
 
@@ -195,7 +195,7 @@ def collect_ssh_pixi(
195
195
  script_dir_remote=script_dir_remote,
196
196
  prefix=(
197
197
  f"{int(time.time())}_"
198
- f"{TaskGroupActivityActionV2.COLLECT}"
198
+ f"{TaskGroupActivityAction.COLLECT}"
199
199
  ),
200
200
  logger_name=LOGGER_NAME,
201
201
  fractal_ssh=fractal_ssh,
@@ -327,7 +327,7 @@ def collect_ssh_pixi(
327
327
 
328
328
  # Finalize (write metadata to DB)
329
329
  logger.info("finalising - START")
330
- activity.status = TaskGroupActivityStatusV2.OK
330
+ activity.status = TaskGroupActivityStatus.OK
331
331
  activity.timestamp_ended = get_timestamp()
332
332
  activity = add_commit_refresh(obj=activity, db=db)
333
333
  logger.info("finalising - END")
@@ -5,9 +5,9 @@ from tempfile import TemporaryDirectory
5
5
  from fractal_server.app.db import get_sync_db
6
6
  from fractal_server.app.models import Profile
7
7
  from fractal_server.app.models import Resource
8
- from fractal_server.app.schemas.v2 import TaskGroupActivityActionV2
9
- from fractal_server.app.schemas.v2 import TaskGroupV2OriginEnum
10
- from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatusV2
8
+ from fractal_server.app.schemas.v2 import TaskGroupActivityAction
9
+ from fractal_server.app.schemas.v2 import TaskGroupOriginEnum
10
+ from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatus
11
11
  from fractal_server.logger import reset_logger_handlers
12
12
  from fractal_server.logger import set_logger
13
13
  from fractal_server.ssh._fabric import SingleUseFractalSSH
@@ -101,7 +101,7 @@ def deactivate_ssh(
101
101
  )
102
102
  return
103
103
 
104
- activity.status = TaskGroupActivityStatusV2.ONGOING
104
+ activity.status = TaskGroupActivityStatus.ONGOING
105
105
  activity = add_commit_refresh(obj=activity, db=db)
106
106
 
107
107
  if task_group.env_info is None:
@@ -135,7 +135,7 @@ def deactivate_ssh(
135
135
  script_dir_remote=script_dir_remote,
136
136
  prefix=(
137
137
  f"{int(time.time())}_"
138
- f"{TaskGroupActivityActionV2.DEACTIVATE}"
138
+ f"{TaskGroupActivityAction.DEACTIVATE}"
139
139
  ),
140
140
  fractal_ssh=fractal_ssh,
141
141
  logger_name=LOGGER_NAME,
@@ -160,7 +160,7 @@ def deactivate_ssh(
160
160
  )
161
161
 
162
162
  # Handle some specific cases for wheel-file case
163
- if task_group.origin == TaskGroupV2OriginEnum.WHEELFILE:
163
+ if task_group.origin == TaskGroupOriginEnum.WHEELFILE:
164
164
  logger.info(
165
165
  f"Handle specific cases for {task_group.origin=}."
166
166
  )
@@ -264,7 +264,7 @@ def deactivate_ssh(
264
264
  safe_root=profile.tasks_remote_dir,
265
265
  )
266
266
  logger.info(f"All good, {task_group.venv_path} removed.")
267
- activity.status = TaskGroupActivityStatusV2.OK
267
+ activity.status = TaskGroupActivityStatus.OK
268
268
  activity.log = get_current_log(log_file_path)
269
269
  activity.timestamp_ended = get_timestamp()
270
270
  activity = add_commit_refresh(obj=activity, db=db)
@@ -4,7 +4,7 @@ from tempfile import TemporaryDirectory
4
4
  from fractal_server.app.db import get_sync_db
5
5
  from fractal_server.app.models import Profile
6
6
  from fractal_server.app.models import Resource
7
- from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatusV2
7
+ from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatus
8
8
  from fractal_server.logger import reset_logger_handlers
9
9
  from fractal_server.logger import set_logger
10
10
  from fractal_server.ssh._fabric import SingleUseFractalSSH
@@ -109,7 +109,7 @@ def deactivate_ssh_pixi(
109
109
  safe_root=profile.tasks_remote_dir,
110
110
  )
111
111
  logger.info(f"All good, {source_dir} removed.")
112
- activity.status = TaskGroupActivityStatusV2.OK
112
+ activity.status = TaskGroupActivityStatus.OK
113
113
  activity.log = get_current_log(log_file_path)
114
114
  activity.timestamp_ended = get_timestamp()
115
115
  activity = add_commit_refresh(obj=activity, db=db)
@@ -4,8 +4,8 @@ from tempfile import TemporaryDirectory
4
4
  from fractal_server.app.db import get_sync_db
5
5
  from fractal_server.app.models import Profile
6
6
  from fractal_server.app.models import Resource
7
- from fractal_server.app.schemas.v2 import TaskGroupActivityStatusV2
8
- from fractal_server.app.schemas.v2 import TaskGroupV2OriginEnum
7
+ from fractal_server.app.schemas.v2 import TaskGroupActivityStatus
8
+ from fractal_server.app.schemas.v2 import TaskGroupOriginEnum
9
9
  from fractal_server.logger import reset_logger_handlers
10
10
  from fractal_server.logger import set_logger
11
11
  from fractal_server.ssh._fabric import SingleUseFractalSSH
@@ -80,7 +80,7 @@ def delete_ssh(
80
80
  if not ssh_ok:
81
81
  return
82
82
 
83
- activity.status = TaskGroupActivityStatusV2.ONGOING
83
+ activity.status = TaskGroupActivityStatus.ONGOING
84
84
  activity.log = get_current_log(log_file_path)
85
85
  activity = add_commit_refresh(obj=activity, db=db)
86
86
 
@@ -88,7 +88,7 @@ def delete_ssh(
88
88
  db.commit()
89
89
  logger.debug("Task group removed from database.")
90
90
 
91
- if task_group.origin != TaskGroupV2OriginEnum.OTHER:
91
+ if task_group.origin != TaskGroupOriginEnum.OTHER:
92
92
  logger.debug(
93
93
  f"Removing remote {task_group.path=} "
94
94
  f"(with {profile.tasks_remote_dir=})."
@@ -99,7 +99,7 @@ def delete_ssh(
99
99
  )
100
100
  logger.debug(f"Remote {task_group.path=} removed.")
101
101
 
102
- activity.status = TaskGroupActivityStatusV2.OK
102
+ activity.status = TaskGroupActivityStatus.OK
103
103
  activity.log = get_current_log(log_file_path)
104
104
  activity.timestamp_ended = get_timestamp()
105
105
  activity = add_commit_refresh(obj=activity, db=db)
@@ -5,8 +5,8 @@ from tempfile import TemporaryDirectory
5
5
  from fractal_server.app.db import get_sync_db
6
6
  from fractal_server.app.models import Profile
7
7
  from fractal_server.app.models import Resource
8
- from fractal_server.app.schemas.v2 import TaskGroupActivityActionV2
9
- from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatusV2
8
+ from fractal_server.app.schemas.v2 import TaskGroupActivityAction
9
+ from fractal_server.app.schemas.v2.task_group import TaskGroupActivityStatus
10
10
  from fractal_server.logger import reset_logger_handlers
11
11
  from fractal_server.logger import set_logger
12
12
  from fractal_server.ssh._fabric import SingleUseFractalSSH
@@ -103,7 +103,7 @@ def reactivate_ssh(
103
103
  )
104
104
  return
105
105
 
106
- activity.status = TaskGroupActivityStatusV2.ONGOING
106
+ activity.status = TaskGroupActivityStatus.ONGOING
107
107
  activity = add_commit_refresh(obj=activity, db=db)
108
108
 
109
109
  # Prepare replacements for templates
@@ -147,7 +147,7 @@ def reactivate_ssh(
147
147
  script_dir_remote=script_dir_remote,
148
148
  prefix=(
149
149
  f"{int(time.time())}_"
150
- f"{TaskGroupActivityActionV2.REACTIVATE}"
150
+ f"{TaskGroupActivityAction.REACTIVATE}"
151
151
  ),
152
152
  fractal_ssh=fractal_ssh,
153
153
  logger_name=LOGGER_NAME,
@@ -172,7 +172,7 @@ def reactivate_ssh(
172
172
  )
173
173
  logger.info("end - install from pip freeze")
174
174
  activity.log = get_current_log(log_file_path)
175
- activity.status = TaskGroupActivityStatusV2.OK
175
+ activity.status = TaskGroupActivityStatus.OK
176
176
  activity.timestamp_ended = get_timestamp()
177
177
  activity = add_commit_refresh(obj=activity, db=db)
178
178
  task_group.active = True