mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 16:43:07 +08:00

* first pass * migrate tests * simplify * fix comments * fix linter * nil checks * remove comment
48 lines
1.8 KiB
Go
48 lines
1.8 KiB
Go
package loader
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/grafana/grafana/pkg/plugins"
|
|
"github.com/grafana/grafana/pkg/plugins/config"
|
|
pluginsLoader "github.com/grafana/grafana/pkg/plugins/manager/loader"
|
|
"github.com/grafana/grafana/pkg/plugins/manager/loader/angular/angularinspector"
|
|
"github.com/grafana/grafana/pkg/plugins/manager/loader/assetpath"
|
|
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/bootstrap"
|
|
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/discovery"
|
|
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/initialization"
|
|
"github.com/grafana/grafana/pkg/plugins/manager/process"
|
|
"github.com/grafana/grafana/pkg/plugins/manager/registry"
|
|
"github.com/grafana/grafana/pkg/plugins/oauth"
|
|
)
|
|
|
|
var _ plugins.ErrorResolver = (*Loader)(nil)
|
|
var _ pluginsLoader.Service = (*Loader)(nil)
|
|
|
|
type Loader struct {
|
|
loader *pluginsLoader.Loader
|
|
}
|
|
|
|
func ProvideService(cfg *config.Cfg, authorizer plugins.PluginLoaderAuthorizer, processManager process.Service,
|
|
pluginRegistry registry.Service, roleRegistry plugins.RoleRegistry, assetPath *assetpath.Service,
|
|
angularInspector angularinspector.Inspector, externalServiceRegistry oauth.ExternalServiceRegistry,
|
|
discovery discovery.Discoverer, bootstrap bootstrap.Bootstrapper, initializer initialization.Initializer,
|
|
) *Loader {
|
|
return &Loader{
|
|
loader: pluginsLoader.New(cfg, authorizer, pluginRegistry, processManager, roleRegistry, assetPath,
|
|
angularInspector, externalServiceRegistry, discovery, bootstrap, initializer),
|
|
}
|
|
}
|
|
|
|
func (l *Loader) Load(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
|
|
return l.loader.Load(ctx, src)
|
|
}
|
|
|
|
func (l *Loader) Unload(ctx context.Context, pluginID string) error {
|
|
return l.loader.Unload(ctx, pluginID)
|
|
}
|
|
|
|
func (l *Loader) PluginErrors() []*plugins.Error {
|
|
return l.loader.PluginErrors()
|
|
}
|