add pluginBundle support

A plugnBundle is meta plugin that has a set of dependent plugins
to enable.  This commit includes a plugin.json for a default
"core" bundle that enables all of the shipped panels and datasources.
This commit is contained in:
woodsaj
2015-12-03 15:52:37 +08:00
parent fd392a2422
commit bd4cb549d6
7 changed files with 107 additions and 10 deletions
+4 -1
View File
@@ -115,8 +115,11 @@ func UpdateDataSource(c *middleware.Context, cmd m.UpdateDataSourceCommand) {
func GetDataSourcePlugins(c *middleware.Context) {
dsList := make(map[string]interface{})
//TODO(awoods): query DB for orgPlugins
orgPlugins := map[string]m.PluginBundle{}
enabledPlugins := plugins.GetEnabledPlugins(orgPlugins)
for key, value := range plugins.DataSources {
for key, value := range enabledPlugins.DataSourcePlugins {
if !value.BuiltIn {
dsList[key] = value
}
+6 -2
View File
@@ -29,6 +29,10 @@ func getFrontendSettingsMap(c *middleware.Context) (map[string]interface{}, erro
datasources := make(map[string]interface{})
var defaultDatasource string
//TODO(awoods): query DB to get list of the users plugin preferences.
orgPlugins := map[string]m.PluginBundle{}
enabledPlugins := plugins.GetEnabledPlugins(orgPlugins)
for _, ds := range orgDataSources {
url := ds.Url
@@ -42,7 +46,7 @@ func getFrontendSettingsMap(c *middleware.Context) (map[string]interface{}, erro
"url": url,
}
meta, exists := plugins.DataSources[ds.Type]
meta, exists := enabledPlugins.DataSourcePlugins[ds.Type]
if !exists {
log.Error(3, "Could not find plugin definition for data source: %v", ds.Type)
continue
@@ -107,7 +111,7 @@ func getFrontendSettingsMap(c *middleware.Context) (map[string]interface{}, erro
}
panels := map[string]interface{}{}
for _, panel := range plugins.Panels {
for _, panel := range enabledPlugins.PanelPlugins {
panels[panel.Type] = map[string]interface{}{
"module": panel.Module,
"name": panel.Name,
+4 -1
View File
@@ -62,7 +62,10 @@ func setIndexViewData(c *middleware.Context) (*dtos.IndexViewData, error) {
})
}
for _, plugin := range plugins.ExternalPlugins {
//TODO(awoods): query DB to get list of the users plugin preferences.
orgPlugins := map[string]m.PluginBundle{}
enabledPlugins := plugins.GetEnabledPlugins(orgPlugins)
for _, plugin := range enabledPlugins.ExternalPlugins {
for _, js := range plugin.Js {
data.PluginJs = append(data.PluginJs, js.Module)
}