"""Helping functions for ows-request.""" from owsrequest import request from charts.connectors import sentry from charts.config import SENTRY_MESSAGE_FORMAT def get(*args, **kwargs): """Make a request using ows-request, logs failures to Sentry.""" report_failures_to_sentry = kwargs.pop('report_failures_to_sentry', True) response = request.get(*args, **kwargs) log_response_if_error(*args, response, report_failures_to_sentry) return response def log_response_if_error(service, resource, response, report_failures_to_sentry=True): """Log a response to Sentry for a service and resource if it failed.""" if response.status_code != 200 and report_failures_to_sentry: sentry.send_response_to_sentry( response, SENTRY_MESSAGE_FORMAT.format( service=service, resource=resource ), extra={ 'service': service, 'resource': resource, 'reason': response.reason, 'correlation_id': response.headers.get('correlation-id', None) })