Skip to content

Commit d0f97d9

Browse files
committed
Add support for pre-configured pool manager
1 parent a08340f commit d0f97d9

3 files changed

Lines changed: 29 additions & 20 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
- Added support for pre-configured pool managers
11+
1012
## [2.0.0] - 2024-08-22
1113

1214
- Migrated to [openapi-generator](https://github.com/OpenAPITools/openapi-generator)

sensorpush_api/configuration.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ def __init__(self, host=None,
8484
server_index=None, server_variables=None,
8585
server_operation_index=None, server_operation_variables=None,
8686
ssl_ca_cert=None,
87+
pool_manager=None
8788
) -> None:
8889
"""Constructor
8990
"""
@@ -199,6 +200,10 @@ def __init__(self, host=None,
199200
"""date format
200201
"""
201202

203+
self.pool_manager = pool_manager
204+
"""Provide a pre-configured pool manager
205+
"""
206+
202207
def __deepcopy__(self, memo):
203208
cls = self.__class__
204209
result = cls.__new__(cls)

sensorpush_api/rest.py

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -52,29 +52,31 @@ def __init__(self, configuration, pools_size=4, maxsize=None, trust_env=False) -
5252
if maxsize is None:
5353
maxsize = configuration.connection_pool_maxsize
5454

55-
ssl_context = ssl.create_default_context(cafile=configuration.ssl_ca_cert)
56-
if configuration.cert_file:
57-
ssl_context.load_cert_chain(
58-
configuration.cert_file, keyfile=configuration.key_file
59-
)
60-
61-
if not configuration.verify_ssl:
62-
ssl_context.check_hostname = False
63-
ssl_context.verify_mode = ssl.CERT_NONE
64-
65-
connector = aiohttp.TCPConnector(
66-
limit=maxsize,
67-
ssl=ssl_context
68-
)
69-
7055
self.proxy = configuration.proxy
7156
self.proxy_headers = configuration.proxy_headers
7257

73-
# https pool manager
74-
self.pool_manager = aiohttp.ClientSession(
75-
connector=connector,
76-
trust_env=trust_env,
77-
)
58+
self.pool_manager = configuration.pool_manager
59+
if self.pool_manager is None:
60+
ssl_context = ssl.create_default_context(cafile=configuration.ssl_ca_cert)
61+
if configuration.cert_file:
62+
ssl_context.load_cert_chain(
63+
configuration.cert_file, keyfile=configuration.key_file
64+
)
65+
66+
if not configuration.verify_ssl:
67+
ssl_context.check_hostname = False
68+
ssl_context.verify_mode = ssl.CERT_NONE
69+
70+
connector = aiohttp.TCPConnector(
71+
limit=maxsize,
72+
ssl=ssl_context
73+
)
74+
75+
# https pool manager
76+
self.pool_manager = aiohttp.ClientSession(
77+
connector=connector,
78+
trust_env=trust_env,
79+
)
7880

7981
async def close(self):
8082
await self.pool_manager.close()

0 commit comments

Comments
 (0)