Replaced goto with Idiomatic Map Approach

This commit is contained in:
chrislu
2025-08-10 17:48:18 -07:00
parent cdba261913
commit cd75202da8

View File

@@ -871,6 +871,7 @@ func (s *AdminServer) getEcVolumeHealthMetrics(volumeID uint32) (*EcVolumeHealth
} }
if resp.TopologyInfo != nil { if resp.TopologyInfo != nil {
serverSet := make(map[string]struct{})
for _, dc := range resp.TopologyInfo.DataCenterInfos { for _, dc := range resp.TopologyInfo.DataCenterInfos {
for _, rack := range dc.RackInfos { for _, rack := range dc.RackInfos {
for _, node := range rack.DataNodeInfos { for _, node := range rack.DataNodeInfos {
@@ -878,15 +879,16 @@ func (s *AdminServer) getEcVolumeHealthMetrics(volumeID uint32) (*EcVolumeHealth
// Check if this node has EC shards for our volume // Check if this node has EC shards for our volume
for _, ecShardInfo := range diskInfo.EcShardInfos { for _, ecShardInfo := range diskInfo.EcShardInfos {
if ecShardInfo.Id == volumeID { if ecShardInfo.Id == volumeID {
servers = append(servers, node.Id) serverSet[node.Id] = struct{}{}
goto nextNode // Found shards on this node, move to next node
} }
} }
} }
} }
nextNode:
} }
} }
for server := range serverSet {
servers = append(servers, server)
}
} }
return nil return nil
}) })