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/http/helpers.cpp | |
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/http/helpers.cpp')
-rw-r--r-- | yt/cpp/mapreduce/http/helpers.cpp | 17 |
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(); |