From 25e08425130584630a9bc20f6c9d3a2fb5a4da61 Mon Sep 17 00:00:00 2001 From: Airat Arifullin Date: Mon, 31 Jul 2023 14:08:50 +0300 Subject: [PATCH] [#121] client: Make pool PrmContainerPut struct fields public Signed-off-by: Airat Arifullin a.arifullin@yadro.com --- client/container_put.go | 4 ++-- pool/pool.go | 33 ++++++++++++++++++++++----------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/client/container_put.go b/client/container_put.go index ebf90e8..f186abd 100644 --- a/client/container_put.go +++ b/client/container_put.go @@ -30,7 +30,7 @@ type PrmContainerPut struct { // SetContainer sets structured information about new FrostFS container. // Required parameter. // -// NOTE: method is deprecated +// Deprecated: Use PrmContainerPut.Container instead. func (x *PrmContainerPut) SetContainer(cnr container.Container) { x.Container = &cnr } @@ -44,7 +44,7 @@ func (x *PrmContainerPut) SetContainer(cnr container.Container) { // - session operation MUST be session.VerbContainerPut (ForVerb) // - token MUST be signed using private key of the owner of the container to be saved // -// NOTE: method is deprecated +// Deprecated: Use PrmContainerPut.Session instead. func (x *PrmContainerPut) WithinSession(s session.Container) { x.Session = &s } diff --git a/pool/pool.go b/pool/pool.go index 2f662d3..04b84aa 100644 --- a/pool/pool.go +++ b/pool/pool.go @@ -407,7 +407,7 @@ func (c *clientWrapper) containerPut(ctx context.Context, prm PrmContainerPut) ( } start := time.Now() - res, err := cl.ContainerPut(ctx, prm.prmClient) + res, err := cl.ContainerPut(ctx, prm.ClientParams) c.incRequests(time.Since(start), methodContainerPut) var st apistatus.Status if res != nil { @@ -417,13 +417,13 @@ func (c *clientWrapper) containerPut(ctx context.Context, prm PrmContainerPut) ( return cid.ID{}, fmt.Errorf("container put on client: %w", err) } - if !prm.waitParamsSet { - prm.waitParams.setDefaults() + if prm.WaitParams == nil { + prm.WaitParams = defaultWaitParams() } idCnr := res.ID() - err = waitForContainerPresence(ctx, c, idCnr, &prm.waitParams) + err = waitForContainerPresence(ctx, c, idCnr, prm.WaitParams) if err = c.handleError(ctx, nil, err); err != nil { return cid.ID{}, fmt.Errorf("wait container presence on client: %w", err) } @@ -1221,6 +1221,13 @@ func (x *WaitParams) setDefaults() { x.pollInterval = 5 * time.Second } +func defaultWaitParams() *WaitParams { + return &WaitParams{ + timeout: 120 * time.Second, + pollInterval: 5 * time.Second, + } +} + // checkForPositive panics if any of the wait params isn't positive. func (x *WaitParams) checkForPositive() { if x.timeout <= 0 || x.pollInterval <= 0 { @@ -1400,35 +1407,39 @@ func (x *PrmObjectSearch) SetFilters(filters object.SearchFilters) { // PrmContainerPut groups parameters of PutContainer operation. type PrmContainerPut struct { - prmClient sdkClient.PrmContainerPut + ClientParams sdkClient.PrmContainerPut - waitParams WaitParams - waitParamsSet bool + WaitParams *WaitParams } // SetContainer container structure to be used as a parameter of the base // client's operation. // // See git.frostfs.info/TrueCloudLab/frostfs-sdk-go/client.PrmContainerPut.SetContainer. +// +// Deprecated: Use PrmContainerPut.ClientParams.Container instead. func (x *PrmContainerPut) SetContainer(cnr container.Container) { - x.prmClient.SetContainer(cnr) + x.ClientParams.SetContainer(cnr) } // WithinSession specifies session to be used as a parameter of the base // client's operation. // // See git.frostfs.info/TrueCloudLab/frostfs-sdk-go/client.PrmContainerPut.WithinSession. +// +// Deprecated: Use PrmContainerPut.ClientParams.Session instead. func (x *PrmContainerPut) WithinSession(s session.Container) { - x.prmClient.WithinSession(s) + x.ClientParams.WithinSession(s) } // SetWaitParams specifies timeout params to complete operation. // If not provided the default one will be used. // Panics if any of the wait params isn't positive. +// +// Deprecated: Use PrmContainerPut.ClientParams.WaitParams instead. func (x *PrmContainerPut) SetWaitParams(waitParams WaitParams) { waitParams.checkForPositive() - x.waitParams = waitParams - x.waitParamsSet = true + x.WaitParams = &waitParams } // PrmContainerGet groups parameters of GetContainer operation.