diff options
author | Alexey Efimov <xeno@ydb.tech> | 2024-11-12 12:14:08 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-12 14:14:08 +0300 |
commit | a2e65eecd27f4f81c196baae55e23637933714b4 (patch) | |
tree | c0f85a9e54d8bd0e28be9516c8334fc32658cced | |
parent | 868a62aae0b39369d21c71dd3bc710b4b0d21783 (diff) | |
download | ydb-a2e65eecd27f4f81c196baae55e23637933714b4.tar.gz |
fix node_id filter in viewer/nodes handler (#11501)
-rw-r--r-- | ydb/core/viewer/viewer_nodes.h | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/ydb/core/viewer/viewer_nodes.h b/ydb/core/viewer/viewer_nodes.h index 793ec2661f9..c9f8425da2d 100644 --- a/ydb/core/viewer/viewer_nodes.h +++ b/ydb/core/viewer/viewer_nodes.h @@ -1625,35 +1625,40 @@ public: void ProcessResponses() { AddEvent("ProcessResponses"); - if (NodesInfoResponse && NodesInfoResponse->IsDone()) { - if (NodesInfoResponse->IsOk()) { - bool seenDC = false; - bool seenRack = false; - for (const auto& ni : NodesInfoResponse->Get()->Nodes) { - TNode& node = NodeData.emplace_back(); - node.NodeInfo = ni; - if (ni.Host && !node.SystemState.GetHost()) { - node.SystemState.SetHost(ni.Host); - } - if (ni.Location.GetDataCenterId() != 0) { - seenDC = true; + if (NodesInfoResponse) { + if (NodesInfoResponse->IsDone()) { + if (NodesInfoResponse->IsOk()) { + bool seenDC = false; + bool seenRack = false; + for (const auto& ni : NodesInfoResponse->Get()->Nodes) { + TNode& node = NodeData.emplace_back(); + node.NodeInfo = ni; + if (ni.Host && !node.SystemState.GetHost()) { + node.SystemState.SetHost(ni.Host); + } + if (ni.Location.GetDataCenterId() != 0) { + seenDC = true; + } + if (ni.Location.GetRackId() != 0) { + seenRack = true; + } } - if (ni.Location.GetRackId() != 0) { - seenRack = true; + for (TNode& node : NodeData) { + NodeView.emplace_back(&node); } + InvalidateNodes(); + FieldsAvailable |= FieldsNodeInfo; + FoundNodes = TotalNodes = NodeView.size(); + NoDC = !seenDC; + NoRack = !seenRack; + ApplyEverything(); + } else { + AddProblem("no-nodes-info"); } - for (TNode& node : NodeData) { - NodeView.emplace_back(&node); - } - InvalidateNodes(); - FieldsAvailable |= FieldsNodeInfo; - FoundNodes = TotalNodes = NodeView.size(); - NoDC = !seenDC; - NoRack = !seenRack; + NodesInfoResponse.reset(); } else { - AddProblem("no-nodes-info"); + return; // no further processing until we get node list } - NodesInfoResponse.reset(); } if (NodeStateResponse && NodeStateResponse->IsDone() && TotalNodes > 0) { |