From bbbbbd70a4745c3cb1ddb3ff3a86a6e6fce65a75 Mon Sep 17 00:00:00 2001 From: chrislu Date: Fri, 1 Apr 2022 16:50:58 -0700 Subject: master supports grpc ping --- weed/server/master_grpc_server_admin.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'weed/server/master_grpc_server_admin.go') 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 +} -- cgit v1.2.3