From ede990af39ca7222627f746b0a014be9c04be8d5 Mon Sep 17 00:00:00 2001 From: Dmitrii Stepanov Date: Fri, 28 Jun 2024 16:22:12 +0300 Subject: [PATCH 1/4] [#1213] fmt: Drop unused interfaces Signed-off-by: Dmitrii Stepanov --- pkg/core/object/fmt.go | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/pkg/core/object/fmt.go b/pkg/core/object/fmt.go index b997aa182..96f721806 100644 --- a/pkg/core/object/fmt.go +++ b/pkg/core/object/fmt.go @@ -14,7 +14,6 @@ import ( "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/core/netmap" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/logger" "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/acl" - cid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id" frostfsecdsa "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/crypto/ecdsa" objectSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object" oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id" @@ -41,30 +40,12 @@ type cfg struct { verifyTokenIssuer bool } -// DeleteHandler is an interface of delete queue processor. -type DeleteHandler interface { - // DeleteObjects places objects to a removal queue. - // - // Returns apistatus.LockNonRegularObject if at least one object - // is locked. - DeleteObjects(oid.Address, ...oid.Address) error -} - // LockSource is a source of lock relations between the objects. type LockSource interface { // IsLocked must clarify object's lock status. IsLocked(ctx context.Context, address oid.Address) (bool, error) } -// Locker is an object lock storage interface. -type Locker interface { - // Lock list of objects as locked by locker in the specified container. - // - // Returns apistatus.LockNonRegularObject if at least object in locked - // list is irregular (not type of REGULAR). - Lock(idCnr cid.ID, locker oid.ID, locked []oid.ID) error -} - var errNilObject = errors.New("object is nil") var errNilID = errors.New("missing identifier") -- 2.45.2 From 6a91df913805a4423f3751ee432e0463925186bc Mon Sep 17 00:00:00 2001 From: Dmitrii Stepanov Date: Fri, 28 Jun 2024 16:22:37 +0300 Subject: [PATCH 2/4] [#1213] deleteSvc: Do not allow to delete EC chunks Signed-off-by: Dmitrii Stepanov --- pkg/services/object/delete/exec.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/services/object/delete/exec.go b/pkg/services/object/delete/exec.go index 22928dcd5..c2f92950f 100644 --- a/pkg/services/object/delete/exec.go +++ b/pkg/services/object/delete/exec.go @@ -17,6 +17,8 @@ import ( "go.uber.org/zap" ) +var errDeleteECChunk = errors.New("invalid operation: delete EC object chunk") + type execCtx struct { svc *Service @@ -66,13 +68,16 @@ func (exec *execCtx) newAddress(id oid.ID) oid.Address { } func (exec *execCtx) formExtendedInfo(ctx context.Context) error { - _, err := exec.svc.header.head(ctx, exec) + obj, err := exec.svc.header.head(ctx, exec) var errSplitInfo *objectSDK.SplitInfoError var errECInfo *objectSDK.ECInfoError switch { case err == nil: + if ech := obj.ECHeader(); ech != nil { + return errDeleteECChunk + } return nil case errors.As(err, &errSplitInfo): exec.splitInfo = errSplitInfo.SplitInfo() -- 2.45.2 From 287a2431b741e1f9eca2b4cc60bf1e4954a42586 Mon Sep 17 00:00:00 2001 From: Dmitrii Stepanov Date: Fri, 28 Jun 2024 17:45:00 +0300 Subject: [PATCH 3/4] [#1213] cli: Do not allow to lock EC chunks Signed-off-by: Dmitrii Stepanov --- cmd/frostfs-cli/modules/object/util.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cmd/frostfs-cli/modules/object/util.go b/cmd/frostfs-cli/modules/object/util.go index ff6b3219d..381c790e9 100644 --- a/cmd/frostfs-cli/modules/object/util.go +++ b/cmd/frostfs-cli/modules/object/util.go @@ -354,7 +354,7 @@ func collectObjectRelatives(cmd *cobra.Command, cli *client.Client, cnr cid.ID, Prepare(cmd, &prmHead) - _, err := internal.HeadObject(cmd.Context(), prmHead) + o, err := internal.HeadObject(cmd.Context(), prmHead) var errSplit *objectSDK.SplitInfoError var errEC *objectSDK.ECInfoError @@ -364,6 +364,9 @@ func collectObjectRelatives(cmd *cobra.Command, cli *client.Client, cnr cid.ID, commonCmd.ExitOnErr(cmd, "failed to get raw object header: %w", err) case err == nil: common.PrintVerbose(cmd, "Raw header received - object is singular.") + if ech := o.Header().ECHeader(); ech != nil { + commonCmd.ExitOnErr(cmd, "Lock EC chunk failed: %w", errors.ErrUnsupported) + } return nil case errors.As(err, &errSplit): common.PrintVerbose(cmd, "Split information received - object is virtual.") -- 2.45.2 From 77866f6715209fb7684772c289061334419ff65e Mon Sep 17 00:00:00 2001 From: Dmitrii Stepanov Date: Fri, 28 Jun 2024 22:36:29 +0300 Subject: [PATCH 4/4] [#1213] engine: Drop unused Signed-off-by: Dmitrii Stepanov --- pkg/local_object_storage/engine/head.go | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/pkg/local_object_storage/engine/head.go b/pkg/local_object_storage/engine/head.go index 97fb5be3a..92d1b20fc 100644 --- a/pkg/local_object_storage/engine/head.go +++ b/pkg/local_object_storage/engine/head.go @@ -151,18 +151,3 @@ func Head(ctx context.Context, storage *StorageEngine, addr oid.Address) (*objec return res.Header(), nil } - -// HeadRaw reads object header from local storage by provided address and raw -// flag. -func HeadRaw(ctx context.Context, storage *StorageEngine, addr oid.Address, raw bool) (*objectSDK.Object, error) { - var headPrm HeadPrm - headPrm.WithAddress(addr) - headPrm.WithRaw(raw) - - res, err := storage.Head(ctx, headPrm) - if err != nil { - return nil, err - } - - return res.Header(), nil -} -- 2.45.2