aboutsummaryrefslogtreecommitdiff
path: root/weed/cluster/cluster_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/cluster/cluster_test.go')
-rw-r--r--weed/cluster/cluster_test.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/weed/cluster/cluster_test.go b/weed/cluster/cluster_test.go
new file mode 100644
index 000000000..dd68d59b9
--- /dev/null
+++ b/weed/cluster/cluster_test.go
@@ -0,0 +1,47 @@
+package cluster
+
+import (
+ "github.com/chrislusf/seaweedfs/weed/pb"
+ "github.com/stretchr/testify/assert"
+ "testing"
+)
+
+func TestClusterAddRemoveNodes(t *testing.T) {
+ c := NewCluster()
+
+ c.AddClusterNode("filer", pb.ServerAddress("111:1"), "23.45")
+ c.AddClusterNode("filer", pb.ServerAddress("111:2"), "23.45")
+ assert.Equal(t, []pb.ServerAddress{
+ pb.ServerAddress("111:1"),
+ pb.ServerAddress("111:2"),
+ }, c.leaders.GetLeaders())
+
+ c.AddClusterNode("filer", pb.ServerAddress("111:3"), "23.45")
+ c.AddClusterNode("filer", pb.ServerAddress("111:4"), "23.45")
+ assert.Equal(t, []pb.ServerAddress{
+ pb.ServerAddress("111:1"),
+ pb.ServerAddress("111:2"),
+ pb.ServerAddress("111:3"),
+ }, c.leaders.GetLeaders())
+
+ c.AddClusterNode("filer", pb.ServerAddress("111:5"), "23.45")
+ c.AddClusterNode("filer", pb.ServerAddress("111:6"), "23.45")
+ c.RemoveClusterNode("filer", pb.ServerAddress("111:4"))
+ assert.Equal(t, []pb.ServerAddress{
+ pb.ServerAddress("111:1"),
+ pb.ServerAddress("111:2"),
+ pb.ServerAddress("111:3"),
+ }, c.leaders.GetLeaders())
+
+ // remove oldest
+ c.RemoveClusterNode("filer", pb.ServerAddress("111:1"))
+ assert.Equal(t, []pb.ServerAddress{
+ pb.ServerAddress("111:6"),
+ pb.ServerAddress("111:2"),
+ pb.ServerAddress("111:3"),
+ }, c.leaders.GetLeaders())
+
+ // remove oldest
+ c.RemoveClusterNode("filer", pb.ServerAddress("111:1"))
+
+}