[#223] objectsvc: Refactor request parameters

Resolve containedctx linter for commonPrm.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
Dmitrii Stepanov 2023-04-06 15:36:37 +03:00
parent ccf8463e69
commit 2ed9fd3f94
5 changed files with 19 additions and 35 deletions

View file

@ -18,12 +18,9 @@ import (
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/session"
)
// nolint: containedctx
type commonPrm struct {
cli coreclient.Client
ctx context.Context
key *ecdsa.PrivateKey
tokenSession *session.Object
@ -42,13 +39,6 @@ func (x *commonPrm) SetClient(cli coreclient.Client) {
x.cli = cli
}
// SetContext sets context.Context for network communication.
//
// Required parameter.
func (x *commonPrm) SetContext(ctx context.Context) {
x.ctx = ctx
}
// SetPrivateKey sets private key to sign the request(s).
//
// Required parameter.
@ -138,7 +128,7 @@ func (x GetObjectRes) Object() *object.Object {
// - error of type *apistatus.ObjectAlreadyRemoved if the requested object is marked to be removed.
//
// GetObject ignores the provided session if it is not related to the requested object.
func GetObject(prm GetObjectPrm) (*GetObjectRes, error) {
func GetObject(ctx context.Context, prm GetObjectPrm) (*GetObjectRes, error) {
// here we ignore session if it is opened for other object since such
// request will almost definitely fail. The case can occur, for example,
// when session is bound to the parent object and child object is requested.
@ -159,7 +149,7 @@ func GetObject(prm GetObjectPrm) (*GetObjectRes, error) {
prm.cliPrm.UseKey(*prm.key)
}
rdr, err := prm.cli.ObjectGetInit(prm.ctx, prm.cliPrm)
rdr, err := prm.cli.ObjectGetInit(ctx, prm.cliPrm)
if err != nil {
return nil, fmt.Errorf("init object reading: %w", err)
}
@ -229,7 +219,7 @@ func (x HeadObjectRes) Header() *object.Object {
// HeadObject reads object header by address.
//
// Client, context and key must be set.
// Client and key must be set.
//
// Returns any error which prevented the operation from completing correctly in error return.
// Returns:
@ -238,7 +228,7 @@ func (x HeadObjectRes) Header() *object.Object {
// error of type *apistatus.ObjectAlreadyRemoved if the requested object is marked to be removed.
//
// HeadObject ignores the provided session if it is not related to the requested object.
func HeadObject(prm HeadObjectPrm) (*HeadObjectRes, error) {
func HeadObject(ctx context.Context, prm HeadObjectPrm) (*HeadObjectRes, error) {
if prm.local {
prm.cliPrm.MarkLocal()
}
@ -254,7 +244,7 @@ func HeadObject(prm HeadObjectPrm) (*HeadObjectRes, error) {
prm.cliPrm.WithXHeaders(prm.xHeaders...)
cliRes, err := prm.cli.ObjectHead(prm.ctx, prm.cliPrm)
cliRes, err := prm.cli.ObjectHead(ctx, prm.cliPrm)
if err == nil {
// pull out an error from status
err = apistatus.ErrFromStatus(cliRes.Status())
@ -327,7 +317,7 @@ const maxInitialBufferSize = 1024 * 1024 // 1 MiB
// PayloadRange reads object payload range by address.
//
// Client, context and key must be set.
// Client and key must be set.
//
// Returns any error which prevented the operation from completing correctly in error return.
// Returns:
@ -337,7 +327,7 @@ const maxInitialBufferSize = 1024 * 1024 // 1 MiB
// error of type *apistatus.ObjectOutOfRange if the requested range is too big.
//
// PayloadRange ignores the provided session if it is not related to the requested object.
func PayloadRange(prm PayloadRangePrm) (*PayloadRangeRes, error) {
func PayloadRange(ctx context.Context, prm PayloadRangePrm) (*PayloadRangeRes, error) {
if prm.local {
prm.cliPrm.MarkLocal()
}
@ -354,7 +344,7 @@ func PayloadRange(prm PayloadRangePrm) (*PayloadRangeRes, error) {
prm.cliPrm.SetLength(prm.ln)
prm.cliPrm.WithXHeaders(prm.xHeaders...)
rdr, err := prm.cli.ObjectRangeInit(prm.ctx, prm.cliPrm)
rdr, err := prm.cli.ObjectRangeInit(ctx, prm.cliPrm)
if err != nil {
return nil, fmt.Errorf("init payload reading: %w", err)
}
@ -408,10 +398,10 @@ func (x PutObjectRes) ID() oid.ID {
// PutObject saves the object in local storage of the remote node.
//
// Client, context and key must be set.
// Client and key must be set.
//
// Returns any error which prevented the operation from completing correctly in error return.
func PutObject(prm PutObjectPrm) (*PutObjectRes, error) {
func PutObject(ctx context.Context, prm PutObjectPrm) (*PutObjectRes, error) {
var prmCli client.PrmObjectPutInit
prmCli.MarkLocal()
@ -430,7 +420,7 @@ func PutObject(prm PutObjectPrm) (*PutObjectRes, error) {
prmCli.WithXHeaders(prm.xHeaders...)
w, err := prm.cli.ObjectPutInit(prm.ctx, prmCli)
w, err := prm.cli.ObjectPutInit(ctx, prmCli)
if err != nil {
return nil, fmt.Errorf("init object writing on client: %w", err)
}
@ -487,7 +477,7 @@ func (x SearchObjectsRes) IDList() []oid.ID {
// SearchObjects selects objects from container which match the filters.
//
// Returns any error which prevented the operation from completing correctly in error return.
func SearchObjects(prm SearchObjectsPrm) (*SearchObjectsRes, error) {
func SearchObjects(ctx context.Context, prm SearchObjectsPrm) (*SearchObjectsRes, error) {
if prm.local {
prm.cliPrm.MarkLocal()
}
@ -506,7 +496,7 @@ func SearchObjects(prm SearchObjectsPrm) (*SearchObjectsRes, error) {
prm.cliPrm.UseKey(*prm.key)
}
rdr, err := prm.cli.ObjectSearchInit(prm.ctx, prm.cliPrm)
rdr, err := prm.cli.ObjectSearchInit(ctx, prm.cliPrm)
if err != nil {
return nil, fmt.Errorf("init object searching in client: %w", err)
}