Skip to content

Commit

Permalink
*: Remove tree using for locking
Browse files Browse the repository at this point in the history
Signed-off-by: Evgenii Baidakov <[email protected]>
  • Loading branch information
smallhive committed Jan 31, 2025
1 parent 023e51a commit 781c210
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions api/layer/system_object.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,6 @@ type PutLockInfoParams struct {

func (n *layer) PutLockInfo(ctx context.Context, p *PutLockInfoParams) (err error) {
newLock := p.NewLock
versionNode := p.NodeVersion
// sometimes node version can be provided from executing context
// if not, then receive node version from tree service
if versionNode == nil {
versionNode, err = n.getNodeVersionFromCacheOrNeofs(ctx, p.ObjVersion)
if err != nil {
return err
}
}

lockInfo, err := n.getLockDataFromObjects(ctx, p.ObjVersion.BktInfo, p.ObjVersion.ObjectName, p.ObjVersion.VersionID)
if err != nil && !errorsStd.Is(err, ErrNodeNotFound) {
Expand All @@ -52,6 +43,13 @@ func (n *layer) PutLockInfo(ctx context.Context, p *PutLockInfoParams) (err erro
lockInfo = &data.LockInfo{}
}

objList, err := n.searchAllVersionsInNeoFS(ctx, p.ObjVersion.BktInfo, p.ObjVersion.BktInfo.Owner, p.ObjVersion.ObjectName, p.ObjVersion.VersionID == "")
if err != nil {
return err
}

objectToLock := objList[0].GetID()

if newLock.Retention != nil {
if lockInfo.IsRetentionSet() {
if lockInfo.IsCompliance() {
Expand All @@ -73,7 +71,7 @@ func (n *layer) PutLockInfo(ctx context.Context, p *PutLockInfoParams) (err erro
}
}
lock := &data.ObjectLock{Retention: newLock.Retention}
retentionOID, err := n.putLockObject(ctx, p.ObjVersion.BktInfo, versionNode.OID, lock, p.CopiesNumber, p.ObjVersion.ObjectName, p.ObjVersion.VersionID)
retentionOID, err := n.putLockObject(ctx, p.ObjVersion.BktInfo, objectToLock, lock, p.CopiesNumber, p.ObjVersion.ObjectName, p.ObjVersion.VersionID)
if err != nil {
return err
}
Expand All @@ -83,7 +81,7 @@ func (n *layer) PutLockInfo(ctx context.Context, p *PutLockInfoParams) (err erro
if newLock.LegalHold != nil {
if newLock.LegalHold.Enabled && !lockInfo.IsLegalHoldSet() {
lock := &data.ObjectLock{LegalHold: newLock.LegalHold}
legalHoldOID, err := n.putLockObject(ctx, p.ObjVersion.BktInfo, versionNode.OID, lock, p.CopiesNumber, p.ObjVersion.ObjectName, p.ObjVersion.VersionID)
legalHoldOID, err := n.putLockObject(ctx, p.ObjVersion.BktInfo, objectToLock, lock, p.CopiesNumber, p.ObjVersion.ObjectName, p.ObjVersion.VersionID)
if err != nil {
return err
}
Expand Down

0 comments on commit 781c210

Please sign in to comment.