dashboards as cfg: moves dashcash into its own file

This commit is contained in:
bergquist
2017-12-28 13:37:02 +01:00
parent 237d469ed4
commit f5e00e133b
4 changed files with 38 additions and 32 deletions

View File

@@ -0,0 +1,33 @@
package dashboards
import (
"github.com/grafana/grafana/pkg/services/dashboards"
gocache "github.com/patrickmn/go-cache"
"time"
)
type dashboardCache struct {
internalCache *gocache.Cache
}
func NewDashboardCache() *dashboardCache {
return &dashboardCache{internalCache: gocache.New(5*time.Minute, 30*time.Minute)}
}
func (fr *dashboardCache) addDashboardCache(key string, json *dashboards.SaveDashboardItem) {
fr.internalCache.Add(key, json, time.Minute*10)
}
func (fr *dashboardCache) getCache(key string) (*dashboards.SaveDashboardItem, bool) {
obj, exist := fr.internalCache.Get(key)
if !exist {
return nil, exist
}
dash, ok := obj.(*dashboards.SaveDashboardItem)
if !ok {
return nil, ok
}
return dash, ok
}

View File

@@ -29,7 +29,7 @@ type fileReader struct {
Path string
log log.Logger
dashboardRepo dashboards.Repository
cache *DashboardCache
cache *dashboardCache
createWalk func(fr *fileReader, folderId int64) filepath.WalkFunc
}
@@ -87,7 +87,7 @@ func (fr *fileReader) startWalkingDisk() error {
}
}
folderId, err := getOrCreateFolder(fr.Cfg, fr.dashboardRepo)
folderId, err := getOrCreateFolderId(fr.Cfg, fr.dashboardRepo)
if err != nil && err != ErrFolderNameMissing {
return err
}
@@ -95,7 +95,7 @@ func (fr *fileReader) startWalkingDisk() error {
return filepath.Walk(fr.Path, fr.createWalk(fr, folderId))
}
func getOrCreateFolder(cfg *DashboardsAsConfig, repo dashboards.Repository) (int64, error) {
func getOrCreateFolderId(cfg *DashboardsAsConfig, repo dashboards.Repository) (int64, error) {
if cfg.Folder == "" {
return 0, ErrFolderNameMissing
}

View File

@@ -133,7 +133,7 @@ func TestDashboardFileReader(t *testing.T) {
},
}
_, err := getOrCreateFolder(cfg, fakeRepo)
_, err := getOrCreateFolderId(cfg, fakeRepo)
So(err, ShouldEqual, ErrFolderNameMissing)
})
@@ -148,7 +148,7 @@ func TestDashboardFileReader(t *testing.T) {
},
}
folderId, err := getOrCreateFolder(cfg, fakeRepo)
folderId, err := getOrCreateFolderId(cfg, fakeRepo)
So(err, ShouldBeNil)
inserted := false
for _, d := range fakeRepo.inserted {

View File

@@ -7,7 +7,6 @@ import (
"github.com/grafana/grafana/pkg/services/dashboards"
"github.com/grafana/grafana/pkg/models"
gocache "github.com/patrickmn/go-cache"
)
type DashboardsAsConfig struct {
@@ -19,32 +18,6 @@ type DashboardsAsConfig struct {
Options map[string]interface{} `json:"options" yaml:"options"`
}
type DashboardCache struct {
internalCache *gocache.Cache
}
func NewDashboardCache() *DashboardCache {
return &DashboardCache{internalCache: gocache.New(5*time.Minute, 30*time.Minute)}
}
func (fr *DashboardCache) addDashboardCache(key string, json *dashboards.SaveDashboardItem) {
fr.internalCache.Add(key, json, time.Minute*10)
}
func (fr *DashboardCache) getCache(key string) (*dashboards.SaveDashboardItem, bool) {
obj, exist := fr.internalCache.Get(key)
if !exist {
return nil, exist
}
dash, ok := obj.(*dashboards.SaveDashboardItem)
if !ok {
return nil, ok
}
return dash, ok
}
func createDashboardJson(data *simplejson.Json, lastModified time.Time, cfg *DashboardsAsConfig, folderId int64) (*dashboards.SaveDashboardItem, error) {
dash := &dashboards.SaveDashboardItem{}
dash.Dashboard = models.NewDashboardFromJson(data)