aboutsummaryrefslogtreecommitdiffstats
path: root/yt/cpp/mapreduce/client
diff options
context:
space:
mode:
authorannashest18 <annashest18@yandex-team.com>2023-10-22 13:19:53 +0300
committerannashest18 <annashest18@yandex-team.com>2023-10-22 13:40:13 +0300
commit24a44df2ab01109cefd64d4bfad05c66e7ebd2af (patch)
tree1ec1ca95a2a8aceaa383fde2e19e61db9ab4fe02 /yt/cpp/mapreduce/client
parenta991b019f74cbfe6efb40c3b68b46a1ac2a9bd09 (diff)
downloadydb-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.cpp1
-rw-r--r--yt/cpp/mapreduce/client/client_reader.cpp3
-rw-r--r--yt/cpp/mapreduce/client/file_reader.cpp4
-rw-r--r--yt/cpp/mapreduce/client/retry_heavy_write_request.cpp2
-rw-r--r--yt/cpp/mapreduce/client/retryless_writer.h1
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_));
}