Skip to content
This repository was archived by the owner on Oct 29, 2024. It is now read-only.

Commit 6ba88c0

Browse files
committed
feat: Add custom socket_options
1 parent dec2f05 commit 6ba88c0

File tree

2 files changed

+28
-15
lines changed

2 files changed

+28
-15
lines changed

influxdb/client.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ class InfluxDBClient(object):
8888
:param headers: headers to add to Requests, will add 'Content-Type'
8989
and 'Accept' unless these are already present, defaults to {}
9090
:type headers: dict
91-
:param socket_options: use custom tcp socket options, If not specified, then defaults are loaded from
91+
:param socket_options: use custom tcp socket options,
92+
If not specified, then defaults are loaded from
9293
``HTTPConnection.default_socket_options``
9394
:type socket_options: list
9495
@@ -134,7 +135,7 @@ def __init__(self,
134135
session = requests.Session()
135136

136137
self._session = session
137-
adapter = SocketOptionsAdapter(
138+
adapter = _SocketOptionsAdapter(
138139
pool_connections=int(pool_size),
139140
pool_maxsize=int(pool_size),
140141
socket_options=socket_options
@@ -1258,12 +1259,14 @@ def _msgpack_parse_hook(code, data):
12581259
return msgpack.ExtType(code, data)
12591260

12601261

1261-
class SocketOptionsAdapter(HTTPAdapter):
1262+
class _SocketOptionsAdapter(HTTPAdapter):
1263+
"""_SocketOptionsAdapter injects socket_options into HTTP Adapter."""
1264+
12621265
def __init__(self, *args, **kwargs):
12631266
self.socket_options = kwargs.pop("socket_options", None)
1264-
super(SocketOptionsAdapter, self).__init__(*args, **kwargs)
1267+
super(_SocketOptionsAdapter, self).__init__(*args, **kwargs)
12651268

12661269
def init_poolmanager(self, *args, **kwargs):
12671270
if self.socket_options is not None:
12681271
kwargs["socket_options"] = self.socket_options
1269-
super(SocketOptionsAdapter, self).init_poolmanager(*args, **kwargs)
1272+
super(_SocketOptionsAdapter, self).init_poolmanager(*args, **kwargs)

influxdb/tests/client_test.py

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1500,28 +1500,38 @@ def test_auth_token(self):
15001500
"my-token")
15011501

15021502
def test_custom_socket_options(self):
1503-
test_socket_options = HTTPConnection.default_socket_options + [(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1),
1504-
(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 60),
1505-
(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 15)]
1503+
"""Test custom socket options."""
1504+
test_socket_options = HTTPConnection.default_socket_options + \
1505+
[(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1),
1506+
(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 60),
1507+
(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 15)]
15061508

1507-
cli = InfluxDBClient(username=None, password=None, socket_options=test_socket_options)
1509+
cli = InfluxDBClient(username=None, password=None,
1510+
socket_options=test_socket_options)
15081511

1509-
self.assertEquals(cli._session.adapters.get("http://").socket_options, test_socket_options)
1510-
self.assertEquals(cli._session.adapters.get("http://").poolmanager.connection_pool_kw.get("socket_options"),
1512+
self.assertEquals(cli._session.adapters.get("http://").socket_options,
1513+
test_socket_options)
1514+
self.assertEquals(cli._session.adapters.get("http://").poolmanager.
1515+
connection_pool_kw.get("socket_options"),
15111516
test_socket_options)
15121517

1513-
connection_pool = cli._session.adapters.get("http://").poolmanager.connection_from_url(
1518+
connection_pool = cli._session.adapters.get("http://").poolmanager \
1519+
.connection_from_url(
15141520
url="http://localhost:8086")
15151521
new_connection = connection_pool._new_conn()
15161522
self.assertEquals(new_connection.socket_options, test_socket_options)
15171523

15181524
def test_none_socket_options(self):
1525+
"""Test default socket options."""
15191526
cli = InfluxDBClient(username=None, password=None)
1520-
self.assertEquals(cli._session.adapters.get("http://").socket_options, None)
1521-
connection_pool = cli._session.adapters.get("http://").poolmanager.connection_from_url(
1527+
self.assertEquals(cli._session.adapters.get("http://").socket_options,
1528+
None)
1529+
connection_pool = cli._session.adapters.get("http://").poolmanager \
1530+
.connection_from_url(
15221531
url="http://localhost:8086")
15231532
new_connection = connection_pool._new_conn()
1524-
self.assertEquals(new_connection.socket_options, HTTPConnection.default_socket_options)
1533+
self.assertEquals(new_connection.socket_options,
1534+
HTTPConnection.default_socket_options)
15251535

15261536

15271537
class FakeClient(InfluxDBClient):

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy