diff options
Diffstat (limited to 'weed/filesys/wfs_filer_client.go')
| -rw-r--r-- | weed/filesys/wfs_filer_client.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/weed/filesys/wfs_filer_client.go b/weed/filesys/wfs_filer_client.go new file mode 100644 index 000000000..671d20ba2 --- /dev/null +++ b/weed/filesys/wfs_filer_client.go @@ -0,0 +1,34 @@ +package filesys + +import ( + "github.com/chrislusf/seaweedfs/weed/util" + "google.golang.org/grpc" + + "github.com/chrislusf/seaweedfs/weed/pb" + "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" +) + +var _ = filer_pb.FilerClient(&WFS{}) + +func (wfs *WFS) WithFilerClient(fn func(filer_pb.SeaweedFilerClient) error) error { + + err := util.Retry("filer grpc "+wfs.option.FilerGrpcAddress, func() error { + return pb.WithCachedGrpcClient(func(grpcConnection *grpc.ClientConn) error { + client := filer_pb.NewSeaweedFilerClient(grpcConnection) + return fn(client) + }, wfs.option.FilerGrpcAddress, wfs.option.GrpcDialOption) + }) + + if err == nil { + return nil + } + return err + +} + +func (wfs *WFS) AdjustedUrl(location *filer_pb.Location) string { + if wfs.option.VolumeServerAccess == "publicUrl" { + return location.PublicUrl + } + return location.Url +} |
