summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlia Shakhov <[email protected]>2024-03-29 17:00:25 +0300
committerGitHub <[email protected]>2024-03-29 17:00:25 +0300
commita25dd8d72350ab5d4f515e444fb3ede52b7742c2 (patch)
tree8737a17d5aa81de8d3d04e780602cd9d45dee559
parent93ca4c928a3bc945611b36ecdae84d6f9f188e9a (diff)
Fix for empty slotname (#3306)
-rw-r--r--ydb/core/config/init/init.cpp4
-rw-r--r--ydb/public/sdk/cpp/client/ydb_discovery/discovery.cpp8
-rw-r--r--ydb/public/sdk/cpp/client/ydb_discovery/discovery.h3
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_;
};