diff options
author | annashest18 <annashest18@yandex-team.com> | 2023-10-22 13:19:53 +0300 |
---|---|---|
committer | annashest18 <annashest18@yandex-team.com> | 2023-10-22 13:40:13 +0300 |
commit | 24a44df2ab01109cefd64d4bfad05c66e7ebd2af (patch) | |
tree | 1ec1ca95a2a8aceaa383fde2e19e61db9ab4fe02 /yt/cpp/mapreduce/client | |
parent | a991b019f74cbfe6efb40c3b68b46a1ac2a9bd09 (diff) | |
download | ydb-24a44df2ab01109cefd64d4bfad05c66e7ebd2af.tar.gz |
add using http-proxy for reading table from YT
add using http-proxy for reading table from YT
Нам нужна возможность ходить в YT через HTTP proxy для чтения таблиц, используя С++ клиент не из контура Яндекса, к сожалению, сейчас такой возможности нет. В этом ПР черновик изменения, которого нам достаточно
https://a.yandex-team.ru/review/4676436/details - тут это же изменение в YT + коммит с тем, как мы планируем использовать
Diffstat (limited to 'yt/cpp/mapreduce/client')
-rw-r--r-- | yt/cpp/mapreduce/client/client.cpp | 1 | ||||
-rw-r--r-- | yt/cpp/mapreduce/client/client_reader.cpp | 3 | ||||
-rw-r--r-- | yt/cpp/mapreduce/client/file_reader.cpp | 4 | ||||
-rw-r--r-- | yt/cpp/mapreduce/client/retry_heavy_write_request.cpp | 2 | ||||
-rw-r--r-- | yt/cpp/mapreduce/client/retryless_writer.h | 1 |
5 files changed, 10 insertions, 1 deletions
diff --git a/yt/cpp/mapreduce/client/client.cpp b/yt/cpp/mapreduce/client/client.cpp index 8279c1a38b6..29d134ad3dd 100644 --- a/yt/cpp/mapreduce/client/client.cpp +++ b/yt/cpp/mapreduce/client/client.cpp @@ -1296,6 +1296,7 @@ TClientPtr CreateClientImpl( context.Config = options.Config_ ? options.Config_ : TConfig::Get(); context.TvmOnly = options.TvmOnly_; context.UseTLS = options.UseTLS_; + context.ProxyAddress = options.ProxyAddress_; context.ServerName = serverName; if (serverName.find('.') == TString::npos && diff --git a/yt/cpp/mapreduce/client/client_reader.cpp b/yt/cpp/mapreduce/client/client_reader.cpp index f1c12312206..606ac1c2974 100644 --- a/yt/cpp/mapreduce/client/client_reader.cpp +++ b/yt/cpp/mapreduce/client/client_reader.cpp @@ -191,7 +191,8 @@ void TClientReader::CreateRequest(const TMaybe<ui32>& rangeIndex, const TMaybe<u try { const auto proxyName = GetProxyForHeavyRequest(Context_); - Response_ = Context_.HttpClient->Request(GetFullUrl(proxyName, Context_, header), requestId, header); + UpdateHeaderForProxyIfNeed(proxyName, Context_, header); + Response_ = Context_.HttpClient->Request(GetFullUrlForProxy(proxyName, Context_, header), requestId, header); Input_ = Response_->GetResponseStream(); diff --git a/yt/cpp/mapreduce/client/file_reader.cpp b/yt/cpp/mapreduce/client/file_reader.cpp index 5454b9b11f6..57131e5330b 100644 --- a/yt/cpp/mapreduce/client/file_reader.cpp +++ b/yt/cpp/mapreduce/client/file_reader.cpp @@ -149,6 +149,8 @@ NHttpClient::IHttpResponsePtr TFileReader::Request(const TClientContext& context header.SetImpersonationUser(*context.ImpersonationUser); } + UpdateHeaderForProxyIfNeed(hostName, context, header); + header.AddTransactionId(transactionId); header.SetOutputFormat(TMaybe<TFormat>()); // Binary format @@ -208,6 +210,8 @@ NHttpClient::IHttpResponsePtr TBlobTableReader::Request(const TClientContext& co header.SetImpersonationUser(*context.ImpersonationUser); } + UpdateHeaderForProxyIfNeed(hostName, context, header); + header.AddTransactionId(transactionId); header.SetOutputFormat(TMaybe<TFormat>()); // Binary format diff --git a/yt/cpp/mapreduce/client/retry_heavy_write_request.cpp b/yt/cpp/mapreduce/client/retry_heavy_write_request.cpp index 03a1bcfccf5..c72f42089f2 100644 --- a/yt/cpp/mapreduce/client/retry_heavy_write_request.cpp +++ b/yt/cpp/mapreduce/client/retry_heavy_write_request.cpp @@ -51,6 +51,8 @@ void RetryHeavyWriteRequest( auto hostName = GetProxyForHeavyRequest(context); requestId = CreateGuidAsString(); + UpdateHeaderForProxyIfNeed(hostName, context, header); + header.AddTransactionId(attemptTx.GetId(), /* overwrite = */ true); header.SetRequestCompression(ToString(context.Config->ContentEncoding)); diff --git a/yt/cpp/mapreduce/client/retryless_writer.h b/yt/cpp/mapreduce/client/retryless_writer.h index 835fdaea3bf..0a1b3865eed 100644 --- a/yt/cpp/mapreduce/client/retryless_writer.h +++ b/yt/cpp/mapreduce/client/retryless_writer.h @@ -55,6 +55,7 @@ public: TString requestId = CreateGuidAsString(); auto hostName = GetProxyForHeavyRequest(context); + UpdateHeaderForProxyIfNeed(hostName, context, header); Request_ = context.HttpClient->StartRequest(GetFullUrl(hostName, context, header), requestId, header); BufferedOutput_.Reset(new TBufferedOutput(Request_->GetStream(), BufferSize_)); } |