mirror of
https://github.com/ansible/awx.git
synced 2026-03-09 13:39:27 -02:30
Add absolute end value for limited json stdout view
This commit is contained in:
@@ -1707,7 +1707,7 @@ class UnifiedJobStdout(RetrieveAPIView):
|
|||||||
dark_bg = (content_only and dark) or (not content_only and (dark or not dark_val))
|
dark_bg = (content_only and dark) or (not content_only and (dark or not dark_val))
|
||||||
conv = Ansi2HTMLConverter(scheme=scheme, dark_bg=dark_bg,
|
conv = Ansi2HTMLConverter(scheme=scheme, dark_bg=dark_bg,
|
||||||
title=get_view_name(self.__class__))
|
title=get_view_name(self.__class__))
|
||||||
content, start, end = unified_job.result_stdout_raw_limited(start_line, end_line)
|
content, start, end, absolute_end = unified_job.result_stdout_raw_limited(start_line, end_line)
|
||||||
if content_only:
|
if content_only:
|
||||||
headers = conv.produce_headers()
|
headers = conv.produce_headers()
|
||||||
body = conv.convert(content, full=False)
|
body = conv.convert(content, full=False)
|
||||||
@@ -1719,7 +1719,7 @@ class UnifiedJobStdout(RetrieveAPIView):
|
|||||||
data = data.replace('.body_background { background-color: #AAAAAA; }',
|
data = data.replace('.body_background { background-color: #AAAAAA; }',
|
||||||
'.body_background { background-color: #f5f5f5; }')
|
'.body_background { background-color: #f5f5f5; }')
|
||||||
if request.accepted_renderer.format == 'json':
|
if request.accepted_renderer.format == 'json':
|
||||||
return Response({'range': {'start': start, 'end': end}, 'content': body})
|
return Response({'range': {'start': start, 'end': end, 'absolute_end': absolute_end}, 'content': body})
|
||||||
return Response(data)
|
return Response(data)
|
||||||
elif request.accepted_renderer.format == 'ansi':
|
elif request.accepted_renderer.format == 'ansi':
|
||||||
return Response(unified_job.result_stdout_raw)
|
return Response(unified_job.result_stdout_raw)
|
||||||
|
|||||||
@@ -524,6 +524,7 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
|||||||
if end_line is not None:
|
if end_line is not None:
|
||||||
end_line = int(end_line)
|
end_line = int(end_line)
|
||||||
stdout_lines = self.result_stdout_raw_handle().readlines()
|
stdout_lines = self.result_stdout_raw_handle().readlines()
|
||||||
|
absolute_end = len(stdout_lines)
|
||||||
for line in stdout_lines[int(start_line):end_line]:
|
for line in stdout_lines[int(start_line):end_line]:
|
||||||
return_buffer += line
|
return_buffer += line
|
||||||
if int(start_line) < 0:
|
if int(start_line) < 0:
|
||||||
@@ -535,12 +536,12 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
|||||||
end_actual = min(int(start_line)+int(end_line), len(stdout_lines))
|
end_actual = min(int(start_line)+int(end_line), len(stdout_lines))
|
||||||
else:
|
else:
|
||||||
end_actual = len(stdout_lines)
|
end_actual = len(stdout_lines)
|
||||||
return return_buffer, start_actual, end_actual
|
return return_buffer, start_actual, end_actual, absolute_end
|
||||||
|
|
||||||
def result_stdout_limited(self, start_line=0, end_line=None):
|
def result_stdout_limited(self, start_line=0, end_line=None):
|
||||||
ansi_escape = re.compile(r'\x1b[^m]*m')
|
ansi_escape = re.compile(r'\x1b[^m]*m')
|
||||||
content, start, end = self.result_stdout_raw_limited(start_line, end_line)
|
content, start, end, absolute_end = self.result_stdout_raw_limited(start_line, end_line)
|
||||||
return ansi_escape.sub('', content), start, end
|
return ansi_escape.sub('', content), start, end, absolute_end
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def celery_task(self):
|
def celery_task(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user