From 0332a1c2b74fa8398a367c635657693137d04698 Mon Sep 17 00:00:00 2001
From: Samuel Gaist <samuel.gaist@idiap.ch>
Date: Thu, 25 Oct 2018 11:42:35 +0200
Subject: [PATCH] [backend][helpers] Simply block canceling and failure code

---
 beat/web/backend/helpers.py | 27 +++++----------------------
 1 file changed, 5 insertions(+), 22 deletions(-)

diff --git a/beat/web/backend/helpers.py b/beat/web/backend/helpers.py
index 98f18efec..f9c7541d5 100755
--- a/beat/web/backend/helpers.py
+++ b/beat/web/backend/helpers.py
@@ -712,9 +712,7 @@ def update_job(job):
             cached_file.update(Block.FAILED)
 
         # Update the block
-        job.block.status = Block.FAILED
-        job.block.end_date = job.end_date
-        job.block.save()
+        job.block.set_failed(job.end_date)
 
         # Cancel all the remaining blocks of the experiment
         splits_to_cancel.extend(cancel_all_blocks(job.block.experiment))
@@ -728,9 +726,7 @@ def update_job(job):
             mirror_job.end_date = job.end_date
             mirror_job.save()
 
-            mirror_job.block.status = Block.FAILED
-            mirror_job.block.end_date = job.end_date
-            mirror_job.block.save()
+            mirror_job.block.set_failed(job.end_date)
 
             # Cancel all the remaining blocks of the experiment
             splits_to_cancel.extend(cancel_all_blocks(mirror_job.block.experiment))
@@ -795,9 +791,7 @@ def update_job(job):
             cached_file.update(Block.CANCELLED)
 
         # Update the block
-        job.block.status = Block.CANCELLED
-        job.block.end_date = job.end_date
-        job.block.save()
+        job.block.set_canceled(job.end_date)
 
         # Update the experiment
         update_experiment(job.block.experiment)
@@ -874,12 +868,7 @@ def cancel_all_blocks(experiment):
 
         # (If possible) Mark the block as cancelled
         if block.job.splits.filter(status=JobSplit.CANCELLING).count() == 0:
-            block.status = Block.CANCELLED
-            block.end_date = datetime.now()
-            if block.start_date is None:
-                block.start_date = block.end_date
-            block.save()
-
+            block.set_canceled()
             block.job.delete()
 
 
@@ -888,15 +877,9 @@ def cancel_all_blocks(experiment):
                                                .filter(job__mirror=True)
 
     for block in mirror_blocks_to_cancel:
-        block.status = Block.CANCELLED
-        block.end_date = datetime.now()
-        if block.start_date is None:
-            block.start_date = block.end_date
-        block.save()
-
+        block.set_canceled()
         block.job.delete()
 
-
     return splits_to_cancel
 
 
-- 
GitLab