From ac559ecd0a7784a52c06247e339291fce6843239 Mon Sep 17 00:00:00 2001 From: Samuel Gaist <samuel.gaist@idiap.ch> Date: Thu, 25 Oct 2018 11:42:06 +0200 Subject: [PATCH] [experiments][models][blocks] Add helper for canceling and failure --- beat/web/experiments/models/block.py | 33 ++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/beat/web/experiments/models/block.py b/beat/web/experiments/models/block.py index 38b48dbb4..9de128ce3 100755 --- a/beat/web/experiments/models/block.py +++ b/beat/web/experiments/models/block.py @@ -248,3 +248,36 @@ class Block(models.Model): def is_runnable(self): '''Checks if a block is runnable presently''' return all([ k.status == Block.DONE for k in self.dependencies.all() ]) + + + def set_canceled(self, end_date=None): + """Update the block state to canceled + + Parameters: + end_date (datetime): If provided sets the end_date otherwise + datetime.now() will be used. + """ + + self.status = Block.CANCELLED + + if end_date is None: + end_date = datetime.now() + + self.end_date = end_date + + if self.start_date is None: + self.start_date = self.end_date + + self.save() + + + def set_failed(self, end_date): + """Update the block state to failed + + Parameters: + end_date (datetime): end date on failure + """ + + self.status = Block.FAILED + self.end_date = end_date + self.save() -- GitLab