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
pull/100963/head
Giuseppe Guerra 10 months ago committed by GitHub
parent 8646961c3f
commit 011726c80f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      pkg/plugins/ifaces.go
  2. 2
      pkg/plugins/manager/fakes/fakes.go
  3. 2
      pkg/plugins/manager/signature/manifest.go
  4. 2
      pkg/plugins/manager/sources/source_local_disk.go
  5. 8
      pkg/plugins/manager/sources/sources_test.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 {

@ -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)
}

@ -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
}

@ -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{

@ -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)
})

Loading…
Cancel
Save