Plugins: Plugin Store API returns DTO model (#41340)
* toying around * fix refs * remove unused fields * go further * add context * ensure streaming handler is set
This commit is contained in:
+13
-13
@@ -125,7 +125,7 @@ func (hs *HTTPServer) getFSDataSources(c *models.ReqContext, enabledPlugins Enab
|
||||
|
||||
// add data sources that are built in (meaning they are not added via data sources page, nor have any entry in
|
||||
// the datasource table)
|
||||
for _, ds := range hs.pluginStore.Plugins(plugins.DataSource) {
|
||||
for _, ds := range hs.pluginStore.Plugins(c.Req.Context(), plugins.DataSource) {
|
||||
if ds.BuiltIn {
|
||||
info := map[string]interface{}{
|
||||
"type": ds.Type,
|
||||
@@ -364,15 +364,15 @@ func (hs *HTTPServer) GetFrontendSettings(c *models.ReqContext) {
|
||||
}
|
||||
|
||||
// EnabledPlugins represents a mapping from plugin types (panel, data source, etc.) to plugin IDs to plugins
|
||||
// For example ["panel"] -> ["piechart"] -> {pie chart plugin instance}
|
||||
type EnabledPlugins map[plugins.Type]map[string]*plugins.Plugin
|
||||
// For example ["panel"] -> ["piechart"] -> {pie chart plugin DTO}
|
||||
type EnabledPlugins map[plugins.Type]map[string]plugins.PluginDTO
|
||||
|
||||
func (ep EnabledPlugins) Get(pluginType plugins.Type, pluginID string) (*plugins.Plugin, bool) {
|
||||
func (ep EnabledPlugins) Get(pluginType plugins.Type, pluginID string) (plugins.PluginDTO, bool) {
|
||||
if _, exists := ep[pluginType][pluginID]; exists {
|
||||
return ep[pluginType][pluginID], true
|
||||
}
|
||||
|
||||
return nil, false
|
||||
return plugins.PluginDTO{}, false
|
||||
}
|
||||
|
||||
func (hs *HTTPServer) enabledPlugins(ctx context.Context, orgID int64) (EnabledPlugins, error) {
|
||||
@@ -383,8 +383,8 @@ func (hs *HTTPServer) enabledPlugins(ctx context.Context, orgID int64) (EnabledP
|
||||
return ep, err
|
||||
}
|
||||
|
||||
apps := make(map[string]*plugins.Plugin)
|
||||
for _, app := range hs.pluginStore.Plugins(plugins.App) {
|
||||
apps := make(map[string]plugins.PluginDTO)
|
||||
for _, app := range hs.pluginStore.Plugins(ctx, plugins.App) {
|
||||
if b, exists := pluginSettingMap[app.ID]; exists {
|
||||
app.Pinned = b.Pinned
|
||||
apps[app.ID] = app
|
||||
@@ -392,16 +392,16 @@ func (hs *HTTPServer) enabledPlugins(ctx context.Context, orgID int64) (EnabledP
|
||||
}
|
||||
ep[plugins.App] = apps
|
||||
|
||||
dataSources := make(map[string]*plugins.Plugin)
|
||||
for _, ds := range hs.pluginStore.Plugins(plugins.DataSource) {
|
||||
dataSources := make(map[string]plugins.PluginDTO)
|
||||
for _, ds := range hs.pluginStore.Plugins(ctx, plugins.DataSource) {
|
||||
if _, exists := pluginSettingMap[ds.ID]; exists {
|
||||
dataSources[ds.ID] = ds
|
||||
}
|
||||
}
|
||||
ep[plugins.DataSource] = dataSources
|
||||
|
||||
panels := make(map[string]*plugins.Plugin)
|
||||
for _, p := range hs.pluginStore.Plugins(plugins.Panel) {
|
||||
panels := make(map[string]plugins.PluginDTO)
|
||||
for _, p := range hs.pluginStore.Plugins(ctx, plugins.Panel) {
|
||||
if _, exists := pluginSettingMap[p.ID]; exists {
|
||||
panels[p.ID] = p
|
||||
}
|
||||
@@ -424,7 +424,7 @@ func (hs *HTTPServer) pluginSettings(ctx context.Context, orgID int64) (map[stri
|
||||
}
|
||||
|
||||
// fill settings from app plugins
|
||||
for _, plugin := range hs.pluginStore.Plugins(plugins.App) {
|
||||
for _, plugin := range hs.pluginStore.Plugins(ctx, plugins.App) {
|
||||
// ignore settings that already exist
|
||||
if _, exists := pluginSettings[plugin.ID]; exists {
|
||||
continue
|
||||
@@ -442,7 +442,7 @@ func (hs *HTTPServer) pluginSettings(ctx context.Context, orgID int64) (map[stri
|
||||
}
|
||||
|
||||
// fill settings from all remaining plugins (including potential app child plugins)
|
||||
for _, plugin := range hs.pluginStore.Plugins() {
|
||||
for _, plugin := range hs.pluginStore.Plugins(ctx) {
|
||||
// ignore settings that already exist
|
||||
if _, exists := pluginSettings[plugin.ID]; exists {
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user