aboutsummaryrefslogtreecommitdiff
path: root/weed/server/master_grpc_server_raft.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-04-30 17:36:45 -0700
committerchrislu <chris.lu@gmail.com>2022-04-30 17:36:45 -0700
commitea8a7a5584d3f9868d0e79c9e7b76ab3355e0838 (patch)
treefd3fd783058bf19ed924eb8d5161c7fb1d6f5a65 /weed/server/master_grpc_server_raft.go
parent192983b46477e87093e5492cb780e1a371d9b681 (diff)
parentb2a96cee21aac22c71538ce98ac188d6e3c89fbd (diff)
downloadseaweedfs-ea8a7a5584d3f9868d0e79c9e7b76ab3355e0838.tar.xz
seaweedfs-ea8a7a5584d3f9868d0e79c9e7b76ab3355e0838.zip
Merge branch 'master' of https://github.com/chrislusf/seaweedfs
Diffstat (limited to 'weed/server/master_grpc_server_raft.go')
-rw-r--r--weed/server/master_grpc_server_raft.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/weed/server/master_grpc_server_raft.go b/weed/server/master_grpc_server_raft.go
index 37491b3df..258b6beac 100644
--- a/weed/server/master_grpc_server_raft.go
+++ b/weed/server/master_grpc_server_raft.go
@@ -11,6 +11,10 @@ import (
func (ms *MasterServer) RaftListClusterServers(ctx context.Context, req *master_pb.RaftListClusterServersRequest) (*master_pb.RaftListClusterServersResponse, error) {
resp := &master_pb.RaftListClusterServersResponse{}
+ if ms.Topo.HashicorpRaft == nil {
+ return resp, nil
+ }
+
servers := ms.Topo.HashicorpRaft.GetConfiguration().Configuration().Servers
for _, server := range servers {
@@ -25,6 +29,11 @@ func (ms *MasterServer) RaftListClusterServers(ctx context.Context, req *master_
func (ms *MasterServer) RaftAddServer(ctx context.Context, req *master_pb.RaftAddServerRequest) (*master_pb.RaftAddServerResponse, error) {
resp := &master_pb.RaftAddServerResponse{}
+
+ if ms.Topo.HashicorpRaft == nil {
+ return resp, nil
+ }
+
if ms.Topo.HashicorpRaft.State() != raft.Leader {
return nil, fmt.Errorf("raft add server %s failed: %s is no current leader", req.Id, ms.Topo.HashicorpRaft.String())
}
@@ -45,6 +54,10 @@ func (ms *MasterServer) RaftAddServer(ctx context.Context, req *master_pb.RaftAd
func (ms *MasterServer) RaftRemoveServer(ctx context.Context, req *master_pb.RaftRemoveServerRequest) (*master_pb.RaftRemoveServerResponse, error) {
resp := &master_pb.RaftRemoveServerResponse{}
+ if ms.Topo.HashicorpRaft == nil {
+ return resp, nil
+ }
+
if ms.Topo.HashicorpRaft.State() != raft.Leader {
return nil, fmt.Errorf("raft remove server %s failed: %s is no current leader", req.Id, ms.Topo.HashicorpRaft.String())
}