mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
return error if cache type is invalid
This commit is contained in:
parent
7aeab0a235
commit
5186273731
@ -10,5 +10,6 @@ import (
|
|||||||
|
|
||||||
func TestMemcachedCacheStorage(t *testing.T) {
|
func TestMemcachedCacheStorage(t *testing.T) {
|
||||||
opts := &setting.RemoteCacheOptions{Name: "memcached", ConnStr: "localhost:11211"}
|
opts := &setting.RemoteCacheOptions{Name: "memcached", ConnStr: "localhost:11211"}
|
||||||
runTestsForClient(t, createTestClient(t, opts, nil))
|
client := createTestClient(t, opts, nil)
|
||||||
|
runTestsForClient(t, client)
|
||||||
}
|
}
|
||||||
|
@ -11,5 +11,6 @@ import (
|
|||||||
func TestRedisCacheStorage(t *testing.T) {
|
func TestRedisCacheStorage(t *testing.T) {
|
||||||
|
|
||||||
opts := &setting.RemoteCacheOptions{Name: "redis", ConnStr: "localhost:6379"}
|
opts := &setting.RemoteCacheOptions{Name: "redis", ConnStr: "localhost:6379"}
|
||||||
runTestsForClient(t, createTestClient(t, opts, nil))
|
client := createTestClient(t, opts, nil)
|
||||||
|
runTestsForClient(t, client)
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,11 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
// ErrCacheItemNotFound is returned if cache does not exist
|
||||||
ErrCacheItemNotFound = errors.New("cache item not found")
|
ErrCacheItemNotFound = errors.New("cache item not found")
|
||||||
|
|
||||||
|
// ErrInvalidCacheType is returned if the type is invalid
|
||||||
|
ErrInvalidCacheType = errors.New("invalid remote cache name")
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -61,10 +65,9 @@ func (ds *RemoteCache) Delete(key string) error {
|
|||||||
// Init initializes the service
|
// Init initializes the service
|
||||||
func (ds *RemoteCache) Init() error {
|
func (ds *RemoteCache) Init() error {
|
||||||
ds.log = log.New("cache.remote")
|
ds.log = log.New("cache.remote")
|
||||||
|
var err error
|
||||||
ds.client = createClient(ds.Cfg.RemoteCacheOptions, ds.SQLStore)
|
ds.client, err = createClient(ds.Cfg.RemoteCacheOptions, ds.SQLStore)
|
||||||
|
return err
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run start the backend processes for cache clients
|
// Run start the backend processes for cache clients
|
||||||
@ -79,16 +82,20 @@ func (ds *RemoteCache) Run(ctx context.Context) error {
|
|||||||
return ctx.Err()
|
return ctx.Err()
|
||||||
}
|
}
|
||||||
|
|
||||||
func createClient(opts *setting.RemoteCacheOptions, sqlstore *sqlstore.SqlStore) CacheStorage {
|
func createClient(opts *setting.RemoteCacheOptions, sqlstore *sqlstore.SqlStore) (CacheStorage, error) {
|
||||||
if opts.Name == "redis" {
|
if opts.Name == "redis" {
|
||||||
return newRedisStorage(opts)
|
return newRedisStorage(opts), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if opts.Name == "memcached" {
|
if opts.Name == "memcached" {
|
||||||
return newMemcachedStorage(opts)
|
return newMemcachedStorage(opts), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return newDatabaseCache(sqlstore)
|
if opts.Name == "database" {
|
||||||
|
return newDatabaseCache(sqlstore), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, ErrInvalidCacheType
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register records a type, identified by a value for that type, under its
|
// Register records a type, identified by a value for that type, under its
|
||||||
|
@ -45,10 +45,14 @@ func TestCachedBasedOnConfig(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
client := createTestClient(t, cfg.RemoteCacheOptions, sqlstore.InitTestDB(t))
|
client := createTestClient(t, cfg.RemoteCacheOptions, sqlstore.InitTestDB(t))
|
||||||
|
|
||||||
runTestsForClient(t, client)
|
runTestsForClient(t, client)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInvalidCacheTypeReturnsError(t *testing.T) {
|
||||||
|
_, err := createClient(&setting.RemoteCacheOptions{Name: "invalid"}, nil)
|
||||||
|
assert.Equal(t, err, ErrInvalidCacheType)
|
||||||
|
}
|
||||||
|
|
||||||
func runTestsForClient(t *testing.T, client CacheStorage) {
|
func runTestsForClient(t *testing.T, client CacheStorage) {
|
||||||
canPutGetAndDeleteCachedObjects(t, client)
|
canPutGetAndDeleteCachedObjects(t, client)
|
||||||
canNotFetchExpiredItems(t, client)
|
canNotFetchExpiredItems(t, client)
|
||||||
|
Loading…
Reference in New Issue
Block a user