test checking ec distribution

This commit is contained in:
chrislu
2022-02-08 01:50:05 -08:00
parent f34c2ff7c5
commit 13f6ec1c4e
2 changed files with 33 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
package shell
import (
"fmt"
"github.com/chrislusf/seaweedfs/weed/storage/erasure_coding"
"testing"
)
func TestEcDistribution(t *testing.T) {
topologyInfo := parseOutput(topoData)
// find out all volume servers with one slot left.
ecNodes, totalFreeEcSlots := collectEcVolumeServersByDc(topologyInfo, "")
sortEcNodesByFreeslotsDecending(ecNodes)
if totalFreeEcSlots < erasure_coding.TotalShardsCount {
println("not enough free ec shard slots", totalFreeEcSlots)
}
allocatedDataNodes := ecNodes
if len(allocatedDataNodes) > erasure_coding.TotalShardsCount {
allocatedDataNodes = allocatedDataNodes[:erasure_coding.TotalShardsCount]
}
for _, dn := range allocatedDataNodes {
fmt.Printf("info %+v %+v\n", dn.info, dn)
}
}