forked from TrueCloudLab/frostfs-node
[#838] metabase: Count user objects
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
parent
f314da4af3
commit
d30ab5f29e
13 changed files with 180 additions and 58 deletions
|
@ -51,6 +51,7 @@ func TestCounters(t *testing.T) {
|
|||
exp[cnrID] = meta.ObjectCounters{
|
||||
Logic: 1,
|
||||
Phy: 1,
|
||||
User: 1,
|
||||
}
|
||||
|
||||
_, err := db.Put(context.Background(), prm)
|
||||
|
@ -80,6 +81,7 @@ func TestCounters(t *testing.T) {
|
|||
exp[cnrID] = meta.ObjectCounters{
|
||||
Logic: 1,
|
||||
Phy: 1,
|
||||
User: 1,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -96,11 +98,13 @@ func TestCounters(t *testing.T) {
|
|||
|
||||
require.Equal(t, uint64(i), c.Phy)
|
||||
require.Equal(t, uint64(i), c.Logic)
|
||||
require.Equal(t, uint64(i), c.User)
|
||||
|
||||
cnrID, _ := oo[i].ContainerID()
|
||||
if v, ok := exp[cnrID]; ok {
|
||||
v.Phy--
|
||||
v.Logic--
|
||||
v.User--
|
||||
if v.IsZero() {
|
||||
delete(exp, cnrID)
|
||||
} else {
|
||||
|
@ -125,6 +129,7 @@ func TestCounters(t *testing.T) {
|
|||
exp[cnrID] = meta.ObjectCounters{
|
||||
Logic: 1,
|
||||
Phy: 1,
|
||||
User: 1,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -141,6 +146,7 @@ func TestCounters(t *testing.T) {
|
|||
for _, addr := range inhumedObjs {
|
||||
if v, ok := exp[addr.Container()]; ok {
|
||||
v.Logic--
|
||||
v.User--
|
||||
if v.IsZero() {
|
||||
delete(exp, addr.Container())
|
||||
} else {
|
||||
|
@ -156,12 +162,14 @@ func TestCounters(t *testing.T) {
|
|||
res, err := db.Inhume(context.Background(), prm)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint64(len(inhumedObjs)), res.AvailableInhumed())
|
||||
require.Equal(t, uint64(len(inhumedObjs)), res.UserInhumed())
|
||||
|
||||
c, err := db.ObjectCounters()
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, uint64(objCount), c.Phy)
|
||||
require.Equal(t, uint64(objCount-len(inhumedObjs)), c.Logic)
|
||||
require.Equal(t, uint64(objCount-len(inhumedObjs)), c.User)
|
||||
|
||||
cc, err := db.ContainerCounters(context.Background())
|
||||
require.NoError(t, err)
|
||||
|
@ -182,12 +190,14 @@ func TestCounters(t *testing.T) {
|
|||
o := testutil.GenerateObject()
|
||||
if i < objCount/2 { // half of the objs will have the parent
|
||||
o.SetParent(parObj)
|
||||
o.SetSplitID(objectSDK.NewSplitID())
|
||||
}
|
||||
|
||||
cnrID, _ := o.ContainerID()
|
||||
exp[cnrID] = meta.ObjectCounters{
|
||||
Logic: 1,
|
||||
Phy: 1,
|
||||
User: 1,
|
||||
}
|
||||
|
||||
require.NoError(t, putBig(db, o))
|
||||
|
@ -196,6 +206,7 @@ func TestCounters(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
require.Equal(t, uint64(i+1), c.Phy)
|
||||
require.Equal(t, uint64(i+1), c.Logic)
|
||||
require.Equal(t, uint64(i+1), c.User)
|
||||
|
||||
cc, err := db.ContainerCounters(context.Background())
|
||||
require.NoError(t, err)
|
||||
|
@ -214,6 +225,7 @@ func TestCounters(t *testing.T) {
|
|||
exp[cnrID] = meta.ObjectCounters{
|
||||
Logic: 1,
|
||||
Phy: 1,
|
||||
User: 1,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -227,10 +239,13 @@ func TestCounters(t *testing.T) {
|
|||
c, err := db.ObjectCounters()
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint64(objCount-i-1), c.Phy)
|
||||
require.Equal(t, uint64(objCount-i-1), c.Logic)
|
||||
require.Equal(t, uint64(objCount-i-1), c.User)
|
||||
|
||||
if v, ok := exp[addr.Container()]; ok {
|
||||
v.Logic--
|
||||
v.Phy--
|
||||
v.User--
|
||||
if v.IsZero() {
|
||||
delete(exp, addr.Container())
|
||||
} else {
|
||||
|
@ -251,6 +266,7 @@ func TestCounters(t *testing.T) {
|
|||
exp[cnrID] = meta.ObjectCounters{
|
||||
Logic: 1,
|
||||
Phy: 1,
|
||||
User: 1,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -267,6 +283,7 @@ func TestCounters(t *testing.T) {
|
|||
for _, addr := range inhumedObjs {
|
||||
if v, ok := exp[addr.Container()]; ok {
|
||||
v.Logic--
|
||||
v.User--
|
||||
if v.IsZero() {
|
||||
delete(exp, addr.Container())
|
||||
} else {
|
||||
|
@ -287,6 +304,7 @@ func TestCounters(t *testing.T) {
|
|||
|
||||
require.Equal(t, uint64(objCount), c.Phy)
|
||||
require.Equal(t, uint64(objCount-len(inhumedObjs)), c.Logic)
|
||||
require.Equal(t, uint64(objCount-len(inhumedObjs)), c.User)
|
||||
|
||||
cc, err := db.ContainerCounters(context.Background())
|
||||
require.NoError(t, err)
|
||||
|
@ -318,6 +336,7 @@ func TestCounters_Expired(t *testing.T) {
|
|||
exp[addr.Container()] = meta.ObjectCounters{
|
||||
Logic: 1,
|
||||
Phy: 1,
|
||||
User: 1,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -327,6 +346,7 @@ func TestCounters_Expired(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
require.Equal(t, uint64(objCount), c.Phy)
|
||||
require.Equal(t, uint64(objCount), c.Logic)
|
||||
require.Equal(t, uint64(objCount), c.User)
|
||||
|
||||
cc, err := db.ContainerCounters(context.Background())
|
||||
require.NoError(t, err)
|
||||
|
@ -347,6 +367,7 @@ func TestCounters_Expired(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
require.Equal(t, uint64(objCount), c.Phy)
|
||||
require.Equal(t, uint64(objCount), c.Logic)
|
||||
require.Equal(t, uint64(objCount), c.User)
|
||||
|
||||
cc, err = db.ContainerCounters(context.Background())
|
||||
require.NoError(t, err)
|
||||
|
@ -369,15 +390,18 @@ func TestCounters_Expired(t *testing.T) {
|
|||
inhumeRes, err := db.Inhume(context.Background(), inhumePrm)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint64(1), inhumeRes.AvailableInhumed())
|
||||
require.Equal(t, uint64(1), inhumeRes.UserInhumed())
|
||||
|
||||
c, err = db.ObjectCounters()
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, uint64(len(oo)), c.Phy)
|
||||
require.Equal(t, uint64(len(oo)-1), c.Logic)
|
||||
require.Equal(t, uint64(len(oo)-1), c.User)
|
||||
|
||||
if v, ok := exp[oo[0].Container()]; ok {
|
||||
v.Logic--
|
||||
v.User--
|
||||
if v.IsZero() {
|
||||
delete(exp, oo[0].Container())
|
||||
} else {
|
||||
|
@ -400,6 +424,7 @@ func TestCounters_Expired(t *testing.T) {
|
|||
deleteRes, err := db.Delete(context.Background(), deletePrm)
|
||||
require.NoError(t, err)
|
||||
require.Zero(t, deleteRes.AvailableObjectsRemoved())
|
||||
require.Zero(t, deleteRes.UserObjectsRemoved())
|
||||
|
||||
if v, ok := exp[oo[0].Container()]; ok {
|
||||
v.Phy--
|
||||
|
@ -416,6 +441,7 @@ func TestCounters_Expired(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
require.Equal(t, uint64(len(oo)), c.Phy)
|
||||
require.Equal(t, uint64(len(oo)), c.Logic)
|
||||
require.Equal(t, uint64(len(oo)), c.User)
|
||||
|
||||
cc, err = db.ContainerCounters(context.Background())
|
||||
require.NoError(t, err)
|
||||
|
@ -431,10 +457,12 @@ func TestCounters_Expired(t *testing.T) {
|
|||
deleteRes, err = db.Delete(context.Background(), deletePrm)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint64(1), deleteRes.AvailableObjectsRemoved())
|
||||
require.Equal(t, uint64(1), deleteRes.UserObjectsRemoved())
|
||||
|
||||
if v, ok := exp[oo[0].Container()]; ok {
|
||||
v.Phy--
|
||||
v.Logic--
|
||||
v.User--
|
||||
if v.IsZero() {
|
||||
delete(exp, oo[0].Container())
|
||||
} else {
|
||||
|
@ -448,6 +476,7 @@ func TestCounters_Expired(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
require.Equal(t, uint64(len(oo)), c.Phy)
|
||||
require.Equal(t, uint64(len(oo)), c.Logic)
|
||||
require.Equal(t, uint64(len(oo)), c.User)
|
||||
|
||||
cc, err = db.ContainerCounters(context.Background())
|
||||
require.NoError(t, err)
|
||||
|
@ -465,6 +494,7 @@ func putObjs(t *testing.T, db *meta.DB, count int, withParent bool) []*objectSDK
|
|||
o := testutil.GenerateObject()
|
||||
if withParent {
|
||||
o.SetParent(parent)
|
||||
o.SetSplitID(objectSDK.NewSplitID())
|
||||
}
|
||||
|
||||
oo = append(oo, o)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue