diff options
Diffstat (limited to 'weed/server')
| -rw-r--r-- | weed/server/filer_grpc_server_admin.go | 10 | ||||
| -rw-r--r-- | weed/server/master_grpc_server_admin.go | 29 | ||||
| -rw-r--r-- | weed/server/volume_grpc_admin.go | 10 |
3 files changed, 49 insertions, 0 deletions
diff --git a/weed/server/filer_grpc_server_admin.go b/weed/server/filer_grpc_server_admin.go index c9ecfe467..ee3394a77 100644 --- a/weed/server/filer_grpc_server_admin.go +++ b/weed/server/filer_grpc_server_admin.go @@ -2,6 +2,7 @@ package weed_server import ( "context" + "fmt" "github.com/chrislusf/seaweedfs/weed/glog" "github.com/chrislusf/seaweedfs/weed/pb" "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" @@ -54,6 +55,15 @@ func (fs *FilerServer) Ping(ctx context.Context, req *filer_pb.PingRequest) (res return err }) } + if req.TargetType == "Master" { + pingErr = pb.WithMasterClient(false, pb.ServerAddress(req.Target), fs.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 } 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 +} diff --git a/weed/server/volume_grpc_admin.go b/weed/server/volume_grpc_admin.go index cd01698bc..a6617bfe1 100644 --- a/weed/server/volume_grpc_admin.go +++ b/weed/server/volume_grpc_admin.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/chrislusf/seaweedfs/weed/pb" "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/chrislusf/seaweedfs/weed/pb/master_pb" "path/filepath" "github.com/chrislusf/seaweedfs/weed/glog" @@ -264,5 +265,14 @@ func (vs *VolumeServer) Ping(ctx context.Context, req *volume_server_pb.PingRequ return err }) } + if req.TargetType == "Master" { + pingErr = pb.WithMasterClient(false, pb.ServerAddress(req.Target), vs.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 } |
