diff --git a/.gitignore b/.gitignore index 7a0e2826ec164fb8f0e878360c63c161c17f7ef8..7beda8d3e0c04267d13a1eb6e190f2da759f3e31 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ **/__pycache__/ *.sql /atdb/run.sh +/.idea/ +/.idea \ No newline at end of file diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py index 4a79cd4eb2f899c5d1ba58198fbdf4faf70607da..9142b20908800a72fbcdf8f49c26bf7f12d69245 100644 --- a/atdb/taskdatabase/models.py +++ b/atdb/taskdatabase/models.py @@ -102,7 +102,6 @@ class Activity(models.Model): """ sas_id = models.CharField(db_index=True, verbose_name="SAS_ID", max_length=15, blank=True, null=True) - #workflow = models.ForeignKey(Workflow, related_name='activities', on_delete=models.DO_NOTHING, null=True, blank=True) workflow_id = models.IntegerField(null=True) project = models.CharField(max_length=100, blank=True, null=True, default="unknown") filter = models.CharField(max_length=30, blank=True, null=True) @@ -204,7 +203,7 @@ class Task(models.Model): self.calculated_qualities = qualities.calculate_qualities(self, tasks_for_this_sasid, quality_thresholds) # make sure that every task has an activity (backward compatibility) - # TODO: uncomment to enable SDC-1188 functionality + # TODO: uncomment to enable SDC-1188 functionality for deploy STEP 2 # associate_task_with_activity(self) # remark: diff --git a/atdb/taskdatabase/services/activities.py b/atdb/taskdatabase/services/activities_handler.py similarity index 92% rename from atdb/taskdatabase/services/activities.py rename to atdb/taskdatabase/services/activities_handler.py index acc36aa434cb019b46be1103ad1ec01d8e5df28a..1f215340685bc9cf2fee19fa673ba05b3b07da93 100644 --- a/atdb/taskdatabase/services/activities.py +++ b/atdb/taskdatabase/services/activities_handler.py @@ -49,10 +49,10 @@ def calculate_finished_fraction(this_task): for task in tasks: if task.status == State.FINISHED.value: - size_archived = size_archived + task.size_to_process + size_archived += task.size_to_process else: - size_remaining = size_remaining + task.size_to_process - total_size = total_size + task.size_to_process + size_remaining += task.size_to_process + total_size += task.size_to_process result = {} try: @@ -82,9 +82,6 @@ def update_activity(task): """ logger.info(f'update_activity for task {task.id} with sas_id {task.sas_id} and status {task.status}') - # do not save the task, - # because this function is called from signals where the task.save is delayed on purpose to avoid recursion - #activity = associate_task_with_activity(task, save_task=False) activity = task.activity # depending on the status transition, perform calculations @@ -121,7 +118,7 @@ def update_activity(task): # calculate the finished fraction, this is only used on the Failures page - if 'failed' in task.status: + if State.FAILED.value in task.status: logger.info(f'- calculate_finished_fraction') result = calculate_finished_fraction(task) activity.finished_fraction = result['fraction'] diff --git a/atdb/taskdatabase/services/signals.py b/atdb/taskdatabase/services/signals.py index 0bf04ac48445beffac0de98df8ae183b9a90a399..6a30a478804785838e6f74b8f183ecb95d69fef2 100644 --- a/atdb/taskdatabase/services/signals.py +++ b/atdb/taskdatabase/services/signals.py @@ -39,7 +39,7 @@ def handle_pre_save(sender, **kwargs): status = str(task.status) new_status = str(task.new_status) - if (new_status!=None) and (status!=new_status): + if (new_status is not None) and (status!=new_status): # set the new status task.status = new_status @@ -48,10 +48,6 @@ def handle_pre_save(sender, **kwargs): myStatus = Status(name=new_status, task=task) myStatus.save() - - # temporarily disconnect to avoid recursion. - # update_activity(task) - disconnect_signals() task.save() connect_signals() diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py index 0acca01c37cea68132cceeb756aac8bc710880b8..9f0f72075654e187930c81d6e50b4fcc7d8c3f29 100644 --- a/atdb/taskdatabase/urls.py +++ b/atdb/taskdatabase/urls.py @@ -131,9 +131,9 @@ urlpatterns = [ path('tasks/<int:pk>/query-purge/<purge_policy>/<query_params>', views.PurgeQuery, name='query-purge'), #some migration and repair endpoints - path('tasks/associate-activities/', views.AssociateActivities, name='associate-activities'), - path('tasks/update-all-activities/', views.UpdateAllActivities, name='update-all-activities'), - path('tasks/update-failed-tasks/', views.UpdateFailedTasks, name='update-failed-tasks'), - path('tasks/update-ingestq-tasks/', views.UpdateIngestQTasks, name='update-ingestq-tasks'), - path('tasks/update-finished-tasks/', views.UpdateFinishedTasks, name='update-finished-tasks'), + path('tasks/repair/associate-activities/', views.AssociateActivities, name='associate-activities'), + path('tasks/repair/update-all-activities/', views.UpdateAllActivities, name='update-all-activities'), + path('tasks/repair/update-failed-tasks/', views.UpdateFailedTasks, name='update-failed-tasks'), + path('tasks/repair/update-ingestq-tasks/', views.UpdateIngestQTasks, name='update-ingestq-tasks'), + path('tasks/repair/update-finished-tasks/', views.UpdateFinishedTasks, name='update-finished-tasks'), ]