From 719669f40924f6bd30bff644f722ab88c15bef6a Mon Sep 17 00:00:00 2001 From: Chris Church Date: Tue, 6 Jan 2015 17:24:50 -0500 Subject: [PATCH] Show formatted output instead of raw HTML for job stdout in browsable API. --- awx/api/views.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/awx/api/views.py b/awx/api/views.py index 9e1dabc501..f430025886 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -20,6 +20,7 @@ from django.db.models import Q, Count, Sum from django.db import IntegrityError, transaction from django.shortcuts import get_object_or_404 from django.utils.datastructures import SortedDict +from django.utils.safestring import mark_safe from django.utils.timezone import now from django.views.decorators.csrf import csrf_exempt @@ -2263,7 +2264,7 @@ class UnifiedJobStdout(RetrieveAPIView): content, start, end, absolute_end = unified_job.result_stdout_raw_limited(start_line, end_line) if content_only: headers = conv.produce_headers() - body = conv.convert(content, full=False) + body = conv.convert(content, full=False) # Escapes any HTML that may be in content. data = '\n'.join([headers, body]) data = '
%s
' % data else: @@ -2271,6 +2272,8 @@ class UnifiedJobStdout(RetrieveAPIView): # Fix ugly grey background used by default. data = data.replace('.body_background { background-color: #AAAAAA; }', '.body_background { background-color: #f5f5f5; }') + if request.accepted_renderer.format == 'api': + return Response(mark_safe(data)) if request.accepted_renderer.format == 'json': return Response({'range': {'start': start, 'end': end, 'absolute_end': absolute_end}, 'content': body}) return Response(data)