浏览代码

dashfolders: revert automatic creation of folders for plugins

Marcus Efraimsson 8 年之前
父节点
当前提交
82cd24491e
共有 3 个文件被更改,包括 17 次插入167 次删除
  1. 0 61
      pkg/plugins/dashboard_importer.go
  2. 17 96
      pkg/plugins/dashboard_importer_test.go
  3. 0 10
      pkg/plugins/dashboards.go

+ 0 - 61
pkg/plugins/dashboard_importer.go

@@ -49,10 +49,6 @@ func ImportDashboard(cmd *ImportDashboardCommand) error {
 		if dashboard, err = loadPluginDashboard(cmd.PluginId, cmd.Path); err != nil {
 			return err
 		}
-
-		if err = createDashboardFolderForPlugin(cmd, dashboard); err != nil {
-			return err
-		}
 	} else {
 		dashboard = m.NewDashboardFromJson(cmd.Dashboard)
 	}
@@ -93,63 +89,6 @@ func ImportDashboard(cmd *ImportDashboardCommand) error {
 	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 {
 	template  *simplejson.Json
 	inputs    []ImportDashboardInput

+ 17 - 96
pkg/plugins/dashboard_importer_test.go

@@ -13,98 +13,12 @@ import (
 )
 
 func TestDashboardImport(t *testing.T) {
-
-	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)
+	pluginScenario("When importing a plugin dashboard", t, func() {
 		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 {
-			if cmd.IsFolder {
-				cmd.Result = cmd.GetDashboardModel()
-			} else {
-				importedDash = cmd.GetDashboardModel()
-				cmd.Result = importedDash
-			}
-
-			return nil
-		})
-
-		bus.AddHandler("test", func(cmd *m.GetDashboardQuery) error {
-			cmd.Result = &m.Dashboard{
-				Id:    1000,
-				Title: "Something",
-			}
-
+			importedDash = cmd.GetDashboardModel()
+			cmd.Result = importedDash
 			return nil
 		})
 
@@ -118,7 +32,7 @@ func TestDashboardImport(t *testing.T) {
 			},
 		}
 
-		err = ImportDashboard(&cmd)
+		err := ImportDashboard(&cmd)
 		So(err, ShouldBeNil)
 
 		Convey("should install dashboard", func() {
@@ -133,12 +47,6 @@ func TestDashboardImport(t *testing.T) {
 
 			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 not create app folder", func() {
-			So(createdFolder, ShouldBeNil)
 		})
 	})
 
@@ -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)
+	})
+}

+ 0 - 10
pkg/plugins/dashboards.go

@@ -108,13 +108,3 @@ func loadPluginDashboard(pluginId, path string) (*m.Dashboard, error) {
 
 	return m.NewDashboardFromJson(data), nil
 }
-
-func getPlugin(pluginId string) (*PluginBase, error) {
-	plugin, exists := Plugins[pluginId]
-
-	if !exists {
-		return nil, PluginNotFoundError{pluginId}
-	}
-
-	return plugin, nil
-}