[#650] Drop unused object cache methods

Signed-off-by: Denis Kirillov <denis@nspcc.ru>
This commit is contained in:
Denis Kirillov 2022-10-24 17:44:11 +03:00 committed by Alex Vanin
parent 821df3d648
commit 0d0ecf5b10
3 changed files with 43 additions and 65 deletions

View file

@ -6,7 +6,6 @@ import (
"github.com/nspcc-dev/neofs-s3-gw/api/data" "github.com/nspcc-dev/neofs-s3-gw/api/data"
"github.com/nspcc-dev/neofs-s3-gw/creds/accessbox" "github.com/nspcc-dev/neofs-s3-gw/creds/accessbox"
cidtest "github.com/nspcc-dev/neofs-sdk-go/container/id/test" cidtest "github.com/nspcc-dev/neofs-sdk-go/container/id/test"
oid "github.com/nspcc-dev/neofs-sdk-go/object/id"
oidtest "github.com/nspcc-dev/neofs-sdk-go/object/id/test" oidtest "github.com/nspcc-dev/neofs-sdk-go/object/id/test"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"go.uber.org/zap" "go.uber.org/zap"
@ -104,17 +103,17 @@ func TestObjectsListCacheType(t *testing.T) {
cnrID := cidtest.ID() cnrID := cidtest.ID()
key := ObjectsListKey{cid: cnrID, prefix: "obj"} key := ObjectsListKey{cid: cnrID, prefix: "obj"}
objIDs := []oid.ID{oidtest.ID()} versions := []*data.NodeVersion{{BaseNodeVersion: data.BaseNodeVersion{OID: oidtest.ID()}}}
err := cache.Put(key, objIDs) err := cache.PutVersions(key, versions)
require.NoError(t, err) require.NoError(t, err)
val := cache.Get(key) val := cache.GetVersions(key)
require.Equal(t, objIDs, val) require.Equal(t, versions, val)
require.Equal(t, 0, observedLog.Len()) require.Equal(t, 0, observedLog.Len())
err = cache.cache.Set(key, "tmp") err = cache.cache.Set(key, "tmp")
require.NoError(t, err) require.NoError(t, err)
assertInvalidCacheEntry(t, cache.Get(key), observedLog) assertInvalidCacheEntry(t, cache.GetVersions(key), observedLog)
err = cache.cache.Set("key", "tmp") err = cache.cache.Set("key", "tmp")
require.NoError(t, err) require.NoError(t, err)

View file

@ -9,7 +9,6 @@ import (
"github.com/bluele/gcache" "github.com/bluele/gcache"
"github.com/nspcc-dev/neofs-s3-gw/api/data" "github.com/nspcc-dev/neofs-s3-gw/api/data"
cid "github.com/nspcc-dev/neofs-sdk-go/container/id" cid "github.com/nspcc-dev/neofs-sdk-go/container/id"
oid "github.com/nspcc-dev/neofs-sdk-go/object/id"
"go.uber.org/zap" "go.uber.org/zap"
) )
@ -67,23 +66,6 @@ func NewObjectsListCache(config *Config) *ObjectsListCache {
return &ObjectsListCache{cache: gc, logger: config.Logger} return &ObjectsListCache{cache: gc, logger: config.Logger}
} }
// Get returns a list of ObjectInfo.
func (l *ObjectsListCache) Get(key ObjectsListKey) []oid.ID {
entry, err := l.cache.Get(key)
if err != nil {
return nil
}
result, ok := entry.([]oid.ID)
if !ok {
l.logger.Warn("invalid cache entry type", zap.String("actual", fmt.Sprintf("%T", entry)),
zap.String("expected", fmt.Sprintf("%T", result)))
return nil
}
return result
}
// GetVersions returns a list of ObjectInfo. // GetVersions returns a list of ObjectInfo.
func (l *ObjectsListCache) GetVersions(key ObjectsListKey) []*data.NodeVersion { func (l *ObjectsListCache) GetVersions(key ObjectsListKey) []*data.NodeVersion {
entry, err := l.cache.Get(key) entry, err := l.cache.Get(key)
@ -93,17 +75,14 @@ func (l *ObjectsListCache) GetVersions(key ObjectsListKey) []*data.NodeVersion {
result, ok := entry.([]*data.NodeVersion) result, ok := entry.([]*data.NodeVersion)
if !ok { if !ok {
l.logger.Warn("invalid cache entry type", zap.String("actual", fmt.Sprintf("%T", entry)),
zap.String("expected", fmt.Sprintf("%T", result)))
return nil return nil
} }
return result return result
} }
// Put puts a list of objects to cache.
func (l *ObjectsListCache) Put(key ObjectsListKey, oids []oid.ID) error {
return l.cache.Set(key, oids)
}
// PutVersions puts a list of object versions to cache. // PutVersions puts a list of object versions to cache.
func (l *ObjectsListCache) PutVersions(key ObjectsListKey, versions []*data.NodeVersion) error { func (l *ObjectsListCache) PutVersions(key ObjectsListKey, versions []*data.NodeVersion) error {
return l.cache.Set(key, versions) return l.cache.Set(key, versions)

View file

@ -4,8 +4,8 @@ import (
"testing" "testing"
"time" "time"
"github.com/nspcc-dev/neofs-s3-gw/api/data"
cidtest "github.com/nspcc-dev/neofs-sdk-go/container/id/test" cidtest "github.com/nspcc-dev/neofs-sdk-go/container/id/test"
oid "github.com/nspcc-dev/neofs-sdk-go/object/id"
oidtest "github.com/nspcc-dev/neofs-sdk-go/object/id/test" oidtest "github.com/nspcc-dev/neofs-sdk-go/object/id/test"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"go.uber.org/zap" "go.uber.org/zap"
@ -25,26 +25,26 @@ func getTestObjectsListConfig() *Config {
func TestObjectsListCache(t *testing.T) { func TestObjectsListCache(t *testing.T) {
var ( var (
listSize = 10 listSize = 10
ids []oid.ID versions []*data.NodeVersion
cidKey, cidKey2 = cidtest.ID(), cidtest.ID() cidKey, cidKey2 = cidtest.ID(), cidtest.ID()
) )
for i := 0; i < listSize; i++ { for i := 0; i < listSize; i++ {
ids = append(ids, oidtest.ID()) versions = append(versions, &data.NodeVersion{BaseNodeVersion: data.BaseNodeVersion{OID: oidtest.ID()}})
} }
t.Run("lifetime", func(t *testing.T) { t.Run("lifetime", func(t *testing.T) {
var ( var (
config = getTestObjectsListConfig() config = getTestObjectsListConfig()
cache = NewObjectsListCache(config) cache = NewObjectsListCache(config)
cacheKey = ObjectsListKey{cid: cidKey} listKey = ObjectsListKey{cid: cidKey}
) )
err := cache.Put(cacheKey, ids) err := cache.PutVersions(listKey, versions)
require.NoError(t, err) require.NoError(t, err)
condition := func() bool { condition := func() bool {
return cache.Get(cacheKey) == nil return cache.GetVersions(listKey) == nil
} }
require.Never(t, condition, config.Lifetime, time.Second) require.Never(t, condition, config.Lifetime, time.Second)
@ -53,41 +53,41 @@ func TestObjectsListCache(t *testing.T) {
t.Run("get cache with empty prefix", func(t *testing.T) { t.Run("get cache with empty prefix", func(t *testing.T) {
var ( var (
cache = NewObjectsListCache(getTestObjectsListConfig()) cache = NewObjectsListCache(getTestObjectsListConfig())
cacheKey = ObjectsListKey{cid: cidKey} listKey = ObjectsListKey{cid: cidKey}
) )
err := cache.Put(cacheKey, ids) err := cache.PutVersions(listKey, versions)
require.NoError(t, err) require.NoError(t, err)
actual := cache.Get(cacheKey) actual := cache.GetVersions(listKey)
require.Equal(t, len(ids), len(actual)) require.Equal(t, len(versions), len(actual))
for i := range ids { for i := range versions {
require.Equal(t, ids[i], actual[i]) require.Equal(t, versions[i], actual[i])
} }
}) })
t.Run("get cache with prefix", func(t *testing.T) { t.Run("get cache with prefix", func(t *testing.T) {
cacheKey := ObjectsListKey{ listKey := ObjectsListKey{
cid: cidKey, cid: cidKey,
prefix: "dir", prefix: "dir",
} }
cache := NewObjectsListCache(getTestObjectsListConfig()) cache := NewObjectsListCache(getTestObjectsListConfig())
err := cache.Put(cacheKey, ids) err := cache.PutVersions(listKey, versions)
require.NoError(t, err) require.NoError(t, err)
actual := cache.Get(cacheKey) actual := cache.GetVersions(listKey)
require.Equal(t, len(ids), len(actual)) require.Equal(t, len(versions), len(actual))
for i := range ids { for i := range versions {
require.Equal(t, ids[i], actual[i]) require.Equal(t, versions[i], actual[i])
} }
}) })
t.Run("get cache with other prefix", func(t *testing.T) { t.Run("get cache with other prefix", func(t *testing.T) {
var ( var (
cacheKey = ObjectsListKey{ listKey = ObjectsListKey{
cid: cidKey, cid: cidKey,
prefix: "dir", prefix: "dir",
} }
@ -99,16 +99,16 @@ func TestObjectsListCache(t *testing.T) {
) )
cache := NewObjectsListCache(getTestObjectsListConfig()) cache := NewObjectsListCache(getTestObjectsListConfig())
err := cache.Put(cacheKey, ids) err := cache.PutVersions(listKey, versions)
require.NoError(t, err) require.NoError(t, err)
actual := cache.Get(newKey) actual := cache.GetVersions(newKey)
require.Nil(t, actual) require.Nil(t, actual)
}) })
t.Run("get cache with non-existing key", func(t *testing.T) { t.Run("get cache with non-existing key", func(t *testing.T) {
var ( var (
cacheKey = ObjectsListKey{ listKey = ObjectsListKey{
cid: cidKey, cid: cidKey,
} }
newKey = ObjectsListKey{ newKey = ObjectsListKey{
@ -117,19 +117,19 @@ func TestObjectsListCache(t *testing.T) {
) )
cache := NewObjectsListCache(getTestObjectsListConfig()) cache := NewObjectsListCache(getTestObjectsListConfig())
err := cache.Put(cacheKey, ids) err := cache.PutVersions(listKey, versions)
require.NoError(t, err) require.NoError(t, err)
actual := cache.Get(newKey) actual := cache.GetVersions(newKey)
require.Nil(t, actual) require.Nil(t, actual)
}) })
} }
func TestCleanCacheEntriesChangedWithPutObject(t *testing.T) { func TestCleanCacheEntriesChangedWithPutObject(t *testing.T) {
var ( var (
id = cidtest.ID() id = cidtest.ID()
oids = []oid.ID{oidtest.ID()} versions = []*data.NodeVersion{{BaseNodeVersion: data.BaseNodeVersion{OID: oidtest.ID()}}}
keys []ObjectsListKey keys []ObjectsListKey
) )
for _, p := range []string{"", "dir/", "dir/lol/"} { for _, p := range []string{"", "dir/", "dir/lol/"} {
@ -141,12 +141,12 @@ func TestCleanCacheEntriesChangedWithPutObject(t *testing.T) {
config.Lifetime = time.Minute config.Lifetime = time.Minute
cache := NewObjectsListCache(config) cache := NewObjectsListCache(config)
for _, k := range keys { for _, k := range keys {
err := cache.Put(k, oids) err := cache.PutVersions(k, versions)
require.NoError(t, err) require.NoError(t, err)
} }
cache.CleanCacheEntriesContainingObject("obj1", id) cache.CleanCacheEntriesContainingObject("obj1", id)
for _, k := range keys { for _, k := range keys {
list := cache.Get(k) list := cache.GetVersions(k)
if k.prefix == "" { if k.prefix == "" {
require.Nil(t, list) require.Nil(t, list)
} else { } else {
@ -160,12 +160,12 @@ func TestCleanCacheEntriesChangedWithPutObject(t *testing.T) {
config.Lifetime = time.Minute config.Lifetime = time.Minute
cache := NewObjectsListCache(config) cache := NewObjectsListCache(config)
for _, k := range keys { for _, k := range keys {
err := cache.Put(k, oids) err := cache.PutVersions(k, versions)
require.NoError(t, err) require.NoError(t, err)
} }
cache.CleanCacheEntriesContainingObject("dir/obj", id) cache.CleanCacheEntriesContainingObject("dir/obj", id)
for _, k := range keys { for _, k := range keys {
list := cache.Get(k) list := cache.GetVersions(k)
if k.prefix == "" || k.prefix == "dir/" { if k.prefix == "" || k.prefix == "dir/" {
require.Nil(t, list) require.Nil(t, list)
} else { } else {
@ -179,12 +179,12 @@ func TestCleanCacheEntriesChangedWithPutObject(t *testing.T) {
config.Lifetime = time.Minute config.Lifetime = time.Minute
cache := NewObjectsListCache(config) cache := NewObjectsListCache(config)
for _, k := range keys { for _, k := range keys {
err := cache.Put(k, oids) err := cache.PutVersions(k, versions)
require.NoError(t, err) require.NoError(t, err)
} }
cache.CleanCacheEntriesContainingObject("dir/lol/obj", id) cache.CleanCacheEntriesContainingObject("dir/lol/obj", id)
for _, k := range keys { for _, k := range keys {
list := cache.Get(k) list := cache.GetVersions(k)
require.Nil(t, list) require.Nil(t, list)
} }
}) })