You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
667 B

5 years ago
5 years ago
5 years ago
  1. package filesys
  2. import (
  3. "github.com/chrislusf/seaweedfs/weed/util"
  4. "google.golang.org/grpc"
  5. "github.com/chrislusf/seaweedfs/weed/pb"
  6. "github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
  7. )
  8. var _ = filer_pb.FilerClient(&WFS{})
  9. func (wfs *WFS) WithFilerClient(fn func(filer_pb.SeaweedFilerClient) error) error {
  10. err := util.Retry("filer grpc "+wfs.option.FilerGrpcAddress, func() error {
  11. return pb.WithCachedGrpcClient(func(grpcConnection *grpc.ClientConn) error {
  12. client := filer_pb.NewSeaweedFilerClient(grpcConnection)
  13. return fn(client)
  14. }, wfs.option.FilerGrpcAddress, wfs.option.GrpcDialOption)
  15. })
  16. if err == nil {
  17. return nil
  18. }
  19. return err
  20. }