From 88128a2e87f0ec023dba10a34d723101009ce6d1 Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Wed, 22 Jul 2015 16:35:03 -0400 Subject: [PATCH] Return useful errors when downloading stdout --- awx/api/views.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/awx/api/views.py b/awx/api/views.py index 9fced1e980..5d6fe0f011 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -2846,10 +2846,13 @@ class UnifiedJobStdout(RetrieveAPIView): elif request.accepted_renderer.format == 'ansi': return Response(unified_job.result_stdout_raw) elif request.accepted_renderer.format == 'txt_download': - content_fd = open(unified_job.dump_result_stdout(), 'r') - response = HttpResponse(FileWrapper(content_fd), content_type='text/plain') - response["Content-Disposition"] = 'attachment; filename="job_%s.txt"' % str(unified_job.id) - return response + try: + content_fd = open(unified_job.dump_result_stdout(), 'r') + response = HttpResponse(FileWrapper(content_fd), content_type='text/plain') + response["Content-Disposition"] = 'attachment; filename="job_%s.txt"' % str(unified_job.id) + return response + except Exception, e: + return Response({"error": "Error generating stdout download file: %s" % str(e)}, status=status.HTTP_400_BAD_REQUEST) else: return super(UnifiedJobStdout, self).retrieve(request, *args, **kwargs)