diff options
author | robot-kikimr-dev <robot-kikimr-dev@yandex-team.ru> | 2022-04-04 12:54:27 +0300 |
---|---|---|
committer | robot-kikimr-dev <robot-kikimr-dev@yandex-team.ru> | 2022-04-04 12:54:27 +0300 |
commit | 480f03e5a3c538cf2983c355da8663a970eca83b (patch) | |
tree | 9327b3bc3b56485df4c36110ced2863367759f2b | |
parent | 5cc5cb796ae9ded67d650fc1dd1121a61212882b (diff) | |
download | ydb-480f03e5a3c538cf2983c355da8663a970eca83b.tar.gz |
Sync YDB SDK from github
Release YDB recipe binaries
ref:900159106091011f5102f7759dc9dbb1a6650c6b
-rw-r--r-- | ydb/public/sdk/python/CHANGELOG.md | 1 | ||||
-rw-r--r-- | ydb/public/sdk/python/ydb/connection.py | 1 | ||||
-rw-r--r-- | ydb/public/sdk/python/ydb/settings.py | 28 | ||||
-rw-r--r-- | ydb/public/sdk/python/ydb/table.py | 16 | ||||
-rw-r--r-- | ydb/public/sdk/python/ydb/ydb_version.py | 2 | ||||
-rw-r--r-- | ydb/public/sdk/python/ydb_version.py | 1 |
6 files changed, 46 insertions, 3 deletions
diff --git a/ydb/public/sdk/python/CHANGELOG.md b/ydb/public/sdk/python/CHANGELOG.md index 16975ee4b01..e39d0ae2f79 100644 --- a/ydb/public/sdk/python/CHANGELOG.md +++ b/ydb/public/sdk/python/CHANGELOG.md @@ -2,6 +2,7 @@ * allow to refer endpoints by node id * support null type in queries +* support session balancer feature ## 2.1.0 ## diff --git a/ydb/public/sdk/python/ydb/connection.py b/ydb/public/sdk/python/ydb/connection.py index a51736728b6..ed86de4479a 100644 --- a/ydb/public/sdk/python/ydb/connection.py +++ b/ydb/public/sdk/python/ydb/connection.py @@ -146,6 +146,7 @@ def _construct_metadata(driver_config, settings): metadata.append((YDB_TRACE_ID_HEADER, settings.trace_id)) if settings.request_type is not None: metadata.append((YDB_REQUEST_TYPE_HEADER, settings.request_type)) + metadata.extend(getattr(settings, "headers", [])) metadata.append(_utilities.x_ydb_sdk_build_info_header()) return metadata diff --git a/ydb/public/sdk/python/ydb/settings.py b/ydb/public/sdk/python/ydb/settings.py index e1e1f0f2d30..f55b1abb30d 100644 --- a/ydb/public/sdk/python/ydb/settings.py +++ b/ydb/public/sdk/python/ydb/settings.py @@ -10,6 +10,7 @@ class BaseRequestSettings(object): "operation_timeout", "tracer", "compression", + "headers", ) def __init__(self): @@ -22,11 +23,38 @@ class BaseRequestSettings(object): self.cancel_after = None self.operation_timeout = None self.compression = None + self.headers = [] + + def make_copy(self): + return ( + BaseRequestSettings() + .with_trace_id(self.trace_id) + .with_request_type(self.request_type) + .with_timeout(self.timeout) + .with_cancel_after(self.cancel_after) + .with_operation_timeout(self.operation_timeout) + .with_compression(self.compression) + ) def with_compression(self, compression): + """ + Enables compression for the specific RPC + :param compression: An RPCCompression enum value. + :return The self instance. + """ self.compression = compression return self + def with_header(self, key, value): + """ + Adds a key-value pair to the request headers. + :param key: A string with a header key. + :param value: A string with a header value. + :return The self instance. + """ + self.headers.append((key, value)) + return self + def with_trace_id(self, trace_id): """ Includes trace id for RPC headers diff --git a/ydb/public/sdk/python/ydb/table.py b/ydb/public/sdk/python/ydb/table.py index c49c4660c7c..97b1fba85ff 100644 --- a/ydb/public/sdk/python/ydb/table.py +++ b/ydb/public/sdk/python/ydb/table.py @@ -1602,12 +1602,18 @@ class BaseSession(ISession): def create(self, settings=None): if self._state.session_id is not None: return self + create_settings = settings_impl.BaseRequestSettings() + if settings is not None: + create_settings = settings.make_copy() + create_settings = create_settings.with_header( + "x-ydb-client-capabilities", "session-balancer" + ) return self._driver( _apis.ydb_table.CreateSessionRequest(), _apis.TableService.Stub, _apis.TableService.CreateSession, _session_impl.initialize_session, - settings, + create_settings, (self._state, self), self._state.endpoint, ) @@ -1860,12 +1866,18 @@ class Session(BaseSession): def async_create(self, settings=None): if self._state.session_id is not None: return _utilities.wrap_result_in_future(self) + create_settings = settings_impl.BaseRequestSettings() + if settings is not None: + create_settings = settings.make_copy() + create_settings = create_settings.with_header( + "x-ydb-client-capabilities", "session-balancer" + ) return self._driver.future( _apis.ydb_table.CreateSessionRequest(), _apis.TableService.Stub, _apis.TableService.CreateSession, _session_impl.initialize_session, - settings, + create_settings, (self._state, self), self._state.endpoint, ) diff --git a/ydb/public/sdk/python/ydb/ydb_version.py b/ydb/public/sdk/python/ydb/ydb_version.py index 3c00bb49aaa..707faadc7ee 100644 --- a/ydb/public/sdk/python/ydb/ydb_version.py +++ b/ydb/public/sdk/python/ydb/ydb_version.py @@ -1 +1 @@ -VERSION = "2.2.0" +VERSION = "2.3.0" diff --git a/ydb/public/sdk/python/ydb_version.py b/ydb/public/sdk/python/ydb_version.py new file mode 100644 index 00000000000..707faadc7ee --- /dev/null +++ b/ydb/public/sdk/python/ydb_version.py @@ -0,0 +1 @@ +VERSION = "2.3.0" |