Add verbose error reporting when the document upload task fails.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2018-04-29 23:12:24 -04:00
parent 83ca7a7476
commit 430c7b8c14

View File

@@ -1,5 +1,7 @@
from __future__ import absolute_import, unicode_literals
import logging
from django.contrib import messages
from django.http import HttpResponseRedirect, JsonResponse
from django.shortcuts import get_object_or_404
@@ -40,6 +42,8 @@ from .permissions import (
from .tasks import task_check_interval_source, task_source_handle_upload
from .utils import get_class, get_form_class, get_upload_form_class
logger = logging.getLogger(__name__)
class SourceLogListView(SingleObjectListView):
view_permission = permission_sources_setup_view
@@ -241,30 +245,44 @@ class UploadInteractiveView(UploadBaseView):
except Exception as exception:
messages.error(self.request, exception)
task_source_handle_upload.apply_async(
kwargs=dict(
description=forms['document_form'].cleaned_data.get('description'),
document_type_id=self.document_type.pk,
expand=expand,
label=label,
language=forms['document_form'].cleaned_data.get('language'),
querystring=uri_to_iri(
'?{}&{}'.format(
self.request.GET.urlencode(), self.request.POST.urlencode()
)
),
shared_uploaded_file_id=shared_uploaded_file.pk,
source_id=self.source.pk,
user_id=user_id,
try:
task_source_handle_upload.apply_async(
kwargs=dict(
description=forms['document_form'].cleaned_data.get('description'),
document_type_id=self.document_type.pk,
expand=expand,
label=label,
language=forms['document_form'].cleaned_data.get('language'),
querystring=uri_to_iri(
'?{}&{}'.format(
self.request.GET.urlencode(), self.request.POST.urlencode()
)
),
shared_uploaded_file_id=shared_uploaded_file.pk,
source_id=self.source.pk,
user_id=user_id,
)
)
)
messages.success(
self.request,
_(
'New document queued for uploaded and will be available '
'shortly.'
except Exception as exception:
message = _(
'Error executing document upload task; '
'%(exception)s, %(exception_class)s'
) % {
'exception': exception,
'exception_class': type(exception),
}
logger.critical(
message, exc_info=True
)
raise type(exception)(message)
else:
messages.success(
self.request,
_(
'New document queued for uploaded and will be available '
'shortly.'
)
)
)
return HttpResponseRedirect(
'{}?{}'.format(