diff --git a/pkg/hakeeper/rsm_test.go b/pkg/hakeeper/rsm_test.go index f0f472dabfd9dcb5624e84e59c332b50f935d01e..cad10d3bce9223b257b6a2bc32c29de931f9b4f7 100644 --- a/pkg/hakeeper/rsm_test.go +++ b/pkg/hakeeper/rsm_test.go @@ -340,6 +340,48 @@ func TestClusterDetailsQuery(t *testing.T) { Tick: 3, ServiceAddress: "addr3", } + tsm.state.LogState.Shards[1] = pb.LogShardInfo{ + ShardID: 1, + Replicas: map[uint64]string{1: "store-1", 2: "store-2", 3: "store-3"}, + Epoch: 1, LeaderID: 1, Term: 1, + } + + tsm.state.LogState.Stores["store-1"] = pb.LogStoreInfo{ + Tick: 100, + ServiceAddress: "addr-log-1", + Replicas: []pb.LogReplicaInfo{{ + LogShardInfo: pb.LogShardInfo{ + ShardID: 1, + Replicas: map[uint64]string{1: "store-1", 2: "store-2", 3: "store-3"}, + Epoch: 1, LeaderID: 1, Term: 1, + }, ReplicaID: 1, + }}, + } + + tsm.state.LogState.Stores["store-2"] = pb.LogStoreInfo{ + Tick: 100, + ServiceAddress: "addr-log-2", + Replicas: []pb.LogReplicaInfo{{ + LogShardInfo: pb.LogShardInfo{ + ShardID: 1, + Replicas: map[uint64]string{1: "store-1", 2: "store-2", 3: "store-3"}, + Epoch: 1, LeaderID: 1, Term: 1, + }, ReplicaID: 2, + }}, + } + + tsm.state.LogState.Stores["store-3"] = pb.LogStoreInfo{ + Tick: 100, + ServiceAddress: "addr-log-3", + Replicas: []pb.LogReplicaInfo{{ + LogShardInfo: pb.LogShardInfo{ + ShardID: 1, + Replicas: map[uint64]string{1: "store-1", 2: "store-2", 3: "store-3"}, + Epoch: 1, LeaderID: 1, Term: 1, + }, ReplicaID: 3, + }}, + } + v, err := tsm.Lookup(&ClusterDetailsQuery{}) require.NoError(t, err) expected := &pb.ClusterDetails{ @@ -362,12 +404,55 @@ func TestClusterDetailsQuery(t *testing.T) { ServiceAddress: "addr2", }, }, - LogNodes: []pb.LogNode{}, + LogNodes: []pb.LogNode{ + { + UUID: "store-1", + ServiceAddress: "addr-log-1", + Tick: 100, + State: 0, + Replicas: []pb.LogReplicaInfo{{ + LogShardInfo: pb.LogShardInfo{ + ShardID: 1, + Replicas: map[uint64]string{1: "store-1", 2: "store-2", 3: "store-3"}, + Epoch: 1, LeaderID: 1, Term: 1, + }, ReplicaID: 1, + }}, + }, + { + UUID: "store-2", + ServiceAddress: "addr-log-2", + Tick: 100, + State: 0, + Replicas: []pb.LogReplicaInfo{{ + LogShardInfo: pb.LogShardInfo{ + ShardID: 1, + Replicas: map[uint64]string{1: "store-1", 2: "store-2", 3: "store-3"}, + Epoch: 1, LeaderID: 1, Term: 1, + }, ReplicaID: 2, + }}, + }, + { + UUID: "store-3", + ServiceAddress: "addr-log-3", + Tick: 100, + State: 0, + Replicas: []pb.LogReplicaInfo{{ + LogShardInfo: pb.LogShardInfo{ + ShardID: 1, + Replicas: map[uint64]string{1: "store-1", 2: "store-2", 3: "store-3"}, + Epoch: 1, LeaderID: 1, Term: 1, + }, ReplicaID: 3, + }}, + }, + }, } result := v.(*pb.ClusterDetails) sort.Slice(result.CNNodes, func(i, j int) bool { return result.CNNodes[i].UUID < result.CNNodes[j].UUID }) + sort.Slice(result.LogNodes, func(i, j int) bool { + return result.LogNodes[i].UUID < result.LogNodes[j].UUID + }) assert.Equal(t, expected, result) }