forked from TrueCloudLab/frostfs-api-go
[#205] sdk/client: Support option to set dial timeout
There is a need to set dial timeout in SDK client that is used in case of internal connection opening. Add DialTimeout option constructor to support this feature. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
03ac6bedb4
commit
5ee500bb43
6 changed files with 23 additions and 8 deletions
|
@ -89,8 +89,9 @@ func v2AccountingClientFromOptions(opts *clientOptions) (cli *v2accounting.Clien
|
|||
|
||||
case opts.addr != "":
|
||||
cli, err = v2accounting.NewClient(v2accounting.WithGlobalOpts(
|
||||
client.WithNetworkAddress(opts.addr)),
|
||||
)
|
||||
client.WithNetworkAddress(opts.addr),
|
||||
client.WithDialTimeout(opts.dialTimeout),
|
||||
))
|
||||
|
||||
default:
|
||||
return nil, errOptionsLack("Accounting")
|
||||
|
|
|
@ -448,8 +448,9 @@ func v2ContainerClientFromOptions(opts *clientOptions) (cli *v2container.Client,
|
|||
|
||||
case opts.addr != "":
|
||||
cli, err = v2container.NewClient(v2container.WithGlobalOpts(
|
||||
client.WithNetworkAddress(opts.addr)),
|
||||
)
|
||||
client.WithNetworkAddress(opts.addr),
|
||||
client.WithDialTimeout(opts.dialTimeout),
|
||||
))
|
||||
|
||||
default:
|
||||
return nil, errOptionsLack("Container")
|
||||
|
|
|
@ -97,8 +97,9 @@ func v2NetmapClientFromOptions(opts *clientOptions) (cli *v2netmap.Client, err e
|
|||
|
||||
case opts.addr != "":
|
||||
cli, err = v2netmap.NewClient(v2netmap.WithGlobalOpts(
|
||||
client.WithNetworkAddress(opts.addr)),
|
||||
)
|
||||
client.WithNetworkAddress(opts.addr),
|
||||
client.WithDialTimeout(opts.dialTimeout),
|
||||
))
|
||||
|
||||
default:
|
||||
return nil, errOptionsLack("Netmap")
|
||||
|
|
|
@ -1013,6 +1013,7 @@ func v2ObjectClient(proto TransportProtocol, opts *clientOptions) (*v2object.Cli
|
|||
optsV2 = []v2object.Option{
|
||||
v2object.WithGlobalOpts(
|
||||
client.WithNetworkAddress(opts.addr),
|
||||
client.WithDialTimeout(opts.dialTimeout),
|
||||
),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package client
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/nspcc-dev/neofs-api-go/pkg"
|
||||
"github.com/nspcc-dev/neofs-api-go/pkg/token"
|
||||
|
@ -35,6 +36,8 @@ type (
|
|||
clientOptions struct {
|
||||
addr string
|
||||
|
||||
dialTimeout time.Duration
|
||||
|
||||
grpcOpts *grpcOptions
|
||||
}
|
||||
|
||||
|
@ -168,3 +171,10 @@ func WithGRPCConnection(grpcConn *grpc.ClientConn) Option {
|
|||
option.grpcOpts.conn = grpcConn
|
||||
})
|
||||
}
|
||||
|
||||
// WithDialTimeout returns option to set connection timeout to the remote node.
|
||||
func WithDialTimeout(dur time.Duration) Option {
|
||||
return newFuncClientOption(func(option *clientOptions) {
|
||||
option.dialTimeout = dur
|
||||
})
|
||||
}
|
||||
|
|
|
@ -97,8 +97,9 @@ func v2SessionClientFromOptions(opts *clientOptions) (cli *v2session.Client, err
|
|||
|
||||
case opts.addr != "":
|
||||
cli, err = v2session.NewClient(v2session.WithGlobalOpts(
|
||||
client.WithNetworkAddress(opts.addr)),
|
||||
)
|
||||
client.WithNetworkAddress(opts.addr),
|
||||
client.WithDialTimeout(opts.dialTimeout),
|
||||
))
|
||||
|
||||
default:
|
||||
return nil, errOptionsLack("Session")
|
||||
|
|
Loading…
Reference in a new issue