package deletesvc import ( "context" "fmt" "git.frostfs.info/TrueCloudLab/frostfs-node/internal/logs" objectSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object" oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id" ) func (exec *execCtx) executeLocal(ctx context.Context) error { exec.log.Debug(logs.DeleteFormingTombstoneStructure) if err := exec.formTombstone(ctx); err != nil { return err } exec.log.Debug(logs.DeleteTombstoneStructureSuccessfullyFormedSaving) return exec.saveTombstone(ctx) } func (exec *execCtx) formTombstone(ctx context.Context) error { tsLifetime, err := exec.svc.netInfo.TombstoneLifetime() if err != nil { return fmt.Errorf("fetch tombstone lifetime: %w", err) } exec.tombstone = objectSDK.NewTombstone() exec.tombstone.SetExpirationEpoch( exec.svc.netInfo.CurrentEpoch() + tsLifetime, ) exec.addMembers([]oid.ID{exec.address().Object()}) exec.log.Debug(logs.DeleteFormingSplitInfo) if err := exec.formSplitInfo(ctx); err != nil { return fmt.Errorf("form split info: %w", err) } exec.log.Debug(logs.DeleteSplitInfoSuccessfullyFormedCollectingMembers) exec.tombstone.SetSplitID(exec.splitInfo.SplitID()) if err := exec.collectMembers(ctx); err != nil { return err } exec.log.Debug(logs.DeleteMembersSuccessfullyCollected) return exec.initTombstoneObject() }