From 34d7f8a44f83a5949b01f6ed72c58b7e6b9ffd2b Mon Sep 17 00:00:00 2001 From: bergquist Date: Wed, 17 Jan 2018 14:33:51 +0100 Subject: [PATCH] dashboards as cfg: property path replaces folder --- .../provisioning/dashboards/file_reader.go | 10 ++++-- .../dashboards/file_reader_test.go | 34 ++++++++++++++++--- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/pkg/services/provisioning/dashboards/file_reader.go b/pkg/services/provisioning/dashboards/file_reader.go index c3329e07488..c96fa6993d8 100644 --- a/pkg/services/provisioning/dashboards/file_reader.go +++ b/pkg/services/provisioning/dashboards/file_reader.go @@ -34,9 +34,15 @@ type fileReader struct { } func NewDashboardFileReader(cfg *DashboardsAsConfig, log log.Logger) (*fileReader, error) { - path, ok := cfg.Options["folder"].(string) + var path string + path, ok := cfg.Options["path"].(string) if !ok { - return nil, fmt.Errorf("Failed to load dashboards. folder param is not a string") + path, ok = cfg.Options["folder"].(string) + if !ok { + return nil, fmt.Errorf("Failed to load dashboards. path param is not a string") + } + + log.Warn("[Deprecated] The folder property is deprecated. Please use path instead.") } if _, err := os.Stat(path); os.IsNotExist(err) { diff --git a/pkg/services/provisioning/dashboards/file_reader_test.go b/pkg/services/provisioning/dashboards/file_reader_test.go index 16e3e1184b8..f2805196dde 100644 --- a/pkg/services/provisioning/dashboards/file_reader_test.go +++ b/pkg/services/provisioning/dashboards/file_reader_test.go @@ -42,7 +42,7 @@ func TestDashboardFileReader(t *testing.T) { } Convey("Can read default dashboard", func() { - cfg.Options["folder"] = defaultDashboards + cfg.Options["path"] = defaultDashboards cfg.Folder = "Team A" reader, err := NewDashboardFileReader(cfg, logger) @@ -67,7 +67,7 @@ func TestDashboardFileReader(t *testing.T) { }) Convey("Should not update dashboards when db is newer", func() { - cfg.Options["folder"] = oneDashboard + cfg.Options["path"] = oneDashboard fakeRepo.getDashboard = append(fakeRepo.getDashboard, &models.Dashboard{ Updated: time.Now().Add(time.Hour), @@ -84,7 +84,7 @@ func TestDashboardFileReader(t *testing.T) { }) Convey("Can read default dashboard and replace old version in database", func() { - cfg.Options["folder"] = oneDashboard + cfg.Options["path"] = oneDashboard stat, _ := os.Stat(oneDashboard + "/dashboard1.json") @@ -115,7 +115,7 @@ func TestDashboardFileReader(t *testing.T) { }) Convey("Broken dashboards should not cause error", func() { - cfg.Options["folder"] = brokenDashboards + cfg.Options["path"] = brokenDashboards _, err := NewDashboardFileReader(cfg, logger) So(err, ShouldBeNil) @@ -167,7 +167,7 @@ func TestDashboardFileReader(t *testing.T) { OrgId: 1, Folder: "", Options: map[string]interface{}{ - "folder": defaultDashboards, + "path": defaultDashboards, }, } @@ -184,6 +184,30 @@ func TestDashboardFileReader(t *testing.T) { So(shouldSkip, ShouldBeNil) }) }) + + Convey("Can use bpth path and folder as dashboard path", func() { + cfg := &DashboardsAsConfig{ + Name: "Default", + Type: "file", + OrgId: 1, + Folder: "", + Options: map[string]interface{}{}, + } + + Convey("using path parameter", func() { + cfg.Options["path"] = defaultDashboards + reader, err := NewDashboardFileReader(cfg, log.New("test-logger")) + So(err, ShouldBeNil) + So(reader.Path, ShouldEqual, defaultDashboards) + }) + + Convey("using folder as options", func() { + cfg.Options["folder"] = defaultDashboards + reader, err := NewDashboardFileReader(cfg, log.New("test-logger")) + So(err, ShouldBeNil) + So(reader.Path, ShouldEqual, defaultDashboards) + }) + }) }) }