mirror of
https://github.com/ansible/awx.git
synced 2026-05-14 21:07:39 -02:30
calls to redaction mechanism placed in correct places
* access to _raw stdout methods/variables remains raw * wrapped _raw access in redaction where needed
This commit is contained in:
@@ -2238,7 +2238,6 @@ class UnifiedJobStdout(RetrieveAPIView):
|
|||||||
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, absolute_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)
|
||||||
content = UriCleaner.remove_sensitive(content)
|
|
||||||
if content_only:
|
if content_only:
|
||||||
headers = conv.produce_headers()
|
headers = conv.produce_headers()
|
||||||
body = conv.convert(content, full=False) # Escapes any HTML that may be in content.
|
body = conv.convert(content, full=False) # Escapes any HTML that may be in content.
|
||||||
@@ -2255,7 +2254,7 @@ class UnifiedJobStdout(RetrieveAPIView):
|
|||||||
return Response({'range': {'start': start, 'end': end, 'absolute_end': absolute_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(UriCleaner.remove_sensitive(unified_job.result_stdout_raw))
|
||||||
else:
|
else:
|
||||||
return super(UnifiedJobStdout, self).retrieve(request, *args, **kwargs)
|
return super(UnifiedJobStdout, self).retrieve(request, *args, **kwargs)
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ from djcelery.models import TaskMeta
|
|||||||
from awx.main.models.base import *
|
from awx.main.models.base import *
|
||||||
from awx.main.models.schedules import Schedule
|
from awx.main.models.schedules import Schedule
|
||||||
from awx.main.utils import decrypt_field, get_type_for_model, emit_websocket_notification, _inventory_updates
|
from awx.main.utils import decrypt_field, get_type_for_model, emit_websocket_notification, _inventory_updates
|
||||||
|
from awx.main.redact import UriCleaner
|
||||||
|
|
||||||
__all__ = ['UnifiedJobTemplate', 'UnifiedJob']
|
__all__ = ['UnifiedJobTemplate', 'UnifiedJob']
|
||||||
|
|
||||||
@@ -618,7 +619,7 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
|||||||
@property
|
@property
|
||||||
def result_stdout(self):
|
def result_stdout(self):
|
||||||
ansi_escape = re.compile(r'\x1b[^m]*m')
|
ansi_escape = re.compile(r'\x1b[^m]*m')
|
||||||
return ansi_escape.sub('', self.result_stdout_raw)
|
return ansi_escape.sub('', UriCleaner.remove_sensitive(self.result_stdout_raw))
|
||||||
|
|
||||||
def result_stdout_raw_limited(self, start_line=0, end_line=None):
|
def result_stdout_raw_limited(self, start_line=0, end_line=None):
|
||||||
return_buffer = u""
|
return_buffer = u""
|
||||||
@@ -641,7 +642,7 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
|||||||
|
|
||||||
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, absolute_end = self.result_stdout_raw_limited(start_line, end_line)
|
content, start, end, absolute_end = UriCleaner.remove_sensitive(self.result_stdout_raw_limited(start_line, end_line))
|
||||||
return ansi_escape.sub('', content), start, end, absolute_end
|
return ansi_escape.sub('', content), start, end, absolute_end
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
Reference in New Issue
Block a user