Do not warn on 404s when using HEAD method

Fixes #396
This commit is contained in:
Honza Král
2016-04-27 13:21:47 +02:00
parent f8b090c7cc
commit 418b93bfec
2 changed files with 9 additions and 0 deletions
+3
View File
@@ -77,6 +77,9 @@ class Connection(object):
def log_request_fail(self, method, full_url, body, duration, status_code=None, response=None, exception=None):
""" Log an unsuccessful API call. """
# do not log 404s on HEAD requests
if method == 'HEAD' and status_code == 404:
return
logger.warning(
'%s %s [status:%s request:%.3fs]', method, full_url,
status_code or 'N/A', duration, exc_info=exception is not None
+6
View File
@@ -126,6 +126,12 @@ class TestRequestsConnection(TestCase):
con = self._get_mock_connection(status_code=400)
self.assertRaises(RequestError, con.perform_request, 'GET', '/', {}, '')
@patch('elasticsearch.connection.base.logger')
def test_head_with_404_doesnt_get_logged(self, logger):
con = self._get_mock_connection(status_code=404)
self.assertRaises(NotFoundError, con.perform_request, 'HEAD', '/', {}, '')
self.assertEquals(0, logger.warning.call_count)
@patch('elasticsearch.connection.base.tracer')
@patch('elasticsearch.connection.base.logger')
def test_failed_request_logs_and_traces(self, logger, tracer):