From f5e00e133bf42afc84da6208d09269ec6486c2c1 Mon Sep 17 00:00:00 2001 From: bergquist Date: Thu, 28 Dec 2017 13:37:02 +0100 Subject: [PATCH] dashboards as cfg: moves dashcash into its own file --- .../dashboards/dashboard_cache.go | 33 +++++++++++++++++++ .../provisioning/dashboards/file_reader.go | 6 ++-- .../dashboards/file_reader_test.go | 4 +-- pkg/services/provisioning/dashboards/types.go | 27 --------------- 4 files changed, 38 insertions(+), 32 deletions(-) create mode 100644 pkg/services/provisioning/dashboards/dashboard_cache.go diff --git a/pkg/services/provisioning/dashboards/dashboard_cache.go b/pkg/services/provisioning/dashboards/dashboard_cache.go new file mode 100644 index 00000000000..da6b7e8a5e8 --- /dev/null +++ b/pkg/services/provisioning/dashboards/dashboard_cache.go @@ -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 +} diff --git a/pkg/services/provisioning/dashboards/file_reader.go b/pkg/services/provisioning/dashboards/file_reader.go index 156c798ff76..eb3085296fd 100644 --- a/pkg/services/provisioning/dashboards/file_reader.go +++ b/pkg/services/provisioning/dashboards/file_reader.go @@ -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 } diff --git a/pkg/services/provisioning/dashboards/file_reader_test.go b/pkg/services/provisioning/dashboards/file_reader_test.go index b0cc6ee418f..16e3e1184b8 100644 --- a/pkg/services/provisioning/dashboards/file_reader_test.go +++ b/pkg/services/provisioning/dashboards/file_reader_test.go @@ -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 { diff --git a/pkg/services/provisioning/dashboards/types.go b/pkg/services/provisioning/dashboards/types.go index 4869da8927b..46ca3c9246e 100644 --- a/pkg/services/provisioning/dashboards/types.go +++ b/pkg/services/provisioning/dashboards/types.go @@ -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)