aboutsummaryrefslogtreecommitdiff
path: root/weed/topology/topology_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/topology/topology_test.go')
-rw-r--r--weed/topology/topology_test.go64
1 files changed, 49 insertions, 15 deletions
diff --git a/weed/topology/topology_test.go b/weed/topology/topology_test.go
index 2fe381ca2..ecfe9d8d1 100644
--- a/weed/topology/topology_test.go
+++ b/weed/topology/topology_test.go
@@ -6,6 +6,7 @@ import (
"github.com/chrislusf/seaweedfs/weed/storage"
"github.com/chrislusf/seaweedfs/weed/storage/needle"
"github.com/chrislusf/seaweedfs/weed/storage/super_block"
+ "github.com/chrislusf/seaweedfs/weed/storage/types"
"testing"
)
@@ -13,11 +14,11 @@ import (
func TestRemoveDataCenter(t *testing.T) {
topo := setup(topologyLayout)
topo.UnlinkChildNode(NodeId("dc2"))
- if topo.GetActiveVolumeCount() != 15 {
+ if topo.diskUsages.usages[types.HardDriveType].activeVolumeCount != 15 {
t.Fail()
}
topo.UnlinkChildNode(NodeId("dc3"))
- if topo.GetActiveVolumeCount() != 12 {
+ if topo.diskUsages.usages[types.HardDriveType].activeVolumeCount != 12 {
t.Fail()
}
}
@@ -27,7 +28,10 @@ func TestHandlingVolumeServerHeartbeat(t *testing.T) {
dc := topo.GetOrCreateDataCenter("dc1")
rack := dc.GetOrCreateRack("rack1")
- dn := rack.GetOrCreateDataNode("127.0.0.1", 34534, "127.0.0.1", 25)
+ maxVolumeCounts := make(map[string]uint32)
+ maxVolumeCounts[""] = 25
+ maxVolumeCounts["ssd"] = 12
+ dn := rack.GetOrCreateDataNode("127.0.0.1", 34534, "127.0.0.1", maxVolumeCounts)
{
volumeCount := 7
@@ -48,10 +52,30 @@ func TestHandlingVolumeServerHeartbeat(t *testing.T) {
volumeMessages = append(volumeMessages, volumeMessage)
}
+ for k := 1; k <= volumeCount; k++ {
+ volumeMessage := &master_pb.VolumeInformationMessage{
+ Id: uint32(volumeCount + k),
+ Size: uint64(25432),
+ Collection: "",
+ FileCount: uint64(2343),
+ DeleteCount: uint64(345),
+ DeletedByteCount: 34524,
+ ReadOnly: false,
+ ReplicaPlacement: uint32(0),
+ Version: uint32(needle.CurrentVersion),
+ Ttl: 0,
+ DiskType: "ssd",
+ }
+ volumeMessages = append(volumeMessages, volumeMessage)
+ }
+
topo.SyncDataNodeRegistration(volumeMessages, dn)
- assert(t, "activeVolumeCount1", int(topo.activeVolumeCount), volumeCount)
- assert(t, "volumeCount", int(topo.volumeCount), volumeCount)
+ usageCounts := topo.diskUsages.usages[types.HardDriveType]
+
+ assert(t, "activeVolumeCount1", int(usageCounts.activeVolumeCount), volumeCount)
+ assert(t, "volumeCount", int(usageCounts.volumeCount), volumeCount)
+ assert(t, "ssdVolumeCount", int(topo.diskUsages.usages[types.SsdType].volumeCount), volumeCount)
}
{
@@ -78,8 +102,10 @@ func TestHandlingVolumeServerHeartbeat(t *testing.T) {
//layout := topo.GetVolumeLayout("", rp, needle.EMPTY_TTL)
//assert(t, "writables", len(layout.writables), volumeCount)
- assert(t, "activeVolumeCount1", int(topo.activeVolumeCount), volumeCount)
- assert(t, "volumeCount", int(topo.volumeCount), volumeCount)
+ usageCounts := topo.diskUsages.usages[types.HardDriveType]
+
+ assert(t, "activeVolumeCount1", int(usageCounts.activeVolumeCount), volumeCount)
+ assert(t, "volumeCount", int(usageCounts.volumeCount), volumeCount)
}
{
@@ -96,26 +122,28 @@ func TestHandlingVolumeServerHeartbeat(t *testing.T) {
nil,
dn)
rp, _ := super_block.NewReplicaPlacementFromString("000")
- layout := topo.GetVolumeLayout("", rp, needle.EMPTY_TTL)
+ layout := topo.GetVolumeLayout("", rp, needle.EMPTY_TTL, types.HardDriveType)
assert(t, "writables after repeated add", len(layout.writables), volumeCount)
- assert(t, "activeVolumeCount1", int(topo.activeVolumeCount), volumeCount)
- assert(t, "volumeCount", int(topo.volumeCount), volumeCount)
+ usageCounts := topo.diskUsages.usages[types.HardDriveType]
+
+ assert(t, "activeVolumeCount1", int(usageCounts.activeVolumeCount), volumeCount)
+ assert(t, "volumeCount", int(usageCounts.volumeCount), volumeCount)
topo.IncrementalSyncDataNodeRegistration(
nil,
[]*master_pb.VolumeShortInformationMessage{newVolumeShortMessage},
dn)
assert(t, "writables after deletion", len(layout.writables), volumeCount-1)
- assert(t, "activeVolumeCount1", int(topo.activeVolumeCount), volumeCount-1)
- assert(t, "volumeCount", int(topo.volumeCount), volumeCount-1)
+ assert(t, "activeVolumeCount1", int(usageCounts.activeVolumeCount), volumeCount-1)
+ assert(t, "volumeCount", int(usageCounts.volumeCount), volumeCount-1)
topo.IncrementalSyncDataNodeRegistration(
[]*master_pb.VolumeShortInformationMessage{newVolumeShortMessage},
nil,
dn)
- for vid, _ := range layout.vid2location {
+ for vid := range layout.vid2location {
println("after add volume id", vid)
}
for _, vid := range layout.writables {
@@ -128,7 +156,9 @@ func TestHandlingVolumeServerHeartbeat(t *testing.T) {
topo.UnRegisterDataNode(dn)
- assert(t, "activeVolumeCount2", int(topo.activeVolumeCount), 0)
+ usageCounts := topo.diskUsages.usages[types.HardDriveType]
+
+ assert(t, "activeVolumeCount2", int(usageCounts.activeVolumeCount), 0)
}
@@ -144,12 +174,16 @@ func TestAddRemoveVolume(t *testing.T) {
dc := topo.GetOrCreateDataCenter("dc1")
rack := dc.GetOrCreateRack("rack1")
- dn := rack.GetOrCreateDataNode("127.0.0.1", 34534, "127.0.0.1", 25)
+ maxVolumeCounts := make(map[string]uint32)
+ maxVolumeCounts[""] = 25
+ maxVolumeCounts["ssd"] = 12
+ dn := rack.GetOrCreateDataNode("127.0.0.1", 34534, "127.0.0.1", maxVolumeCounts)
v := storage.VolumeInfo{
Id: needle.VolumeId(1),
Size: 100,
Collection: "xcollection",
+ DiskType: "ssd",
FileCount: 123,
DeleteCount: 23,
DeletedByteCount: 45,