diff options
| author | chrislu <chris.lu@gmail.com> | 2022-04-01 16:50:58 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2022-04-01 16:50:58 -0700 |
| commit | bbbbbd70a4745c3cb1ddb3ff3a86a6e6fce65a75 (patch) | |
| tree | 953cebb4cc56c6b01212b04d50cf8ab2758397e5 /weed/server/master_grpc_server_admin.go | |
| parent | 743ad690b69d01081975bdb435364d8509dbe01b (diff) | |
| download | seaweedfs-bbbbbd70a4745c3cb1ddb3ff3a86a6e6fce65a75.tar.xz seaweedfs-bbbbbd70a4745c3cb1ddb3ff3a86a6e6fce65a75.zip | |
master supports grpc ping
Diffstat (limited to 'weed/server/master_grpc_server_admin.go')
| -rw-r--r-- | weed/server/master_grpc_server_admin.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/weed/server/master_grpc_server_admin.go b/weed/server/master_grpc_server_admin.go index 983606476..0649ea73e 100644 --- a/weed/server/master_grpc_server_admin.go +++ b/weed/server/master_grpc_server_admin.go @@ -4,6 +4,9 @@ import ( "context" "fmt" "github.com/chrislusf/seaweedfs/weed/glog" + "github.com/chrislusf/seaweedfs/weed/pb" + "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb" "math/rand" "sync" "time" @@ -142,3 +145,29 @@ func (ms *MasterServer) ReleaseAdminToken(ctx context.Context, req *master_pb.Re } return resp, nil } + +func (ms *MasterServer) Ping(ctx context.Context, req *master_pb.PingRequest) (resp *master_pb.PingResponse, pingErr error) { + resp = &master_pb.PingResponse{} + if req.TargetType == "Filer" { + pingErr = pb.WithFilerClient(false, pb.ServerAddress(req.Target), ms.grpcDialOption, func(client filer_pb.SeaweedFilerClient) error { + _, err := client.Ping(ctx, &filer_pb.PingRequest{}) + return err + }) + } + if req.TargetType == "VolumeServer" { + pingErr = pb.WithVolumeServerClient(false, pb.ServerAddress(req.Target), ms.grpcDialOption, func(client volume_server_pb.VolumeServerClient) error { + _, err := client.Ping(ctx, &volume_server_pb.PingRequest{}) + return err + }) + } + if req.TargetType == "Master" { + pingErr = pb.WithMasterClient(false, pb.ServerAddress(req.Target), ms.grpcDialOption, func(client master_pb.SeaweedClient) error { + _, err := client.Ping(ctx, &master_pb.PingRequest{}) + return err + }) + } + if pingErr != nil { + pingErr = fmt.Errorf("ping %s %s: %v", req.TargetType, req.Target, pingErr) + } + return +} |
