def task_delete(self, uuid, status=None): session = get_session() with session.begin(): query = base_query = (self.model_query( models.Task).filter_by(uuid=uuid)) if status is not None: query = base_query.filter_by(status=status) (self.model_query(models.WorkloadData).filter_by( task_uuid=uuid).delete(synchronize_session=False)) (self.model_query(models.Workload).filter_by( task_uuid=uuid).delete(synchronize_session=False)) (self.model_query(models.Subtask).filter_by(task_uuid=uuid).delete( synchronize_session=False)) (self.model_query(models.Tag).filter_by( uuid=uuid, type=consts.TagType.TASK).delete(synchronize_session=False)) count = query.delete(synchronize_session=False) if not count: if status is not None: task = base_query.first() if task: raise exceptions.TaskInvalidStatus(uuid=uuid, require=status, actual=task.status) raise exceptions.TaskNotFound(uuid=uuid)
def task_delete(self, uuid, status=None): session = get_session() with session.begin(): query = base_query = self.model_query(models.Task).\ filter_by(uuid=uuid) if status is not None: query = base_query.filter_by(status=status) self.model_query(models.TaskResult).\ filter_by(task_uuid=uuid).\ delete(synchronize_session=False) count = query.delete(synchronize_session=False) if not count: if status is not None: task = base_query.first() if task: raise exceptions.TaskInvalidStatus(uuid=uuid, require=status, actual=task.status) raise exceptions.TaskNotFound(uuid=uuid)