Docstrings for Connection classes

This commit is contained in:
Honza Kral
2013-08-08 16:04:53 +02:00
parent e79afeb9c5
commit 11e5746eb1
+17
View File
@@ -10,9 +10,22 @@ tracer = logging.getLogger('elasticsearch.trace')
tracer.propagate = False
class Connection(object):
"""
Class responsible for maintaining a connection to an Elasticsearch node. It
holds persistent connection pool to it and it's main interface
(`perform_request`) is thread-safe.
Also responsible for logging.
"""
transport_schema = 'http'
def __init__(self, host='localhost', port=9200, url_prefix='', timeout=10, **kwargs):
"""
:arg host: hostname of the node (default: localhost)
:arg port: port to use (default: 9200)
:arg url_prefix: optional url prefix for elasticsearch
:arg timeout: default timeout in seconds (default: 10)
"""
self.host = '%s://%s:%s' % (self.transport_schema, host, port)
if url_prefix:
url_prefix = '/' + url_prefix.strip('/')
@@ -23,6 +36,7 @@ class Connection(object):
return '<%s: %s>' % (self.__class__.__name__, self.host)
def log_request_success(self, method, full_url, path, body, status_code, response, duration):
""" Log a successful API call. """
def _pretty_json(data):
# pretty JSON in tracer curl logs
try:
@@ -50,12 +64,14 @@ class Connection(object):
tracer.debug('# [%s] (%.3fs)\n#%s', status_code, duration, _pretty_json(response).replace('\n', '\n#') if response else '')
def log_request_fail(self, method, full_url, duration, status_code=None, exception=None):
""" Log an unsuccessful API call. """
logger.warning(
'%s %s [status:%s request:%.3fs]', method, full_url,
status_code or 'N/A', duration, exc_info=exception is not None
)
def _raise_error(self, status_code, raw_data):
""" Locate appropriate exception and raise it. """
error_message = raw_data
additional_info = None
try:
@@ -69,6 +85,7 @@ class Connection(object):
class RequestsHttpConnection(Connection):
""" Connection using the `requests` library. """
def __init__(self, **kwargs):
super(RequestsHttpConnection, self).__init__(**kwargs)
self.session = requests.session()