[#809] client: Refactor PrmInit, PrmDial usage

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
This commit is contained in:
Airat Arifullin 2023-11-15 15:28:45 +03:00 committed by Evgenii Stratonikov
parent 76ff26039c
commit 02454df14a
4 changed files with 36 additions and 36 deletions

View file

@ -43,26 +43,28 @@ func getSDKClientByFlag(cmd *cobra.Command, key *ecdsa.PrivateKey, endpointFlag
// GetSDKClient returns default frostfs-sdk-go client. // GetSDKClient returns default frostfs-sdk-go client.
func GetSDKClient(ctx context.Context, cmd *cobra.Command, key *ecdsa.PrivateKey, addr network.Address) (*client.Client, error) { func GetSDKClient(ctx context.Context, cmd *cobra.Command, key *ecdsa.PrivateKey, addr network.Address) (*client.Client, error) {
var ( var c client.Client
c client.Client
prmInit client.PrmInit
prmDial client.PrmDial
)
prmInit.SetDefaultPrivateKey(*key) prmInit := client.PrmInit{
prmDial.SetServerURI(addr.URIAddr()) Key: *key,
}
prmDial := client.PrmDial{
Endpoint: addr.URIAddr(),
GRPCDialOptions: []grpc.DialOption{
grpc.WithChainUnaryInterceptor(tracing.NewUnaryClientInteceptor()),
grpc.WithChainStreamInterceptor(tracing.NewStreamClientInterceptor()),
},
}
if timeout := viper.GetDuration(commonflags.Timeout); timeout > 0 { if timeout := viper.GetDuration(commonflags.Timeout); timeout > 0 {
// In CLI we can only set a timeout for the whole operation. // In CLI we can only set a timeout for the whole operation.
// By also setting stream timeout we ensure that no operation hands // By also setting stream timeout we ensure that no operation hands
// for too long. // for too long.
prmDial.SetTimeout(timeout) prmDial.DialTimeout = timeout
prmDial.SetStreamTimeout(timeout) prmDial.StreamTimeout = timeout
common.PrintVerbose(cmd, "Set request timeout to %s.", timeout) common.PrintVerbose(cmd, "Set request timeout to %s.", timeout)
} }
prmDial.SetGRPCDialOptions(
grpc.WithChainUnaryInterceptor(tracing.NewUnaryClientInteceptor()),
grpc.WithChainStreamInterceptor(tracing.NewStreamClientInterceptor()))
c.Init(prmInit) c.Init(prmInit)

2
go.mod
View file

@ -6,7 +6,7 @@ require (
git.frostfs.info/TrueCloudLab/frostfs-api-go/v2 v2.16.1-0.20231031104748-498877e378fd git.frostfs.info/TrueCloudLab/frostfs-api-go/v2 v2.16.1-0.20231031104748-498877e378fd
git.frostfs.info/TrueCloudLab/frostfs-contract v0.18.1-0.20231102065436-9ed3845aa989 git.frostfs.info/TrueCloudLab/frostfs-contract v0.18.1-0.20231102065436-9ed3845aa989
git.frostfs.info/TrueCloudLab/frostfs-observability v0.0.0-20231101111734-b3ad3335ff65 git.frostfs.info/TrueCloudLab/frostfs-observability v0.0.0-20231101111734-b3ad3335ff65
git.frostfs.info/TrueCloudLab/frostfs-sdk-go v0.0.0-20231101144515-6fbe1595cb3d git.frostfs.info/TrueCloudLab/frostfs-sdk-go v0.0.0-20231114081800-3787477133f3
git.frostfs.info/TrueCloudLab/hrw v1.2.1 git.frostfs.info/TrueCloudLab/hrw v1.2.1
git.frostfs.info/TrueCloudLab/policy-engine v0.0.0-20231115094736-5db67021e10f git.frostfs.info/TrueCloudLab/policy-engine v0.0.0-20231115094736-5db67021e10f
git.frostfs.info/TrueCloudLab/tzhash v1.8.0 git.frostfs.info/TrueCloudLab/tzhash v1.8.0

BIN
go.sum

Binary file not shown.

View file

@ -51,32 +51,18 @@ func newMultiClient(addr network.AddressGroup, opts ClientCacheOpts) *multiClien
} }
func (x *multiClient) createForAddress(ctx context.Context, addr network.Address) (clientcore.Client, error) { func (x *multiClient) createForAddress(ctx context.Context, addr network.Address) (clientcore.Client, error) {
var ( var c client.Client
c client.Client
prmInit client.PrmInit
prmDial client.PrmDial
)
prmInit.DisableFrostFSFailuresResolution()
prmDial.SetServerURI(addr.URIAddr())
prmInit := client.PrmInit{
DisableFrostFSErrorResolution: true,
}
if x.opts.Key != nil { if x.opts.Key != nil {
prmInit.SetDefaultPrivateKey(*x.opts.Key) prmInit.Key = *x.opts.Key
} }
if x.opts.DialTimeout > 0 { prmDial := client.PrmDial{
prmDial.SetTimeout(x.opts.DialTimeout) Endpoint: addr.URIAddr(),
} GRPCDialOptions: []grpc.DialOption{
if x.opts.StreamTimeout > 0 {
prmDial.SetStreamTimeout(x.opts.StreamTimeout)
}
if x.opts.ResponseCallback != nil {
prmInit.SetResponseInfoCallback(x.opts.ResponseCallback)
}
prmDial.SetGRPCDialOptions(
grpc.WithChainUnaryInterceptor( grpc.WithChainUnaryInterceptor(
metrics.NewUnaryClientInterceptor(), metrics.NewUnaryClientInterceptor(),
tracing.NewUnaryClientInteceptor(), tracing.NewUnaryClientInteceptor(),
@ -85,7 +71,19 @@ func (x *multiClient) createForAddress(ctx context.Context, addr network.Address
metrics.NewStreamClientInterceptor(), metrics.NewStreamClientInterceptor(),
tracing.NewStreamClientInterceptor(), tracing.NewStreamClientInterceptor(),
), ),
) },
}
if x.opts.DialTimeout > 0 {
prmDial.DialTimeout = x.opts.DialTimeout
}
if x.opts.StreamTimeout > 0 {
prmDial.StreamTimeout = x.opts.StreamTimeout
}
if x.opts.ResponseCallback != nil {
prmInit.ResponseInfoCallback = x.opts.ResponseCallback
}
c.Init(prmInit) c.Init(prmInit)
err := c.Dial(ctx, prmDial) err := c.Dial(ctx, prmDial)