mirror of
https://github.com/grafana/grafana.git
synced 2025-08-01 11:02:13 +08:00
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
This commit is contained in:
@ -20,7 +20,7 @@ type Installer interface {
|
|||||||
type PluginSource interface {
|
type PluginSource interface {
|
||||||
PluginClass(ctx context.Context) Class
|
PluginClass(ctx context.Context) Class
|
||||||
PluginURIs(ctx context.Context) []string
|
PluginURIs(ctx context.Context) []string
|
||||||
DefaultSignature(ctx context.Context) (Signature, bool)
|
DefaultSignature(ctx context.Context, pluginID string) (Signature, bool)
|
||||||
}
|
}
|
||||||
|
|
||||||
type FileStore interface {
|
type FileStore interface {
|
||||||
|
@ -494,7 +494,7 @@ func (s *FakePluginSource) PluginURIs(ctx context.Context) []string {
|
|||||||
return []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 {
|
if s.DefaultSignatureFunc != nil {
|
||||||
return s.DefaultSignatureFunc(ctx)
|
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) {
|
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
|
return defaultSignature, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ func (s *LocalSource) PluginURIs(_ context.Context) []string {
|
|||||||
return s.paths
|
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 {
|
switch s.class {
|
||||||
case plugins.ClassCore:
|
case plugins.ClassCore:
|
||||||
return plugins.Signature{
|
return plugins.Signature{
|
||||||
|
@ -41,7 +41,7 @@ func TestSources_List(t *testing.T) {
|
|||||||
filepath.Join(testdata, "app", "plugins", "datasource"),
|
filepath.Join(testdata, "app", "plugins", "datasource"),
|
||||||
filepath.Join(testdata, "app", "plugins", "panel"),
|
filepath.Join(testdata, "app", "plugins", "panel"),
|
||||||
})
|
})
|
||||||
sig, exists := srcs[0].DefaultSignature(ctx)
|
sig, exists := srcs[0].DefaultSignature(ctx, "")
|
||||||
require.True(t, exists)
|
require.True(t, exists)
|
||||||
require.Equal(t, plugins.SignatureStatusInternal, sig.Status)
|
require.Equal(t, plugins.SignatureStatusInternal, sig.Status)
|
||||||
require.Equal(t, plugins.SignatureType(""), sig.Type)
|
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{
|
require.Equal(t, srcs[1].PluginURIs(ctx), []string{
|
||||||
filepath.Join(testdata, "pluginRootWithDist", "datasource"),
|
filepath.Join(testdata, "pluginRootWithDist", "datasource"),
|
||||||
})
|
})
|
||||||
sig, exists = srcs[1].DefaultSignature(ctx)
|
sig, exists = srcs[1].DefaultSignature(ctx, "")
|
||||||
require.False(t, exists)
|
require.False(t, exists)
|
||||||
require.Equal(t, plugins.Signature{}, sig)
|
require.Equal(t, plugins.Signature{}, sig)
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ func TestSources_List(t *testing.T) {
|
|||||||
require.Equal(t, srcs[2].PluginURIs(ctx), []string{
|
require.Equal(t, srcs[2].PluginURIs(ctx), []string{
|
||||||
filepath.Join(testdata, "pluginRootWithDist", "dist"),
|
filepath.Join(testdata, "pluginRootWithDist", "dist"),
|
||||||
})
|
})
|
||||||
sig, exists = srcs[2].DefaultSignature(ctx)
|
sig, exists = srcs[2].DefaultSignature(ctx, "")
|
||||||
require.False(t, exists)
|
require.False(t, exists)
|
||||||
require.Equal(t, plugins.Signature{}, sig)
|
require.Equal(t, plugins.Signature{}, sig)
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ func TestSources_List(t *testing.T) {
|
|||||||
require.Equal(t, srcs[3].PluginURIs(ctx), []string{
|
require.Equal(t, srcs[3].PluginURIs(ctx), []string{
|
||||||
filepath.Join(testdata, "pluginRootWithDist", "panel"),
|
filepath.Join(testdata, "pluginRootWithDist", "panel"),
|
||||||
})
|
})
|
||||||
sig, exists = srcs[3].DefaultSignature(ctx)
|
sig, exists = srcs[3].DefaultSignature(ctx, "")
|
||||||
require.False(t, exists)
|
require.False(t, exists)
|
||||||
require.Equal(t, plugins.Signature{}, sig)
|
require.Equal(t, plugins.Signature{}, sig)
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user