aboutsummaryrefslogtreecommitdiff
path: root/weed/server/master_grpc_server_admin.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-04-01 16:50:58 -0700
committerchrislu <chris.lu@gmail.com>2022-04-01 16:50:58 -0700
commitbbbbbd70a4745c3cb1ddb3ff3a86a6e6fce65a75 (patch)
tree953cebb4cc56c6b01212b04d50cf8ab2758397e5 /weed/server/master_grpc_server_admin.go
parent743ad690b69d01081975bdb435364d8509dbe01b (diff)
downloadseaweedfs-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.go29
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
+}