aboutsummaryrefslogtreecommitdiff
path: root/weed/topology/topology.go
diff options
context:
space:
mode:
authorKonstantin Lebedev <9497591+kmlebedev@users.noreply.github.com>2024-11-25 22:30:37 +0500
committerGitHub <noreply@github.com>2024-11-25 09:30:37 -0800
commit8836fa19b697429d09359897fc2aff52e626947b (patch)
tree4a70826bb6a4d94d71f0fcfa4b2252bb32dd4acc /weed/topology/topology.go
parent167b50be889f056b31ff2f178079541167e644ed (diff)
downloadseaweedfs-8836fa19b697429d09359897fc2aff52e626947b.tar.xz
seaweedfs-8836fa19b697429d09359897fc2aff52e626947b.zip
use ShouldGrowVolumesByDcAndRack (#6280)
Diffstat (limited to 'weed/topology/topology.go')
-rw-r--r--weed/topology/topology.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/weed/topology/topology.go b/weed/topology/topology.go
index e436b453a..be50eecdf 100644
--- a/weed/topology/topology.go
+++ b/weed/topology/topology.go
@@ -369,6 +369,19 @@ func (t *Topology) ListDataCenters() (dcs []string) {
return dcs
}
+func (t *Topology) ListDCAndRacks() (dcs map[NodeId][]NodeId) {
+ t.RLock()
+ defer t.RUnlock()
+ dcs = make(map[NodeId][]NodeId)
+ for _, dcNode := range t.children {
+ dcNodeId := dcNode.(*DataCenter).Id()
+ for _, rackNode := range dcNode.Children() {
+ dcs[dcNodeId] = append(dcs[dcNodeId], rackNode.(*Rack).Id())
+ }
+ }
+ return dcs
+}
+
func (t *Topology) SyncDataNodeRegistration(volumes []*master_pb.VolumeInformationMessage, dn *DataNode) (newVolumes, deletedVolumes []storage.VolumeInfo) {
// convert into in memory struct storage.VolumeInfo
var volumeInfos []storage.VolumeInfo