[#1421] metabase: Use LockPrm
to store Lock operation parameters
Refactor `Lock` method to use `LockPrm` and `LockRes` structures to store operation parameters and results, respectively. Signed-off-by: Aleksey Savchuk <a.savchuk@yadro.com>
This commit is contained in:
parent
3821645085
commit
0b7860100f
7 changed files with 77 additions and 20 deletions
|
@ -23,9 +23,12 @@ func TestDB_Lock(t *testing.T) {
|
|||
db := newDB(t)
|
||||
defer func() { require.NoError(t, db.Close(context.Background())) }()
|
||||
|
||||
var lockPrm meta.LockPrm
|
||||
lockPrm.SetContainer(cnr)
|
||||
|
||||
t.Run("empty locked list", func(t *testing.T) {
|
||||
require.Panics(t, func() { _ = db.Lock(context.Background(), cnr, oid.ID{}, nil) })
|
||||
require.Panics(t, func() { _ = db.Lock(context.Background(), cnr, oid.ID{}, []oid.ID{}) })
|
||||
lockPrm.SetTarget(oid.ID{})
|
||||
require.Panics(t, func() { _, _ = db.Lock(context.Background(), lockPrm) })
|
||||
})
|
||||
|
||||
t.Run("(ir)regular", func(t *testing.T) {
|
||||
|
@ -47,7 +50,8 @@ func TestDB_Lock(t *testing.T) {
|
|||
id, _ := obj.ID()
|
||||
|
||||
// try to lock it
|
||||
err = db.Lock(context.Background(), cnr, oidtest.ID(), []oid.ID{id})
|
||||
lockPrm.SetTarget(oidtest.ID(), id)
|
||||
_, err = db.Lock(context.Background(), lockPrm)
|
||||
if typ == objectSDK.TypeRegular {
|
||||
require.NoError(t, err, typ)
|
||||
} else {
|
||||
|
@ -198,7 +202,12 @@ func TestDB_Lock_Expired(t *testing.T) {
|
|||
require.ErrorIs(t, err, meta.ErrObjectIsExpired)
|
||||
|
||||
// lock the obj
|
||||
require.NoError(t, db.Lock(context.Background(), addr.Container(), oidtest.ID(), []oid.ID{addr.Object()}))
|
||||
var lockPrm meta.LockPrm
|
||||
lockPrm.SetContainer(addr.Container())
|
||||
lockPrm.SetTarget(oidtest.ID(), addr.Object())
|
||||
|
||||
_, err = db.Lock(context.Background(), lockPrm)
|
||||
require.NoError(t, err)
|
||||
|
||||
// object is expired but locked, thus, must be available
|
||||
_, err = metaGet(db, addr, false)
|
||||
|
@ -277,7 +286,11 @@ func putAndLockObj(t *testing.T, db *meta.DB, numOfLockedObjs int) ([]*objectSDK
|
|||
err := putBig(db, lockObj)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = db.Lock(context.Background(), cnr, lockID, lockedObjIDs)
|
||||
var lockPrm meta.LockPrm
|
||||
lockPrm.SetContainer(cnr)
|
||||
lockPrm.SetTarget(lockID, lockedObjIDs...)
|
||||
|
||||
_, err = db.Lock(context.Background(), lockPrm)
|
||||
require.NoError(t, err)
|
||||
|
||||
return lockedObjs, lockObj
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue