Plugins: Move backend plugin manager to service (#21474)

Moves backend plugin manager to service instead of
global functions in backendplugin package.

Closes #20053
This commit is contained in:
Marcus Efraimsson
2020-01-13 20:18:45 +01:00
committed by GitHub
parent bb849d53bf
commit 1a810ebfe4
9 changed files with 188 additions and 167 deletions

View File

@ -38,12 +38,14 @@ var (
)
type PluginScanner struct {
pluginPath string
errors []error
pluginPath string
errors []error
backendPluginManager backendplugin.Manager
}
type PluginManager struct {
log log.Logger
BackendPluginManager backendplugin.Manager `inject:""`
log log.Logger
}
func init() {
@ -112,7 +114,6 @@ func (pm *PluginManager) Init() error {
}
func (pm *PluginManager) Run(ctx context.Context) error {
backendplugin.Start(ctx)
pm.updateAppDashboards()
pm.checkForUpdates()
@ -128,8 +129,6 @@ func (pm *PluginManager) Run(ctx context.Context) error {
}
}
backendplugin.Stop()
return ctx.Err()
}
@ -156,7 +155,8 @@ func (pm *PluginManager) checkPluginPaths() error {
// scan a directory for plugins.
func (pm *PluginManager) scan(pluginDir string) error {
scanner := &PluginScanner{
pluginPath: pluginDir,
pluginPath: pluginDir,
backendPluginManager: pm.BackendPluginManager,
}
if err := util.Walk(pluginDir, true, true, scanner.walker); err != nil {
@ -247,7 +247,7 @@ func (scanner *PluginScanner) loadPluginJson(pluginJsonFilePath string) error {
if _, err := reader.Seek(0, 0); err != nil {
return err
}
return loader.Load(jsonParser, currentDir)
return loader.Load(jsonParser, currentDir, scanner.backendPluginManager)
}
func (scanner *PluginScanner) IsBackendOnlyPlugin(pluginType string) bool {