diff options
author | robot-piglet <robot-piglet@yandex-team.com> | 2025-05-22 13:55:11 +0300 |
---|---|---|
committer | robot-piglet <robot-piglet@yandex-team.com> | 2025-05-22 14:36:18 +0300 |
commit | 98d9435244ef827b8b71cd61dd0622f897d28a01 (patch) | |
tree | b36ac39efd95c704db868bbeedc3efdb8cbef9e8 | |
parent | 4cb99ccde48dd62f5296e5203973e345b7ae265c (diff) | |
download | ydb-98d9435244ef827b8b71cd61dd0622f897d28a01.tar.gz |
Intermediate changes
commit_hash:9589e94866c34c29a71d950d5846d266328ed8cf
-rw-r--r-- | yt/yt/client/driver/config.cpp | 3 | ||||
-rw-r--r-- | yt/yt/client/driver/config.h | 4 | ||||
-rw-r--r-- | yt/yt/client/driver/driver.cpp | 11 |
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); |