From 4869ddd3bca214bd9b29a40a87c62f67ae8c68e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20M=C3=A9nager?= <herve.menager@pasteur.fr>
Date: Thu, 16 Apr 2020 16:00:40 +0200
Subject: [PATCH] write full traceback in the job log in case of MonitorTask
 failure

WIP on #205
---
 ippisite/ippisite/decorator.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/ippisite/ippisite/decorator.py b/ippisite/ippisite/decorator.py
index af09a558..ffd9936c 100644
--- a/ippisite/ippisite/decorator.py
+++ b/ippisite/ippisite/decorator.py
@@ -1,7 +1,9 @@
-from ippidb.models import Job
+import traceback
+
 from celery import Task, states
 from django_celery_results.models import TaskResult
 
+from ippidb.models import Job
 
 class AlreadyExistError(Exception):
     pass
@@ -42,7 +44,7 @@ class MonitorTask(Task):
         super(MonitorTask, self).on_success(retval, task_id, args, kwargs)
 
     def on_failure(self, exc, task_id, args, kwargs, einfo):
-        self.write(std_err=exc)
+        self.write(std_err=''.join(traceback.format_tb(einfo.tb)))
         super(MonitorTask, self).on_failure(exc, task_id, args, kwargs, einfo)
 
     def update_state(self, task_id=None, state=None, meta=None, **kwargs):
-- 
GitLab