Skip to content

Commit

Permalink
Default values for logging parameter to facilitate regex
Browse files Browse the repository at this point in the history
  • Loading branch information
marblestation committed Nov 27, 2019
1 parent 64e19da commit 6020f9c
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions solr/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@ class SolrInterface(Resource):
def __init__(self, *args, **kwargs):
Resource.__init__(self, *args, **kwargs)
self._host = None
self.internal_logging_params = ('X-Amzn-Trace-Id', 'Authorization', 'X-Forwarded-Authorization') # Pass to solr/clean from response, only for logging purposes
self.internal_logging_params = {
'X-Amzn-Trace-Id': 'Root=-',
'Authorization': 'Bearer:-',
'X-Forwarded-Authorization': 'Bearer:-',
} # Pass to solr/clean from response, only for logging purposes

def get(self):
query, headers = self.cleanup_solr_request(dict(request.args))
Expand Down Expand Up @@ -134,7 +138,7 @@ def cleanup_solr_response_text(self, text):
try:
r = json.loads(text)
params = r.get('responseHeader', {}).get('params', {})
for internal_param in self.internal_logging_params:
for internal_param in self.internal_logging_params.keys():
params.pop(internal_param, None)
clean_text = unicode(json.dumps(r)+'\n')
return clean_text
Expand Down Expand Up @@ -163,10 +167,13 @@ def cleanup_solr_request(self, payload, user_id=None):

# trace id, Host, token header are important for proper routing/logging
headers['Host'] = self.get_host(current_app.config.get(self.handler))
for internal_param in self.internal_logging_params:
for internal_param, default in self.internal_logging_params.iteritems():
if internal_param in request.headers:
payload[internal_param] = request.headers[internal_param]
headers[internal_param] = request.headers[internal_param]
else:
# Make sure solr always reports the parameter to facilitate regex logging parsing
payload[internal_param] = default

payload['wt'] = 'json'
max_rows = current_app.config.get('SOLR_SERVICE_MAX_ROWS', 100)
Expand Down Expand Up @@ -330,9 +337,10 @@ def _get_stream_data(self, params, streams, request):
new_headers = {'Authorization': request.headers['Authorization']}
# trace id, Host, token header are important for proper routing/logging
new_headers['Host'] = self.get_host(current_app.config.get(self.handler))
for internal_param in self.internal_logging_params:
for internal_param in self.internal_logging_params.keys():
if internal_param in request.headers:
new_headers[internal_param] = request.headers[internal_param]

docs = None

if prefix == 'library':
Expand Down

0 comments on commit 6020f9c

Please sign in to comment.