[#1175] metabase: Work with LOCK objects

After introduction of LOCK objects (of type `TypeLock`) complicated
extended its behavior:
  * create `lockers` container bucket (LCB) during PUT;
  * remove object from LCB during DELETE;
  * look up object in LCB during EXISTS;
  * get object from LCB during GET;
  * list objects from LCB during LIST with cursor;
  * select objects from LCB during SELECT with '*'.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2022-02-15 15:51:56 +03:00 committed by LeL
parent 9f13674a10
commit 9508633a7e
13 changed files with 97 additions and 18 deletions

View file

@ -3,7 +3,6 @@ package meta_test
import (
"testing"
objectCore "github.com/nspcc-dev/neofs-node/pkg/core/object"
meta "github.com/nspcc-dev/neofs-node/pkg/local_object_storage/metabase"
cidtest "github.com/nspcc-dev/neofs-sdk-go/container/id/test"
"github.com/nspcc-dev/neofs-sdk-go/object"
@ -34,7 +33,7 @@ func TestDB_Lock(t *testing.T) {
obj.SetContainerID(&cnr)
// save irregular object
err := meta.Put(db, objectCore.NewFromSDK(obj.Object()), nil)
err := meta.Put(db, obj, nil)
require.NoError(t, err, typ)
// try to lock it