aboutsummaryrefslogtreecommitdiffstats
path: root/yt/cpp/mapreduce/http/helpers.cpp
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/http/helpers.cpp
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/http/helpers.cpp')
-rw-r--r--yt/cpp/mapreduce/http/helpers.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/yt/cpp/mapreduce/http/helpers.cpp b/yt/cpp/mapreduce/http/helpers.cpp
index 8a5fe16138f..18f74b59584 100644
--- a/yt/cpp/mapreduce/http/helpers.cpp
+++ b/yt/cpp/mapreduce/http/helpers.cpp
@@ -41,6 +41,23 @@ TString GetFullUrl(const TString& hostName, const TClientContext& context, THttp
return Format("http://%v%v", hostName, header.GetUrl());
}
+void UpdateHeaderForProxyIfNeed(const TString& hostName, const TClientContext& context, THttpHeader& header)
+{
+ if (context.ProxyAddress) {
+ header.SetHostPort(Format("http://%v", hostName));
+ header.SetProxyAddress(*context.ProxyAddress);
+ }
+}
+
+TString GetFullUrlForProxy(const TString& hostName, const TClientContext& context, THttpHeader& header)
+{
+ if (context.ProxyAddress) {
+ THttpHeader emptyHeader(header.GetMethod(), "", false);
+ return GetFullUrl(*context.ProxyAddress, context, emptyHeader);
+ }
+ return GetFullUrl(hostName, context, header);
+}
+
static TString GetParametersDebugString(const THttpHeader& header)
{
const auto& parameters = header.GetParameters();