mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
avoid panic if hashicorp raft not initialized
This commit is contained in:
parent
d71a1fd077
commit
03aec9ce7e
|
@ -11,6 +11,10 @@ import (
|
||||||
func (ms *MasterServer) RaftListClusterServers(ctx context.Context, req *master_pb.RaftListClusterServersRequest) (*master_pb.RaftListClusterServersResponse, error) {
|
func (ms *MasterServer) RaftListClusterServers(ctx context.Context, req *master_pb.RaftListClusterServersRequest) (*master_pb.RaftListClusterServersResponse, error) {
|
||||||
resp := &master_pb.RaftListClusterServersResponse{}
|
resp := &master_pb.RaftListClusterServersResponse{}
|
||||||
|
|
||||||
|
if ms.Topo.HashicorpRaft == nil {
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
|
|
||||||
servers := ms.Topo.HashicorpRaft.GetConfiguration().Configuration().Servers
|
servers := ms.Topo.HashicorpRaft.GetConfiguration().Configuration().Servers
|
||||||
|
|
||||||
for _, server := range 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) {
|
func (ms *MasterServer) RaftAddServer(ctx context.Context, req *master_pb.RaftAddServerRequest) (*master_pb.RaftAddServerResponse, error) {
|
||||||
resp := &master_pb.RaftAddServerResponse{}
|
resp := &master_pb.RaftAddServerResponse{}
|
||||||
|
|
||||||
|
if ms.Topo.HashicorpRaft == nil {
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
|
|
||||||
if ms.Topo.HashicorpRaft.State() != raft.Leader {
|
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())
|
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) {
|
func (ms *MasterServer) RaftRemoveServer(ctx context.Context, req *master_pb.RaftRemoveServerRequest) (*master_pb.RaftRemoveServerResponse, error) {
|
||||||
resp := &master_pb.RaftRemoveServerResponse{}
|
resp := &master_pb.RaftRemoveServerResponse{}
|
||||||
|
|
||||||
|
if ms.Topo.HashicorpRaft == nil {
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
|
|
||||||
if ms.Topo.HashicorpRaft.State() != raft.Leader {
|
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())
|
return nil, fmt.Errorf("raft remove server %s failed: %s is no current leader", req.Id, ms.Topo.HashicorpRaft.String())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue