Skip to content

Commit 7d83a69

Browse files
authored
Adding explicit parameters for AIOHttpConnection and AsyncTransport (opensearch-project#276)
Signed-off-by: saimedhi <saimedhi@amazon.com> Signed-off-by: saimedhi <saimedhi@amazon.com>
1 parent 5c1c890 commit 7d83a69

File tree

4 files changed

+45
-3
lines changed

4 files changed

+45
-3
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
2222
- Add release workflows ([#240](https://github.com/opensearch-project/opensearch-py/pull/240))
2323
- Added SigV4 support for Async Opensearch Client ([#254](https://github.com/opensearch-project/opensearch-py/pull/254))
2424
- Compatibility with OpenSearch 2.1.0 - 2.4.1 ([#257](https://github.com/opensearch-project/opensearch-py/pull/257))
25+
- Adding explicit parameters for AIOHttpConnection and AsyncTransport ([#276](https://github.com/opensearch-project/opensearch-py/pull/276))
2526
### Changed
2627
- Updated getting started to user guide ([#233](https://github.com/opensearch-project/opensearch-py/pull/233))
2728
- Updated CA certificate handling to check OpenSSL environment variables before defaulting to certifi ([#196](https://github.com/opensearch-project/opensearch-py/pull/196))

opensearchpy/_async/http_aiohttp.py

+4
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ def __init__(
7474
self,
7575
host="localhost",
7676
port=None,
77+
url_prefix="",
78+
timeout=10,
7779
http_auth=None,
7880
use_ssl=False,
7981
verify_certs=VERIFY_CERTS_DEFAULT,
@@ -130,6 +132,8 @@ def __init__(
130132
super().__init__(
131133
host=host,
132134
port=port,
135+
url_prefix=url_prefix,
136+
timeout=timeout,
133137
use_ssl=use_ssl,
134138
headers=headers,
135139
http_compress=http_compress,

opensearchpy/_async/http_aiohttp.pyi

+2
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ class AIOHttpConnection(AsyncConnection):
4949
self,
5050
host: str = ...,
5151
port: Optional[int] = ...,
52+
url_prefix: str = ...,
53+
timeout: int = ...,
5254
http_auth: Optional[Any] = ...,
5355
use_ssl: bool = ...,
5456
verify_certs: bool = ...,

opensearchpy/_async/transport.py

+38-3
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,15 @@
3030
import sys
3131
from itertools import chain
3232

33+
from ..connection_pool import ConnectionPool
3334
from ..exceptions import (
3435
ConnectionError,
3536
ConnectionTimeout,
3637
SerializationError,
3738
TransportError,
3839
)
39-
from ..transport import Transport
40+
from ..serializer import JSONSerializer
41+
from ..transport import Transport, get_host_info
4042
from .compat import get_running_loop
4143
from .http_aiohttp import AIOHttpConnection
4244

@@ -53,7 +55,25 @@ class AsyncTransport(Transport):
5355

5456
DEFAULT_CONNECTION_CLASS = AIOHttpConnection
5557

56-
def __init__(self, hosts, *args, sniff_on_start=False, **kwargs):
58+
def __init__(
59+
self,
60+
hosts,
61+
connection_class=None,
62+
connection_pool_class=ConnectionPool,
63+
host_info_callback=get_host_info,
64+
sniff_on_start=False,
65+
sniffer_timeout=None,
66+
sniff_timeout=0.1,
67+
sniff_on_connection_fail=False,
68+
serializer=JSONSerializer(),
69+
serializers=None,
70+
default_mimetype="application/json",
71+
max_retries=3,
72+
retry_on_status=(502, 503, 504),
73+
retry_on_timeout=False,
74+
send_get_body_as="GET",
75+
**kwargs
76+
):
5777
"""
5878
:arg hosts: list of dictionaries, each containing keyword arguments to
5979
create a `connection_class` instance
@@ -97,7 +117,22 @@ def __init__(self, hosts, *args, sniff_on_start=False, **kwargs):
97117
self._sniff_on_start_event = None # type: asyncio.Event
98118

99119
super(AsyncTransport, self).__init__(
100-
*args, hosts=[], sniff_on_start=False, **kwargs
120+
hosts=[],
121+
connection_class=connection_class,
122+
connection_pool_class=connection_pool_class,
123+
host_info_callback=host_info_callback,
124+
sniff_on_start=False,
125+
sniffer_timeout=sniffer_timeout,
126+
sniff_timeout=sniff_timeout,
127+
sniff_on_connection_fail=sniff_on_connection_fail,
128+
serializer=serializer,
129+
serializers=serializers,
130+
default_mimetype=default_mimetype,
131+
max_retries=max_retries,
132+
retry_on_status=retry_on_status,
133+
retry_on_timeout=retry_on_timeout,
134+
send_get_body_as=send_get_body_as,
135+
**kwargs
101136
)
102137

103138
# Since we defer connections / sniffing to not occur

0 commit comments

Comments
 (0)