Commit 82cd2449 by Marcus Efraimsson

dashfolders: revert automatic creation of folders for plugins

parent 852218e8
...@@ -49,10 +49,6 @@ func ImportDashboard(cmd *ImportDashboardCommand) error { ...@@ -49,10 +49,6 @@ func ImportDashboard(cmd *ImportDashboardCommand) error {
if dashboard, err = loadPluginDashboard(cmd.PluginId, cmd.Path); err != nil { if dashboard, err = loadPluginDashboard(cmd.PluginId, cmd.Path); err != nil {
return err return err
} }
if err = createDashboardFolderForPlugin(cmd, dashboard); err != nil {
return err
}
} else { } else {
dashboard = m.NewDashboardFromJson(cmd.Dashboard) dashboard = m.NewDashboardFromJson(cmd.Dashboard)
} }
...@@ -93,63 +89,6 @@ func ImportDashboard(cmd *ImportDashboardCommand) error { ...@@ -93,63 +89,6 @@ func ImportDashboard(cmd *ImportDashboardCommand) error {
return nil return nil
} }
func createDashboardFolderForPlugin(cmd *ImportDashboardCommand, dashboard *m.Dashboard) error {
var err error
var plugin *PluginBase
if plugin, err = getPlugin(cmd.PluginId); err != nil {
return err
}
var pluginType string
if plugin.Type == "datasource" {
pluginType = "Datasource"
} else if plugin.Type == "app" {
pluginType = "App"
}
folderTitle := fmt.Sprint(pluginType, ": ", plugin.Name)
folderDash := simplejson.NewFromAny(map[string]interface{}{
"schemaVersion": 16,
"title": folderTitle,
"editable": true,
"hideControls": true,
})
saveCmd := m.SaveDashboardCommand{
Dashboard: folderDash,
OrgId: cmd.OrgId,
UserId: cmd.UserId,
PluginId: cmd.PluginId,
IsFolder: true,
}
dashModel := saveCmd.GetDashboardModel()
getDashboardQuery := m.GetDashboardQuery{
OrgId: cmd.OrgId,
Slug: dashModel.Slug,
}
if err := bus.Dispatch(&getDashboardQuery); err != nil {
return err
}
if getDashboardQuery.Result != nil {
dashboard.FolderId = getDashboardQuery.Result.Id
return nil
}
if err := bus.Dispatch(&saveCmd); err != nil {
return err
}
dashboard.FolderId = saveCmd.Result.Id
return nil
}
type DashTemplateEvaluator struct { type DashTemplateEvaluator struct {
template *simplejson.Json template *simplejson.Json
inputs []ImportDashboardInput inputs []ImportDashboardInput
......
...@@ -13,98 +13,12 @@ import ( ...@@ -13,98 +13,12 @@ import (
) )
func TestDashboardImport(t *testing.T) { func TestDashboardImport(t *testing.T) {
pluginScenario("When importing a plugin dashboard", t, func() {
Convey("When importing plugin dashboard", t, func() {
setting.Cfg = ini.Empty()
sec, _ := setting.Cfg.NewSection("plugin.test-app")
sec.NewKey("path", "../../tests/test-app")
err := Init()
So(err, ShouldBeNil)
folderId := int64(1000)
var importedDash *m.Dashboard var importedDash *m.Dashboard
var createdFolder *m.Dashboard
bus.AddHandler("test", func(cmd *m.SaveDashboardCommand) error {
if cmd.IsFolder {
createdFolder = cmd.GetDashboardModel()
createdFolder.Id = folderId
cmd.Result = createdFolder
} else {
importedDash = cmd.GetDashboardModel()
cmd.Result = importedDash
}
return nil
})
bus.AddHandler("test", func(cmd *m.GetDashboardQuery) error {
return nil
})
cmd := ImportDashboardCommand{
PluginId: "test-app",
Path: "dashboards/connections.json",
OrgId: 1,
UserId: 1,
Inputs: []ImportDashboardInput{
{Name: "*", Type: "datasource", Value: "graphite"},
},
}
err = ImportDashboard(&cmd)
So(err, ShouldBeNil)
Convey("should install dashboard", func() {
So(importedDash, ShouldNotBeNil)
resultStr, _ := importedDash.Data.EncodePretty()
expectedBytes, _ := ioutil.ReadFile("../../tests/test-app/dashboards/connections_result.json")
expectedJson, _ := simplejson.NewJson(expectedBytes)
expectedStr, _ := expectedJson.EncodePretty()
So(string(resultStr), ShouldEqual, string(expectedStr))
panel := importedDash.Data.Get("rows").GetIndex(0).Get("panels").GetIndex(0)
So(panel.Get("datasource").MustString(), ShouldEqual, "graphite")
So(importedDash.FolderId, ShouldEqual, folderId)
})
Convey("should create app folder", func() {
So(createdFolder.Title, ShouldEqual, "App: Test App")
So(createdFolder.Id, ShouldEqual, folderId)
})
})
Convey("When re-importing plugin dashboard", t, func() {
setting.Cfg = ini.Empty()
sec, _ := setting.Cfg.NewSection("plugin.test-app")
sec.NewKey("path", "../../tests/test-app")
err := Init()
So(err, ShouldBeNil)
folderId := int64(1000)
var importedDash *m.Dashboard
var createdFolder *m.Dashboard
bus.AddHandler("test", func(cmd *m.SaveDashboardCommand) error { bus.AddHandler("test", func(cmd *m.SaveDashboardCommand) error {
if cmd.IsFolder {
cmd.Result = cmd.GetDashboardModel()
} else {
importedDash = cmd.GetDashboardModel() importedDash = cmd.GetDashboardModel()
cmd.Result = importedDash cmd.Result = importedDash
}
return nil
})
bus.AddHandler("test", func(cmd *m.GetDashboardQuery) error {
cmd.Result = &m.Dashboard{
Id: 1000,
Title: "Something",
}
return nil return nil
}) })
...@@ -118,7 +32,7 @@ func TestDashboardImport(t *testing.T) { ...@@ -118,7 +32,7 @@ func TestDashboardImport(t *testing.T) {
}, },
} }
err = ImportDashboard(&cmd) err := ImportDashboard(&cmd)
So(err, ShouldBeNil) So(err, ShouldBeNil)
Convey("should install dashboard", func() { Convey("should install dashboard", func() {
...@@ -133,12 +47,6 @@ func TestDashboardImport(t *testing.T) { ...@@ -133,12 +47,6 @@ func TestDashboardImport(t *testing.T) {
panel := importedDash.Data.Get("rows").GetIndex(0).Get("panels").GetIndex(0) panel := importedDash.Data.Get("rows").GetIndex(0).Get("panels").GetIndex(0)
So(panel.Get("datasource").MustString(), ShouldEqual, "graphite") So(panel.Get("datasource").MustString(), ShouldEqual, "graphite")
So(importedDash.FolderId, ShouldEqual, folderId)
})
Convey("should not create app folder", func() {
So(createdFolder, ShouldBeNil)
}) })
}) })
...@@ -177,3 +85,16 @@ func TestDashboardImport(t *testing.T) { ...@@ -177,3 +85,16 @@ func TestDashboardImport(t *testing.T) {
}) })
} }
func pluginScenario(desc string, t *testing.T, fn func()) {
Convey("Given a plugin", t, func() {
setting.Cfg = ini.Empty()
sec, _ := setting.Cfg.NewSection("plugin.test-app")
sec.NewKey("path", "../../tests/test-app")
err := Init()
So(err, ShouldBeNil)
Convey(desc, fn)
})
}
...@@ -108,13 +108,3 @@ func loadPluginDashboard(pluginId, path string) (*m.Dashboard, error) { ...@@ -108,13 +108,3 @@ func loadPluginDashboard(pluginId, path string) (*m.Dashboard, error) {
return m.NewDashboardFromJson(data), nil return m.NewDashboardFromJson(data), nil
} }
func getPlugin(pluginId string) (*PluginBase, error) {
plugin, exists := Plugins[pluginId]
if !exists {
return nil, PluginNotFoundError{pluginId}
}
return plugin, nil
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment