mirror of
https://github.com/grafana/grafana.git
synced 2024-11-25 18:30:41 -06:00
a2eda798e7
* PluginDashboards: Use plugin manager interface Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * PluginManager: Make panels non-global Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * PluginManager: Make apps non-global Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * PluginManager: Make static routes non-global Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * PluginManager: Make pluginTypes non-global Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
73 lines
2.7 KiB
Go
73 lines
2.7 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
|
|
// GetApp gets an app plugin with a certain ID.
|
|
GetApp(id string) *AppPlugin
|
|
// DataSourceCount gets the number of data sources.
|
|
DataSourceCount() int
|
|
// DataSources gets all data sources.
|
|
DataSources() []*DataSourcePlugin
|
|
// Apps gets all app plugins.
|
|
Apps() []*AppPlugin
|
|
// PanelCount gets the number of panels.
|
|
PanelCount() int
|
|
// AppCount gets the number of apps.
|
|
AppCount() int
|
|
// GetEnabledPlugins gets enabled plugins.
|
|
// 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
|
|
// StaticRoutes gets all static routes.
|
|
StaticRoutes() []*PluginStaticRoute
|
|
// 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
|
|
// LoadPluginDashboard loads a plugin dashboard.
|
|
LoadPluginDashboard(pluginID, path string) (*models.Dashboard, error)
|
|
// IsAppInstalled returns whether an app is installed.
|
|
IsAppInstalled(id string) bool
|
|
}
|
|
|
|
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)
|
|
}
|