summaryrefslogtreecommitdiffstats
path: root/scripts/external_libs/elasticsearch/elasticsearch/connection/pooling.py
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2017-01-22 16:20:45 +0200
committerimarom <imarom@cisco.com>2017-01-22 16:20:45 +0200
commit904eacd9be1230efb7ae0ab7997ec131b588ec8a (patch)
tree8e4bcd1b1a5f683efdb8f3eeb962acefc3201961 /scripts/external_libs/elasticsearch/elasticsearch/connection/pooling.py
parentd2f1c8451e2e8ffc47b208f68f9b16697d706d60 (diff)
parentb81cdb6c2d6d118c1c346e7c8dae6a5e747d867d (diff)
Merge branch 'master' into capture
Signed-off-by: imarom <imarom@cisco.com> Conflicts: scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_client.py scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_jsonrpc_client.py scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_port.py src/main_dpdk.cpp
Diffstat (limited to 'scripts/external_libs/elasticsearch/elasticsearch/connection/pooling.py')
-rw-r--r--scripts/external_libs/elasticsearch/elasticsearch/connection/pooling.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/scripts/external_libs/elasticsearch/elasticsearch/connection/pooling.py b/scripts/external_libs/elasticsearch/elasticsearch/connection/pooling.py
new file mode 100644
index 00000000..3115e7c2
--- /dev/null
+++ b/scripts/external_libs/elasticsearch/elasticsearch/connection/pooling.py
@@ -0,0 +1,33 @@
+try:
+ import queue
+except ImportError:
+ import Queue as queue
+from .base import Connection
+
+
+class PoolingConnection(Connection):
+ """
+ Base connection class for connections that use libraries without thread
+ safety and no capacity for connection pooling. To use this just implement a
+ ``_make_connection`` method that constructs a new connection and returns
+ it.
+ """
+ def __init__(self, *args, **kwargs):
+ self._free_connections = queue.Queue()
+ super(PoolingConnection, self).__init__(*args, **kwargs)
+
+ def _get_connection(self):
+ try:
+ return self._free_connections.get_nowait()
+ except queue.Empty:
+ return self._make_connection()
+
+ def _release_connection(self, con):
+ self._free_connections.put(con)
+
+ def close(self):
+ """
+ Explicitly close connection
+ """
+ pass
+