ec.balance: Allow EC balancing without collections. (#6488)

This commit is contained in:
Lisandro Pin 2025-01-29 17:51:59 +01:00 committed by GitHub
parent 7913681297
commit 250fbbb3db
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1067,10 +1067,6 @@ func (ecb *ecBalancer) collectVolumeIdToEcNodes(collection string) map[needle.Vo
}
func EcBalance(commandEnv *CommandEnv, collections []string, dc string, ecReplicaPlacement *super_block.ReplicaPlacement, maxParallelization int, applyBalancing bool) (err error) {
if len(collections) == 0 {
return fmt.Errorf("no collections to balance")
}
// collect all ec nodes
allEcNodes, totalFreeEcSlots, err := collectEcNodesForDC(commandEnv, dc)
if err != nil {
@ -1088,11 +1084,15 @@ func EcBalance(commandEnv *CommandEnv, collections []string, dc string, ecReplic
maxParallelization: maxParallelization,
}
if len(collections) == 0 {
fmt.Printf("WARNING: No collections to balance EC volumes across.")
}
for _, c := range collections {
if err = ecb.balanceEcVolumes(c); err != nil {
return err
}
}
if err := ecb.balanceEcRacks(); err != nil {
return fmt.Errorf("balance ec racks: %v", err)
}