87c3a2b790
* PluginManager: Make Plugins and DataSources non-global Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Fix integration tests Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Replace outdated command Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * DashboardService: Ensure it gets constructed with necessary parameters Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Fix build Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * DashboardService: Ensure it gets constructed with necessary parameters Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Remove dead code Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Fix test Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Fix test Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Remove FocusConvey Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Fix test Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Remove dead code Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Undo interface changes Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Backend: Move tsdbifaces.RequestHandler to plugins.DataRequestHandler Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Rename to DataSourceCount Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Consolidate dashboard interfaces into one Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Fix tests Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Fix tests Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Fix test Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Fix tests Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Fix tests Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Fix tests Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Fix tests Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Fix dashboard integration tests Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
58 lines
2.2 KiB
Go
58 lines
2.2 KiB
Go
package plugins
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
|
"github.com/grafana/grafana/pkg/models"
|
|
)
|
|
|
|
// Manager is the plugin manager service interface.
|
|
type Manager interface {
|
|
// Renderer gets the renderer plugin.
|
|
Renderer() *RendererPlugin
|
|
// GetDataSource gets a data source plugin with a certain ID.
|
|
GetDataSource(id string) *DataSourcePlugin
|
|
// GetDataPlugin gets a data plugin with a certain ID.
|
|
GetDataPlugin(id string) DataPlugin
|
|
// GetPlugin gets a plugin with a certain ID.
|
|
GetPlugin(id string) *PluginBase
|
|
// DataSourceCount gets the number of data sources.
|
|
DataSourceCount() int
|
|
// DataSources gets all data sources.
|
|
DataSources() []*DataSourcePlugin
|
|
// GetEnabledPlugins gets enabled plugins.
|
|
GetEnabledPlugins(orgID int64) (*EnabledPlugins, error)
|
|
// GrafanaLatestVersion gets the latest Grafana version.
|
|
GrafanaLatestVersion() string
|
|
// GrafanaHasUpdate returns whether Grafana has an update.
|
|
GrafanaHasUpdate() bool
|
|
// Plugins gets all plugins.
|
|
Plugins() []*PluginBase
|
|
// GetPluginSettings gets settings for a certain plugin.
|
|
GetPluginSettings(orgID int64) (map[string]*models.PluginSettingInfoDTO, error)
|
|
// GetPluginDashboards gets dashboards for a certain org/plugin.
|
|
GetPluginDashboards(orgID int64, pluginID string) ([]*PluginDashboardInfoDTO, error)
|
|
// GetPluginMarkdown gets markdown for a certain plugin/name.
|
|
GetPluginMarkdown(pluginID string, name string) ([]byte, error)
|
|
// ImportDashboard imports a dashboard.
|
|
ImportDashboard(pluginID, path string, orgID, folderID int64, dashboardModel *simplejson.Json,
|
|
overwrite bool, inputs []ImportDashboardInput, user *models.SignedInUser,
|
|
requestHandler DataRequestHandler) (PluginDashboardInfoDTO, error)
|
|
// ScanningErrors returns plugin scanning errors encountered.
|
|
ScanningErrors() []PluginError
|
|
}
|
|
|
|
type ImportDashboardInput struct {
|
|
Type string `json:"type"`
|
|
PluginId string `json:"pluginId"`
|
|
Name string `json:"name"`
|
|
Value string `json:"value"`
|
|
}
|
|
|
|
// DataRequestHandler is a data request handler interface.
|
|
type DataRequestHandler interface {
|
|
// HandleRequest handles a data request.
|
|
HandleRequest(context.Context, *models.DataSource, DataQuery) (DataResponse, error)
|
|
}
|