From 011726c80f8d21d7cff12198cf4b0bff2a1df1fe Mon Sep 17 00:00:00 2001 From: Giuseppe Guerra Date: Wed, 19 Feb 2025 12:19:45 +0100 Subject: [PATCH] Plugins: Update DefaultSignature function signature in PluginSource interface (#100519) * Plugins CDN: Add support for signature type and signature org * Fall-back to valid signature if the config is not supported * Move CDN signature code to DefaultSignature * fix tests --- pkg/plugins/ifaces.go | 2 +- pkg/plugins/manager/fakes/fakes.go | 2 +- pkg/plugins/manager/signature/manifest.go | 2 +- pkg/plugins/manager/sources/source_local_disk.go | 2 +- pkg/plugins/manager/sources/sources_test.go | 8 ++++---- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/plugins/ifaces.go b/pkg/plugins/ifaces.go index 0160fc1112b..368537db337 100644 --- a/pkg/plugins/ifaces.go +++ b/pkg/plugins/ifaces.go @@ -20,7 +20,7 @@ type Installer interface { type PluginSource interface { PluginClass(ctx context.Context) Class PluginURIs(ctx context.Context) []string - DefaultSignature(ctx context.Context) (Signature, bool) + DefaultSignature(ctx context.Context, pluginID string) (Signature, bool) } type FileStore interface { diff --git a/pkg/plugins/manager/fakes/fakes.go b/pkg/plugins/manager/fakes/fakes.go index d84de30e969..8cb762f94b8 100644 --- a/pkg/plugins/manager/fakes/fakes.go +++ b/pkg/plugins/manager/fakes/fakes.go @@ -494,7 +494,7 @@ func (s *FakePluginSource) PluginURIs(ctx context.Context) []string { return []string{} } -func (s *FakePluginSource) DefaultSignature(ctx context.Context) (plugins.Signature, bool) { +func (s *FakePluginSource) DefaultSignature(ctx context.Context, _ string) (plugins.Signature, bool) { if s.DefaultSignatureFunc != nil { return s.DefaultSignatureFunc(ctx) } diff --git a/pkg/plugins/manager/signature/manifest.go b/pkg/plugins/manager/signature/manifest.go index c363f888198..6d790c79873 100644 --- a/pkg/plugins/manager/signature/manifest.go +++ b/pkg/plugins/manager/signature/manifest.go @@ -141,7 +141,7 @@ func (s *Signature) ReadPluginManifestFromFS(ctx context.Context, pfs plugins.FS } func (s *Signature) Calculate(ctx context.Context, src plugins.PluginSource, plugin plugins.FoundPlugin) (plugins.Signature, error) { - if defaultSignature, exists := src.DefaultSignature(ctx); exists { + if defaultSignature, exists := src.DefaultSignature(ctx, plugin.JSONData.ID); exists { return defaultSignature, nil } diff --git a/pkg/plugins/manager/sources/source_local_disk.go b/pkg/plugins/manager/sources/source_local_disk.go index 4fddc464fea..fc20b45499f 100644 --- a/pkg/plugins/manager/sources/source_local_disk.go +++ b/pkg/plugins/manager/sources/source_local_disk.go @@ -30,7 +30,7 @@ func (s *LocalSource) PluginURIs(_ context.Context) []string { return s.paths } -func (s *LocalSource) DefaultSignature(_ context.Context) (plugins.Signature, bool) { +func (s *LocalSource) DefaultSignature(_ context.Context, _ string) (plugins.Signature, bool) { switch s.class { case plugins.ClassCore: return plugins.Signature{ diff --git a/pkg/plugins/manager/sources/sources_test.go b/pkg/plugins/manager/sources/sources_test.go index 3719b021a18..898aedff819 100644 --- a/pkg/plugins/manager/sources/sources_test.go +++ b/pkg/plugins/manager/sources/sources_test.go @@ -41,7 +41,7 @@ func TestSources_List(t *testing.T) { filepath.Join(testdata, "app", "plugins", "datasource"), filepath.Join(testdata, "app", "plugins", "panel"), }) - sig, exists := srcs[0].DefaultSignature(ctx) + sig, exists := srcs[0].DefaultSignature(ctx, "") require.True(t, exists) require.Equal(t, plugins.SignatureStatusInternal, sig.Status) require.Equal(t, plugins.SignatureType(""), sig.Type) @@ -51,7 +51,7 @@ func TestSources_List(t *testing.T) { require.Equal(t, srcs[1].PluginURIs(ctx), []string{ filepath.Join(testdata, "pluginRootWithDist", "datasource"), }) - sig, exists = srcs[1].DefaultSignature(ctx) + sig, exists = srcs[1].DefaultSignature(ctx, "") require.False(t, exists) require.Equal(t, plugins.Signature{}, sig) @@ -59,7 +59,7 @@ func TestSources_List(t *testing.T) { require.Equal(t, srcs[2].PluginURIs(ctx), []string{ filepath.Join(testdata, "pluginRootWithDist", "dist"), }) - sig, exists = srcs[2].DefaultSignature(ctx) + sig, exists = srcs[2].DefaultSignature(ctx, "") require.False(t, exists) require.Equal(t, plugins.Signature{}, sig) @@ -67,7 +67,7 @@ func TestSources_List(t *testing.T) { require.Equal(t, srcs[3].PluginURIs(ctx), []string{ filepath.Join(testdata, "pluginRootWithDist", "panel"), }) - sig, exists = srcs[3].DefaultSignature(ctx) + sig, exists = srcs[3].DefaultSignature(ctx, "") require.False(t, exists) require.Equal(t, plugins.Signature{}, sig) })