aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Efimov <xeno@ydb.tech>2024-11-12 12:14:08 +0100
committerGitHub <noreply@github.com>2024-11-12 14:14:08 +0300
commita2e65eecd27f4f81c196baae55e23637933714b4 (patch)
treec0f85a9e54d8bd0e28be9516c8334fc32658cced
parent868a62aae0b39369d21c71dd3bc710b4b0d21783 (diff)
downloadydb-a2e65eecd27f4f81c196baae55e23637933714b4.tar.gz
fix node_id filter in viewer/nodes handler (#11501)
-rw-r--r--ydb/core/viewer/viewer_nodes.h53
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) {