mirror of
https://github.com/grafana/grafana.git
synced 2024-11-26 02:40:26 -06:00
78596a6756
Fixes #30144 Co-authored-by: dsotirakis <sotirakis.dim@gmail.com> Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com> Co-authored-by: Ida Furjesova <ida.furjesova@grafana.com> Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com> Co-authored-by: Will Browne <wbrowne@users.noreply.github.com> Co-authored-by: Leon Sorokin <leeoniya@gmail.com> Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com> Co-authored-by: spinillos <selenepinillos@gmail.com> Co-authored-by: Karl Persson <kalle.persson@grafana.com> Co-authored-by: Leonard Gram <leo@xlson.com>
97 lines
3.8 KiB
Go
97 lines
3.8 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
|
|
// 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(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, *models.Dashboard, 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
|
|
// Install installs a plugin.
|
|
Install(ctx context.Context, pluginID, version string) error
|
|
// Uninstall uninstalls a plugin.
|
|
Uninstall(ctx context.Context, pluginID string) error
|
|
}
|
|
|
|
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)
|
|
}
|
|
|
|
type PluginInstaller interface {
|
|
// Install finds the plugin given the provided information and installs in the provided plugins directory.
|
|
Install(ctx context.Context, pluginID, version, pluginsDirectory, pluginZipURL, pluginRepoURL string) error
|
|
// Uninstall removes the specified plugin from the provided plugins directory.
|
|
Uninstall(ctx context.Context, pluginPath string) error
|
|
// GetUpdateInfo returns update information if the requested plugin is supported on the running system.
|
|
GetUpdateInfo(pluginID, version, pluginRepoURL string) (UpdateInfo, error)
|
|
}
|
|
|
|
type PluginInstallerLogger interface {
|
|
Successf(format string, args ...interface{})
|
|
Failuref(format string, args ...interface{})
|
|
|
|
Info(args ...interface{})
|
|
Infof(format string, args ...interface{})
|
|
Debug(args ...interface{})
|
|
Debugf(format string, args ...interface{})
|
|
Warn(args ...interface{})
|
|
Warnf(format string, args ...interface{})
|
|
Error(args ...interface{})
|
|
Errorf(format string, args ...interface{})
|
|
}
|