diff options
| author | Ilia Shakhov <[email protected]> | 2024-03-29 17:00:25 +0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-03-29 17:00:25 +0300 |
| commit | a25dd8d72350ab5d4f515e444fb3ede52b7742c2 (patch) | |
| tree | 8737a17d5aa81de8d3d04e780602cd9d45dee559 | |
| parent | 93ca4c928a3bc945611b36ecdae84d6f9f188e9a (diff) | |
Fix for empty slotname (#3306)
| -rw-r--r-- | ydb/core/config/init/init.cpp | 4 | ||||
| -rw-r--r-- | ydb/public/sdk/cpp/client/ydb_discovery/discovery.cpp | 8 | ||||
| -rw-r--r-- | ydb/public/sdk/cpp/client/ydb_discovery/discovery.h | 3 |
3 files changed, 11 insertions, 4 deletions
diff --git a/ydb/core/config/init/init.cpp b/ydb/core/config/init/init.cpp index 3559220e5b5..024f22d0362 100644 --- a/ydb/core/config/init/init.cpp +++ b/ydb/core/config/init/init.cpp @@ -166,7 +166,9 @@ class TDefaultNodeBrokerClient nodeInfo.SetAddress(node.Address); nodeInfo.SetExpire(node.Expire); NConfig::CopyNodeLocation(nodeInfo.MutableLocation(), node.Location); - nodeInfo.SetSlotName(result.GetSlotName()); + if (result.HasSlotName()) { + nodeInfo.SetSlotName(result.GetSlotName()); + } } else { auto &info = *nsConfig.AddNode(); info.SetNodeId(node.NodeId); diff --git a/ydb/public/sdk/cpp/client/ydb_discovery/discovery.cpp b/ydb/public/sdk/cpp/client/ydb_discovery/discovery.cpp index f1f34ae2e6b..5c19dafbf21 100644 --- a/ydb/public/sdk/cpp/client/ydb_discovery/discovery.cpp +++ b/ydb/public/sdk/cpp/client/ydb_discovery/discovery.cpp @@ -86,7 +86,7 @@ TNodeRegistrationResult::TNodeRegistrationResult(TStatus&& status, const Ydb::Di , Expire_(proto.expire()) , ScopeTableId_(proto.has_scope_tablet_id() ? std::make_optional(proto.scope_tablet_id()) : std::nullopt) , ScopePathId_(proto.has_scope_path_id() ? std::make_optional(proto.scope_path_id()) : std::nullopt) - , SlotName_(proto.slot_name()) + , SlotName_(proto.has_slot_name() ? std::make_optional(proto.slot_name()) : std::nullopt) { const auto& nodes = proto.nodes(); Nodes_.reserve(nodes.size()); @@ -123,8 +123,12 @@ bool TNodeRegistrationResult::HasScopePathId() const { return ScopePathId_.value(); } +bool TNodeRegistrationResult::HasSlotName() const { + return SlotName_.has_value(); +} + const TString& TNodeRegistrationResult::GetSlotName() const { - return SlotName_; + return SlotName_.value(); } const TVector<TNodeInfo>& TNodeRegistrationResult::GetNodes() const { diff --git a/ydb/public/sdk/cpp/client/ydb_discovery/discovery.h b/ydb/public/sdk/cpp/client/ydb_discovery/discovery.h index d63275ab717..8e08b56f3a6 100644 --- a/ydb/public/sdk/cpp/client/ydb_discovery/discovery.h +++ b/ydb/public/sdk/cpp/client/ydb_discovery/discovery.h @@ -110,6 +110,7 @@ public: const ui64& GetScopePathId() const; bool HasScopePathId() const; const TString& GetSlotName() const; + bool HasSlotName() const; const TVector<TNodeInfo>& GetNodes() const; private: @@ -118,7 +119,7 @@ private: ui64 Expire_; std::optional<ui64> ScopeTableId_; std::optional<ui64> ScopePathId_; - TString SlotName_; + std::optional<TString> SlotName_; TVector<TNodeInfo> Nodes_; }; |
