[#195] Use exp epoch attribute instead of tick

Signed-off-by: Denis Kirillov <denis@nspcc.ru>
This commit is contained in:
Denis Kirillov 2022-03-17 17:03:06 +03:00 committed by Angira Kekteeva
parent cfcc8933e4
commit 9d19acadcd
4 changed files with 15 additions and 35 deletions

View file

@ -21,7 +21,6 @@ import (
cid "github.com/nspcc-dev/neofs-sdk-go/container/id"
"github.com/nspcc-dev/neofs-sdk-go/eacl"
"github.com/nspcc-dev/neofs-sdk-go/netmap"
"github.com/nspcc-dev/neofs-sdk-go/object/address"
oid "github.com/nspcc-dev/neofs-sdk-go/object/id"
"github.com/nspcc-dev/neofs-sdk-go/owner"
"github.com/nspcc-dev/neofs-sdk-go/pool"
@ -290,9 +289,7 @@ func (n *layer) Initialize(ctx context.Context, c Notificator) error {
return fmt.Errorf("already initialized")
}
if err := c.Subscribe(ctx, LockTopic, MsgHandlerFunc(n.handleLockTick)); err != nil {
return fmt.Errorf("couldn't initialize layer: %w", err)
}
// todo add notification handlers (e.g. for lifecycles)
c.Listen(ctx)
@ -304,19 +301,6 @@ func (n *layer) IsNotificationEnabled() bool {
return n.ncontroller != nil
}
func (n *layer) handleLockTick(ctx context.Context, msg *nats.Msg) error {
addr := address.NewAddress()
if err := addr.Parse(string(msg.Data)); err != nil {
return fmt.Errorf("invalid msg, address expected: %w", err)
}
n.log.Debug("handling lock tick", zap.String("address", string(msg.Data)))
// todo clear cache
// and make sure having right access
return n.objectDelete(ctx, addr.ContainerID(), addr.ObjectID())
}
// IsAuthenticatedRequest check if access box exists in current request.
func IsAuthenticatedRequest(ctx context.Context) bool {
_, ok := ctx.Value(api.BoxData).(*accessbox.Box)

View file

@ -33,15 +33,12 @@ func TestObjectLockAttributes(t *testing.T) {
lockObj := tc.getSystemObject(obj.RetentionObject())
require.NotNil(t, lockObj)
tickTopic, tickEpoch := false, false
expEpoch := false
for _, attr := range lockObj.Attributes() {
if attr.Key() == AttributeSysTickEpoch {
tickEpoch = true
} else if attr.Key() == AttributeSysTickTopic {
tickTopic = true
if attr.Key() == AttributeExpirationEpoch {
expEpoch = true
}
}
require.Truef(t, tickTopic, "system header __NEOFS__TICK_TOPIC presence")
require.Truef(t, tickEpoch, "system header __NEOFS__TICK_EPOCH presence")
require.Truef(t, expEpoch, "system header __NEOFS__EXPIRATION_EPOCH presence")
}

View file

@ -18,11 +18,11 @@ import (
)
const (
AttributeComplianceMode = ".s3-compliance-mode"
AttributeRetainUntil = ".s3-retain-until"
AttributeSysTickEpoch = "__NEOFS__TICK_EPOCH"
AttributeSysTickTopic = "__NEOFS__TICK_TOPIC"
LockTopic = "lock"
AttributeComplianceMode = ".s3-compliance-mode"
AttributeRetainUntil = ".s3-retain-until"
AttributeExpirationEpoch = "__NEOFS__EXPIRATION_EPOCH"
AttributeSysTickEpoch = "__NEOFS__TICK_EPOCH"
AttributeSysTickTopic = "__NEOFS__TICK_TOPIC"
)
func (n *layer) PutSystemObject(ctx context.Context, p *PutSystemObjectParams) (*data.ObjectInfo, error) {
@ -296,8 +296,7 @@ func (n *layer) attributesFromLock(ctx context.Context, lock *data.ObjectLock) (
}
attrs := [][2]string{
{AttributeSysTickEpoch, strconv.FormatUint(exp, 10)},
{AttributeSysTickTopic, LockTopic},
{AttributeExpirationEpoch, strconv.FormatUint(exp, 10)},
{AttributeRetainUntil, lock.Until.Format(time.RFC3339)},
}