From 225ac8003c44ab9183a43009829a3e0024516ad1 Mon Sep 17 00:00:00 2001 From: Will Browne Date: Mon, 11 Mar 2024 16:28:46 +0100 Subject: [PATCH] Plugins: Tidy config struct (#84168) * tidy plugins config usage * fix tests --- pkg/api/metrics_test.go | 3 +- pkg/plugins/config/config.go | 13 ++---- pkg/plugins/manager/client/client.go | 5 +-- pkg/plugins/manager/client/client_test.go | 17 ++++---- .../loader/assetpath/assetpath_test.go | 42 ------------------- pkg/plugins/manager/loader/loader_test.go | 41 ------------------ .../angularinspector/angularinspector.go | 5 +-- .../angularinspector/angularinspector_test.go | 18 ++++---- .../pluginsintegration/loader/loader_test.go | 41 ------------------ .../pluginsintegration/pipeline/steps.go | 2 +- .../pluginsintegration/pluginconfig/config.go | 7 ---- .../pluginsintegration/pluginsintegration.go | 9 ++-- .../pluginsintegration/renderer/renderer.go | 29 +++++++------ .../renderer/renderer_test.go | 10 ++--- .../serviceregistration.go | 5 +-- .../pluginsintegration/test_helper.go | 2 +- 16 files changed, 50 insertions(+), 199 deletions(-) diff --git a/pkg/api/metrics_test.go b/pkg/api/metrics_test.go index 992d14305a3..8139a4c7302 100644 --- a/pkg/api/metrics_test.go +++ b/pkg/api/metrics_test.go @@ -18,7 +18,6 @@ import ( "github.com/grafana/grafana/pkg/infra/localcache" "github.com/grafana/grafana/pkg/plugins" "github.com/grafana/grafana/pkg/plugins/backendplugin" - "github.com/grafana/grafana/pkg/plugins/config" pluginClient "github.com/grafana/grafana/pkg/plugins/manager/client" "github.com/grafana/grafana/pkg/plugins/manager/registry" "github.com/grafana/grafana/pkg/services/datasources" @@ -297,7 +296,7 @@ func TestDataSourceQueryError(t *testing.T) { &fakeDatasources.FakeCacheService{}, nil, &fakePluginRequestValidator{}, - pluginClient.ProvideService(r, &config.PluginManagementCfg{}), + pluginClient.ProvideService(r), plugincontext.ProvideService(cfg, localcache.ProvideService(), &pluginstore.FakePluginStore{ PluginList: []pluginstore.Plugin{pluginstore.ToGrafanaDTO(p)}, }, diff --git a/pkg/plugins/config/config.go b/pkg/plugins/config/config.go index 68019f3276a..88c4b8364c6 100644 --- a/pkg/plugins/config/config.go +++ b/pkg/plugins/config/config.go @@ -19,12 +19,9 @@ type PluginManagementCfg struct { PluginsCDNURLTemplate string - Tracing Tracing - GrafanaComURL string - GrafanaAppURL string - GrafanaAppSubURL string + GrafanaAppURL string Features featuremgmt.FeatureToggles @@ -34,9 +31,9 @@ type PluginManagementCfg struct { // NewPluginManagementCfg returns a new PluginManagementCfg. func NewPluginManagementCfg(devMode bool, pluginsPath string, pluginSettings setting.PluginSettings, pluginsAllowUnsigned []string, - pluginsCDNURLTemplate string, appURL string, appSubURL string, tracing Tracing, features featuremgmt.FeatureToggles, - angularSupportEnabled bool, grafanaComURL string, disablePlugins []string, hideAngularDeprecation []string, - forwardHostEnvVars []string) *PluginManagementCfg { + pluginsCDNURLTemplate string, appURL string, features featuremgmt.FeatureToggles, angularSupportEnabled bool, + grafanaComURL string, disablePlugins []string, hideAngularDeprecation []string, forwardHostEnvVars []string, +) *PluginManagementCfg { return &PluginManagementCfg{ PluginsPath: pluginsPath, DevMode: devMode, @@ -44,10 +41,8 @@ func NewPluginManagementCfg(devMode bool, pluginsPath string, pluginSettings set PluginsAllowUnsigned: pluginsAllowUnsigned, DisablePlugins: disablePlugins, PluginsCDNURLTemplate: pluginsCDNURLTemplate, - Tracing: tracing, GrafanaComURL: grafanaComURL, GrafanaAppURL: appURL, - GrafanaAppSubURL: appSubURL, Features: features, AngularSupportEnabled: angularSupportEnabled, HideAngularDeprecation: hideAngularDeprecation, diff --git a/pkg/plugins/manager/client/client.go b/pkg/plugins/manager/client/client.go index a055882ecd5..aed1acd6e65 100644 --- a/pkg/plugins/manager/client/client.go +++ b/pkg/plugins/manager/client/client.go @@ -10,7 +10,6 @@ import ( "github.com/grafana/grafana-plugin-sdk-go/backend" "github.com/grafana/grafana/pkg/plugins" - "github.com/grafana/grafana/pkg/plugins/config" "github.com/grafana/grafana/pkg/plugins/manager/registry" ) @@ -29,13 +28,11 @@ var ( type Service struct { pluginRegistry registry.Service - cfg *config.PluginManagementCfg } -func ProvideService(pluginRegistry registry.Service, cfg *config.PluginManagementCfg) *Service { +func ProvideService(pluginRegistry registry.Service) *Service { return &Service{ pluginRegistry: pluginRegistry, - cfg: cfg, } } diff --git a/pkg/plugins/manager/client/client_test.go b/pkg/plugins/manager/client/client_test.go index c6fe6b19d1f..c6649b2f9dd 100644 --- a/pkg/plugins/manager/client/client_test.go +++ b/pkg/plugins/manager/client/client_test.go @@ -10,7 +10,6 @@ import ( "github.com/grafana/grafana-plugin-sdk-go/backend" "github.com/grafana/grafana/pkg/plugins" "github.com/grafana/grafana/pkg/plugins/backendplugin" - "github.com/grafana/grafana/pkg/plugins/config" "github.com/grafana/grafana/pkg/plugins/manager/fakes" "github.com/stretchr/testify/require" ) @@ -18,7 +17,7 @@ import ( func TestQueryData(t *testing.T) { t.Run("Empty registry should return not registered error", func(t *testing.T) { registry := fakes.NewFakePluginRegistry() - client := ProvideService(registry, &config.PluginManagementCfg{}) + client := ProvideService(registry) _, err := client.QueryData(context.Background(), &backend.QueryDataRequest{}) require.Error(t, err) require.ErrorIs(t, err, plugins.ErrPluginNotRegistered) @@ -63,7 +62,7 @@ func TestQueryData(t *testing.T) { err := registry.Add(context.Background(), p) require.NoError(t, err) - client := ProvideService(registry, &config.PluginManagementCfg{}) + client := ProvideService(registry) _, err = client.QueryData(context.Background(), &backend.QueryDataRequest{ PluginContext: backend.PluginContext{ PluginID: "grafana", @@ -79,7 +78,7 @@ func TestQueryData(t *testing.T) { func TestCheckHealth(t *testing.T) { t.Run("empty plugin registry should return plugin not registered error", func(t *testing.T) { registry := fakes.NewFakePluginRegistry() - client := ProvideService(registry, &config.PluginManagementCfg{}) + client := ProvideService(registry) _, err := client.CheckHealth(context.Background(), &backend.CheckHealthRequest{}) require.Error(t, err) require.ErrorIs(t, err, plugins.ErrPluginNotRegistered) @@ -125,7 +124,7 @@ func TestCheckHealth(t *testing.T) { err := registry.Add(context.Background(), p) require.NoError(t, err) - client := ProvideService(registry, &config.PluginManagementCfg{}) + client := ProvideService(registry) _, err = client.CheckHealth(context.Background(), &backend.CheckHealthRequest{ PluginContext: backend.PluginContext{ PluginID: "grafana", @@ -189,7 +188,7 @@ func TestCallResource(t *testing.T) { err := registry.Add(context.Background(), p) require.NoError(t, err) - client := ProvideService(registry, &config.PluginManagementCfg{}) + client := ProvideService(registry) err = client.CallResource(context.Background(), req, sender) require.NoError(t, err) @@ -252,7 +251,7 @@ func TestCallResource(t *testing.T) { err := registry.Add(context.Background(), p) require.NoError(t, err) - client := ProvideService(registry, &config.PluginManagementCfg{}) + client := ProvideService(registry) err = client.CallResource(context.Background(), req, sender) require.NoError(t, err) @@ -298,7 +297,7 @@ func TestCallResource(t *testing.T) { err := registry.Add(context.Background(), p) require.NoError(t, err) - client := ProvideService(registry, &config.PluginManagementCfg{}) + client := ProvideService(registry) err = client.CallResource(context.Background(), req, sender) require.NoError(t, err) @@ -366,7 +365,7 @@ func TestCallResource(t *testing.T) { err := registry.Add(context.Background(), p) require.NoError(t, err) - client := ProvideService(registry, &config.PluginManagementCfg{}) + client := ProvideService(registry) err = client.CallResource(context.Background(), req, sender) require.NoError(t, err) diff --git a/pkg/plugins/manager/loader/assetpath/assetpath_test.go b/pkg/plugins/manager/loader/assetpath/assetpath_test.go index 2f9b3d26cbf..9802dcfe00b 100644 --- a/pkg/plugins/manager/loader/assetpath/assetpath_test.go +++ b/pkg/plugins/manager/loader/assetpath/assetpath_test.go @@ -124,46 +124,4 @@ func TestService(t *testing.T) { }) }) } - - t.Run("App Sub URL has no effect on the path", func(t *testing.T) { - for _, tc := range []struct { - appSubURL string - }{ - { - appSubURL: "grafana", - }, - { - appSubURL: "/grafana", - }, - { - appSubURL: "grafana/", - }, - { - appSubURL: "/grafana/", - }, - } { - cfg := &config.PluginManagementCfg{GrafanaAppSubURL: tc.appSubURL} - svc := ProvideService(cfg, pluginscdn.ProvideService(cfg)) - - dir := "/plugins/test-datasource" - p := plugins.JSONData{ID: "test-datasource"} - fs := fakes.NewFakePluginFiles(dir) - - base, err := svc.Base(NewPluginInfo(p, plugins.ClassExternal, fs)) - require.NoError(t, err) - require.Equal(t, "public/plugins/test-datasource", base) - - mod, err := svc.Module(NewPluginInfo(p, plugins.ClassExternal, fs)) - require.NoError(t, err) - require.Equal(t, "public/plugins/test-datasource/module.js", mod) - - base, err = svc.Base(NewPluginInfo(p, plugins.ClassCore, fs)) - require.NoError(t, err) - require.Equal(t, "public/app/plugins/test-datasource", base) - - mod, err = svc.Module(NewPluginInfo(p, plugins.ClassCore, fs)) - require.NoError(t, err) - require.Equal(t, "core:plugin/test-datasource", mod) - } - }) } diff --git a/pkg/plugins/manager/loader/loader_test.go b/pkg/plugins/manager/loader/loader_test.go index 6eb1322648c..38470968535 100644 --- a/pkg/plugins/manager/loader/loader_test.go +++ b/pkg/plugins/manager/loader/loader_test.go @@ -410,47 +410,6 @@ func TestLoader_Load(t *testing.T) { }, }, }, - { - name: "Load a plugin with app sub url set", - class: plugins.ClassExternal, - cfg: &config.PluginManagementCfg{ - DevMode: true, - GrafanaAppSubURL: "grafana", - Features: featuremgmt.WithFeatures(), - }, - pluginPaths: []string{"../testdata/unsigned-datasource"}, - want: []*plugins.Plugin{ - { - JSONData: plugins.JSONData{ - ID: "test-datasource", - Type: plugins.TypeDataSource, - Name: "Test", - Info: plugins.Info{ - Author: plugins.InfoLink{ - Name: "Grafana Labs", - URL: "https://grafana.com", - }, - Logos: plugins.Logos{ - Small: "public/img/icn-datasource.svg", - Large: "public/img/icn-datasource.svg", - }, - Description: "Test", - }, - Dependencies: plugins.Dependencies{ - GrafanaVersion: "*", - Plugins: []plugins.Dependency{}, - }, - Backend: true, - State: plugins.ReleaseStateAlpha, - }, - Class: plugins.ClassExternal, - Module: "public/plugins/test-datasource/module.js", - BaseURL: "public/plugins/test-datasource", - FS: mustNewStaticFSForTests(t, filepath.Join(parentDir, "testdata/unsigned-datasource/plugin")), - Signature: plugins.SignatureStatusUnsigned, - }, - }, - }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { diff --git a/pkg/services/pluginsintegration/angularinspector/angularinspector.go b/pkg/services/pluginsintegration/angularinspector/angularinspector.go index b42fa54869e..1fd9f671019 100644 --- a/pkg/services/pluginsintegration/angularinspector/angularinspector.go +++ b/pkg/services/pluginsintegration/angularinspector/angularinspector.go @@ -1,7 +1,6 @@ package angularinspector import ( - "github.com/grafana/grafana/pkg/plugins/config" "github.com/grafana/grafana/pkg/plugins/manager/loader/angular/angulardetector" "github.com/grafana/grafana/pkg/plugins/manager/loader/angular/angularinspector" "github.com/grafana/grafana/pkg/services/featuremgmt" @@ -12,11 +11,11 @@ type Service struct { angularinspector.Inspector } -func ProvideService(cfg *config.PluginManagementCfg, dynamic *angulardetectorsprovider.Dynamic) (*Service, error) { +func ProvideService(features featuremgmt.FeatureToggles, dynamic *angulardetectorsprovider.Dynamic) (*Service, error) { var detectorsProvider angulardetector.DetectorsProvider var err error static := angularinspector.NewDefaultStaticDetectorsProvider() - if cfg.Features != nil && cfg.Features.IsEnabledGlobally(featuremgmt.FlagPluginsDynamicAngularDetectionPatterns) { + if features.IsEnabledGlobally(featuremgmt.FlagPluginsDynamicAngularDetectionPatterns) { detectorsProvider = angulardetector.SequenceDetectorsProvider{dynamic, static} } else { detectorsProvider = static diff --git a/pkg/services/pluginsintegration/angularinspector/angularinspector_test.go b/pkg/services/pluginsintegration/angularinspector/angularinspector_test.go index 14b288995b2..b95b6d37ed4 100644 --- a/pkg/services/pluginsintegration/angularinspector/angularinspector_test.go +++ b/pkg/services/pluginsintegration/angularinspector/angularinspector_test.go @@ -17,14 +17,14 @@ import ( func TestProvideService(t *testing.T) { t.Run("uses hardcoded inspector if feature flag is not present", func(t *testing.T) { - pCfg := &config.PluginManagementCfg{Features: featuremgmt.WithFeatures()} + features := featuremgmt.WithFeatures() dynamic, err := angulardetectorsprovider.ProvideDynamic( - pCfg, + &config.PluginManagementCfg{}, angularpatternsstore.ProvideService(kvstore.NewFakeKVStore()), - featuremgmt.WithFeatures(featuremgmt.FlagPluginsDynamicAngularDetectionPatterns), + features, ) require.NoError(t, err) - inspector, err := ProvideService(pCfg, dynamic) + inspector, err := ProvideService(features, dynamic) require.NoError(t, err) require.IsType(t, inspector.Inspector, &angularinspector.PatternsListInspector{}) patternsListInspector := inspector.Inspector.(*angularinspector.PatternsListInspector) @@ -33,16 +33,16 @@ func TestProvideService(t *testing.T) { }) t.Run("uses dynamic inspector with hardcoded fallback if feature flag is present", func(t *testing.T) { - pCfg := &config.PluginManagementCfg{Features: featuremgmt.WithFeatures( + features := featuremgmt.WithFeatures( featuremgmt.FlagPluginsDynamicAngularDetectionPatterns, - )} + ) dynamic, err := angulardetectorsprovider.ProvideDynamic( - pCfg, + &config.PluginManagementCfg{}, angularpatternsstore.ProvideService(kvstore.NewFakeKVStore()), - featuremgmt.WithFeatures(), + features, ) require.NoError(t, err) - inspector, err := ProvideService(pCfg, dynamic) + inspector, err := ProvideService(features, dynamic) require.NoError(t, err) require.IsType(t, inspector.Inspector, &angularinspector.PatternsListInspector{}) require.IsType(t, inspector.Inspector.(*angularinspector.PatternsListInspector).DetectorsProvider, angulardetector.SequenceDetectorsProvider{}) diff --git a/pkg/services/pluginsintegration/loader/loader_test.go b/pkg/services/pluginsintegration/loader/loader_test.go index c2327558f82..4f09dc249c3 100644 --- a/pkg/services/pluginsintegration/loader/loader_test.go +++ b/pkg/services/pluginsintegration/loader/loader_test.go @@ -440,47 +440,6 @@ func TestLoader_Load(t *testing.T) { }, }, }, - { - name: "Load a plugin with app sub url set", - class: plugins.ClassExternal, - cfg: &config.PluginManagementCfg{ - DevMode: true, - GrafanaAppSubURL: "grafana", - Features: featuremgmt.WithFeatures(), - }, - pluginPaths: []string{filepath.Join(testDataDir(t), "unsigned-datasource")}, - want: []*plugins.Plugin{ - { - JSONData: plugins.JSONData{ - ID: "test-datasource", - Type: plugins.TypeDataSource, - Name: "Test", - Info: plugins.Info{ - Author: plugins.InfoLink{ - Name: "Grafana Labs", - URL: "https://grafana.com", - }, - Logos: plugins.Logos{ - Small: "public/img/icn-datasource.svg", - Large: "public/img/icn-datasource.svg", - }, - Description: "Test", - }, - Dependencies: plugins.Dependencies{ - GrafanaVersion: "*", - Plugins: []plugins.Dependency{}, - }, - Backend: true, - State: plugins.ReleaseStateAlpha, - }, - Class: plugins.ClassExternal, - Module: "public/plugins/test-datasource/module.js", - BaseURL: "public/plugins/test-datasource", - FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "unsigned-datasource/plugin")), - Signature: plugins.SignatureStatusUnsigned, - }, - }, - }, } for _, tt := range tests { reg := fakes.NewFakePluginRegistry() diff --git a/pkg/services/pluginsintegration/pipeline/steps.go b/pkg/services/pluginsintegration/pipeline/steps.go index ea798c2dd2a..61a35a7ded0 100644 --- a/pkg/services/pluginsintegration/pipeline/steps.go +++ b/pkg/services/pluginsintegration/pipeline/steps.go @@ -167,7 +167,7 @@ type AsExternal struct { cfg *config.PluginManagementCfg } -// NewDisablePluginsStep returns a new DisablePlugins. +// NewAsExternalStep returns a new DisablePlugins. func NewAsExternalStep(cfg *config.PluginManagementCfg) *AsExternal { return &AsExternal{ cfg: cfg, diff --git a/pkg/services/pluginsintegration/pluginconfig/config.go b/pkg/services/pluginsintegration/pluginconfig/config.go index 0f2097341c8..46a5f7b9360 100644 --- a/pkg/services/pluginsintegration/pluginconfig/config.go +++ b/pkg/services/pluginsintegration/pluginconfig/config.go @@ -22,11 +22,6 @@ func ProvidePluginManagementConfig(cfg *setting.Cfg, settingProvider setting.Pro allowedUnsigned = strings.Split(plugins.KeyValue("allow_loading_unsigned_plugins").Value(), ",") } - tracingCfg, err := newTracingCfg(cfg) - if err != nil { - return nil, fmt.Errorf("new opentelemetry cfg: %w", err) - } - return config.NewPluginManagementCfg( settingProvider.KeyValue("", "app_mode").MustBool(cfg.Env == setting.Dev), cfg.PluginsPath, @@ -34,8 +29,6 @@ func ProvidePluginManagementConfig(cfg *setting.Cfg, settingProvider setting.Pro allowedUnsigned, cfg.PluginsCDNURLTemplate, cfg.AppURL, - cfg.AppSubURL, - tracingCfg, features, cfg.AngularSupportEnabled, cfg.GrafanaComURL, diff --git a/pkg/services/pluginsintegration/pluginsintegration.go b/pkg/services/pluginsintegration/pluginsintegration.go index 143f91e60d9..43d5ec020ac 100644 --- a/pkg/services/pluginsintegration/pluginsintegration.go +++ b/pkg/services/pluginsintegration/pluginsintegration.go @@ -9,7 +9,6 @@ import ( "github.com/grafana/grafana/pkg/plugins/auth" "github.com/grafana/grafana/pkg/plugins/backendplugin/coreplugin" "github.com/grafana/grafana/pkg/plugins/backendplugin/provider" - pCfg "github.com/grafana/grafana/pkg/plugins/config" "github.com/grafana/grafana/pkg/plugins/envvars" "github.com/grafana/grafana/pkg/plugins/log" "github.com/grafana/grafana/pkg/plugins/manager/client" @@ -136,7 +135,7 @@ var WireExtensionSet = wire.NewSet( ) func ProvideClientDecorator( - cfg *setting.Cfg, pCfg *pCfg.PluginManagementCfg, + cfg *setting.Cfg, pluginRegistry registry.Service, oAuthTokenService oauthtoken.OAuthTokenService, tracer tracing.Tracer, @@ -144,16 +143,16 @@ func ProvideClientDecorator( features *featuremgmt.FeatureManager, promRegisterer prometheus.Registerer, ) (*client.Decorator, error) { - return NewClientDecorator(cfg, pCfg, pluginRegistry, oAuthTokenService, tracer, cachingService, features, promRegisterer, pluginRegistry) + return NewClientDecorator(cfg, pluginRegistry, oAuthTokenService, tracer, cachingService, features, promRegisterer, pluginRegistry) } func NewClientDecorator( - cfg *setting.Cfg, pCfg *pCfg.PluginManagementCfg, + cfg *setting.Cfg, pluginRegistry registry.Service, oAuthTokenService oauthtoken.OAuthTokenService, tracer tracing.Tracer, cachingService caching.CachingService, features *featuremgmt.FeatureManager, promRegisterer prometheus.Registerer, registry registry.Service, ) (*client.Decorator, error) { - c := client.ProvideService(pluginRegistry, pCfg) + c := client.ProvideService(pluginRegistry) middlewares := CreateMiddlewares(cfg, oAuthTokenService, tracer, cachingService, features, promRegisterer, registry) return client.NewDecorator(c, middlewares...) } diff --git a/pkg/services/pluginsintegration/renderer/renderer.go b/pkg/services/pluginsintegration/renderer/renderer.go index 57a276c6ce8..178c37740be 100644 --- a/pkg/services/pluginsintegration/renderer/renderer.go +++ b/pkg/services/pluginsintegration/renderer/renderer.go @@ -8,7 +8,7 @@ import ( "github.com/grafana/grafana/pkg/plugins" "github.com/grafana/grafana/pkg/plugins/backendplugin/pluginextensionv2" "github.com/grafana/grafana/pkg/plugins/backendplugin/provider" - pluginscfg "github.com/grafana/grafana/pkg/plugins/config" + "github.com/grafana/grafana/pkg/plugins/config" "github.com/grafana/grafana/pkg/plugins/envvars" "github.com/grafana/grafana/pkg/plugins/manager/loader" "github.com/grafana/grafana/pkg/plugins/manager/pipeline/bootstrap" @@ -21,12 +21,11 @@ import ( "github.com/grafana/grafana/pkg/plugins/manager/sources" "github.com/grafana/grafana/pkg/services/pluginsintegration/pipeline" "github.com/grafana/grafana/pkg/services/rendering" - "github.com/grafana/grafana/pkg/setting" ) -func ProvideService(cfg *setting.Cfg, pCfg *pluginscfg.PluginManagementCfg, pluginEnvProvider envvars.Provider, registry registry.Service, - licensing plugins.Licensing) (*Manager, error) { - l, err := createLoader(cfg, pCfg, pluginEnvProvider, registry, licensing) +func ProvideService(cfg *config.PluginManagementCfg, pluginEnvProvider envvars.Provider, + registry registry.Service) (*Manager, error) { + l, err := createLoader(cfg, pluginEnvProvider, registry) if err != nil { return nil, err } @@ -35,14 +34,14 @@ func ProvideService(cfg *setting.Cfg, pCfg *pluginscfg.PluginManagementCfg, plug } type Manager struct { - cfg *setting.Cfg + cfg *config.PluginManagementCfg loader loader.Service log log.Logger renderer *Plugin } -func NewManager(cfg *setting.Cfg, loader loader.Service) *Manager { +func NewManager(cfg *config.PluginManagementCfg, loader loader.Service) *Manager { return &Manager{ cfg: cfg, loader: loader, @@ -104,9 +103,9 @@ func (m *Manager) Renderer(ctx context.Context) (rendering.Plugin, bool) { return nil, false } -func createLoader(cfg *setting.Cfg, pCfg *pluginscfg.PluginManagementCfg, pluginEnvProvider envvars.Provider, - pr registry.Service, l plugins.Licensing) (loader.Service, error) { - d := discovery.New(pCfg, discovery.Opts{ +func createLoader(cfg *config.PluginManagementCfg, pluginEnvProvider envvars.Provider, + pr registry.Service) (loader.Service, error) { + d := discovery.New(cfg, discovery.Opts{ FindFilterFuncs: []discovery.FindFilterFunc{ discovery.NewPermittedPluginTypesFilterStep([]plugins.Type{plugins.TypeRenderer}), func(ctx context.Context, class plugins.Class, bundles []*plugins.FoundBundle) ([]*plugins.FoundBundle, error) { @@ -114,21 +113,21 @@ func createLoader(cfg *setting.Cfg, pCfg *pluginscfg.PluginManagementCfg, plugin }, }, }) - b := bootstrap.New(pCfg, bootstrap.Opts{ + b := bootstrap.New(cfg, bootstrap.Opts{ DecorateFuncs: []bootstrap.DecorateFunc{}, // no decoration required }) - v := validation.New(pCfg, validation.Opts{ + v := validation.New(cfg, validation.Opts{ ValidateFuncs: []validation.ValidateFunc{ - validation.SignatureValidationStep(signature.NewValidator(signature.NewUnsignedAuthorizer(pCfg))), + validation.SignatureValidationStep(signature.NewValidator(signature.NewUnsignedAuthorizer(cfg))), }, }) - i := initialization.New(pCfg, initialization.Opts{ + i := initialization.New(cfg, initialization.Opts{ InitializeFuncs: []initialization.InitializeFunc{ initialization.BackendClientInitStep(pluginEnvProvider, provider.New(provider.RendererProvider)), initialization.PluginRegistrationStep(pr), }, }) - t, err := termination.New(pCfg, termination.Opts{ + t, err := termination.New(cfg, termination.Opts{ TerminateFuncs: []termination.TerminateFunc{ termination.DeregisterStep(pr), }, diff --git a/pkg/services/pluginsintegration/renderer/renderer_test.go b/pkg/services/pluginsintegration/renderer/renderer_test.go index 0c5bdbfd904..2f7f5d0c913 100644 --- a/pkg/services/pluginsintegration/renderer/renderer_test.go +++ b/pkg/services/pluginsintegration/renderer/renderer_test.go @@ -9,8 +9,8 @@ import ( "github.com/stretchr/testify/require" "github.com/grafana/grafana/pkg/plugins" + "github.com/grafana/grafana/pkg/plugins/config" "github.com/grafana/grafana/pkg/plugins/manager/fakes" - "github.com/grafana/grafana/pkg/setting" ) func TestRenderer(t *testing.T) { @@ -33,9 +33,7 @@ func TestRenderer(t *testing.T) { return nil, nil }, } - cfg := &setting.Cfg{ - PluginsPath: filepath.Join(testdataDir), - } + cfg := &config.PluginManagementCfg{PluginsPath: filepath.Join(testdataDir)} m := NewManager(cfg, loader) @@ -67,9 +65,7 @@ func TestRenderer(t *testing.T) { return nil, nil }, } - cfg := &setting.Cfg{ - PluginsPath: filepath.Join(testdataDir), - } + cfg := &config.PluginManagementCfg{PluginsPath: filepath.Join(testdataDir)} m := NewManager(cfg, loader) diff --git a/pkg/services/pluginsintegration/serviceregistration/serviceregistration.go b/pkg/services/pluginsintegration/serviceregistration/serviceregistration.go index 0f7ad32115a..2658ea56599 100644 --- a/pkg/services/pluginsintegration/serviceregistration/serviceregistration.go +++ b/pkg/services/pluginsintegration/serviceregistration/serviceregistration.go @@ -5,7 +5,6 @@ import ( "errors" "github.com/grafana/grafana/pkg/plugins/auth" - "github.com/grafana/grafana/pkg/plugins/config" "github.com/grafana/grafana/pkg/plugins/log" "github.com/grafana/grafana/pkg/plugins/pfs" "github.com/grafana/grafana/pkg/services/accesscontrol" @@ -21,9 +20,9 @@ type Service struct { settingsSvc pluginsettings.Service } -func ProvideService(cfg *config.PluginManagementCfg, reg extsvcauth.ExternalServiceRegistry, settingsSvc pluginsettings.Service) *Service { +func ProvideService(features featuremgmt.FeatureToggles, reg extsvcauth.ExternalServiceRegistry, settingsSvc pluginsettings.Service) *Service { s := &Service{ - featureEnabled: cfg.Features.IsEnabledGlobally(featuremgmt.FlagExternalServiceAccounts), + featureEnabled: features.IsEnabledGlobally(featuremgmt.FlagExternalServiceAccounts), log: log.New("plugins.external.registration"), reg: reg, settingsSvc: settingsSvc, diff --git a/pkg/services/pluginsintegration/test_helper.go b/pkg/services/pluginsintegration/test_helper.go index 7d6670e4308..1242bf2d3e9 100644 --- a/pkg/services/pluginsintegration/test_helper.go +++ b/pkg/services/pluginsintegration/test_helper.go @@ -70,7 +70,7 @@ func CreateIntegrationTestCtx(t *testing.T, cfg *setting.Cfg, coreRegistry *core require.NoError(t, err) return &IntegrationTestCtx{ - PluginClient: client.ProvideService(reg, pCfg), + PluginClient: client.ProvideService(reg), PluginStore: ps, PluginRegistry: reg, }