aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobot-piglet <robot-piglet@yandex-team.com>2025-05-22 13:55:11 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2025-05-22 14:36:18 +0300
commit98d9435244ef827b8b71cd61dd0622f897d28a01 (patch)
treeb36ac39efd95c704db868bbeedc3efdb8cbef9e8
parent4cb99ccde48dd62f5296e5203973e345b7ae265c (diff)
downloadydb-98d9435244ef827b8b71cd61dd0622f897d28a01.tar.gz
Intermediate changes
commit_hash:9589e94866c34c29a71d950d5846d266328ed8cf
-rw-r--r--yt/yt/client/driver/config.cpp3
-rw-r--r--yt/yt/client/driver/config.h4
-rw-r--r--yt/yt/client/driver/driver.cpp11
3 files changed, 15 insertions, 3 deletions
diff --git a/yt/yt/client/driver/config.cpp b/yt/yt/client/driver/config.cpp
index ea20d3a1ce9..bb36b67605d 100644
--- a/yt/yt/client/driver/config.cpp
+++ b/yt/yt/client/driver/config.cpp
@@ -49,6 +49,9 @@ void TDriverConfig::Register(TRegistrar registrar)
registrar.Parameter("token", &TThis::Token)
.Optional();
+ registrar.Parameter("multiproxy_target_cluster", &TThis::MultiproxyTargetCluster)
+ .Optional();
+
registrar.Parameter("proxy_discovery_cache", &TThis::ProxyDiscoveryCache)
.DefaultNew();
diff --git a/yt/yt/client/driver/config.h b/yt/yt/client/driver/config.h
index a5ddf95bf50..603abbd0498 100644
--- a/yt/yt/client/driver/config.h
+++ b/yt/yt/client/driver/config.h
@@ -38,6 +38,9 @@ struct TDriverConfig
std::optional<TString> Token;
+ //! Target cluster for multiproxy mode.
+ std::optional<std::string> MultiproxyTargetCluster;
+
TAsyncExpiringCacheConfigPtr ProxyDiscoveryCache;
bool EnableInternalCommands;
@@ -57,4 +60,3 @@ DEFINE_REFCOUNTED_TYPE(TDriverConfig)
////////////////////////////////////////////////////////////////////////////////
} // namespace NYT::NDriver
-
diff --git a/yt/yt/client/driver/driver.cpp b/yt/yt/client/driver/driver.cpp
index 1a2ee7a8399..a722af45c71 100644
--- a/yt/yt/client/driver/driver.cpp
+++ b/yt/yt/client/driver/driver.cpp
@@ -59,6 +59,13 @@ constinit const auto Logger = DriverLogger;
////////////////////////////////////////////////////////////////////////////////
+static TClientOptions GetRootClientOptions(const TDriverConfigPtr& config)
+{
+ auto result = TClientOptions::Root();
+ result.MultiproxyTargetCluster = config->MultiproxyTargetCluster;
+ return result;
+}
+
void Serialize(const TCommandDescriptor& descriptor, NYson::IYsonConsumer* consumer)
{
BuildYsonFluently(consumer)
@@ -107,7 +114,6 @@ TCommandDescriptor IDriver::GetCommandDescriptorOrThrow(const TString& commandNa
////////////////////////////////////////////////////////////////////////////////
-
class TDriver
: public IDriver
{
@@ -121,7 +127,7 @@ public:
, ClientCache_(New<TClientCache>(Config_->ClientCache, Connection_))
, RootClient_(ClientCache_->Get(
GetRootAuthenticationIdentity(),
- TClientOptions::FromAuthenticationIdentity(GetRootAuthenticationIdentity())))
+ GetRootClientOptions(Config_)))
, ProxyDiscoveryCache_(CreateProxyDiscoveryCache(
Config_->ProxyDiscoveryCache,
RootClient_))
@@ -451,6 +457,7 @@ public:
options.ServiceTicketAuth = request.ServiceTicket
? std::make_optional(New<NAuth::TServiceTicketFixedAuth>(*request.ServiceTicket))
: std::nullopt;
+ options.MultiproxyTargetCluster = Config_->MultiproxyTargetCluster;
auto client = ClientCache_->Get(identity, options);