Plugins: Refactor loader + finder to support multiple sourcing methods (#64735)
* it's cdn time * tidy body closing * auto signed * fix close * update log name * remove comments
This commit is contained in:
@@ -37,13 +37,13 @@ func (i *FakePluginInstaller) Remove(ctx context.Context, pluginID string) error
|
||||
}
|
||||
|
||||
type FakeLoader struct {
|
||||
LoadFunc func(_ context.Context, _ plugins.Class, paths []string) ([]*plugins.Plugin, error)
|
||||
LoadFunc func(_ context.Context, _ plugins.PluginSource) ([]*plugins.Plugin, error)
|
||||
UnloadFunc func(_ context.Context, _ string) error
|
||||
}
|
||||
|
||||
func (l *FakeLoader) Load(ctx context.Context, class plugins.Class, paths []string) ([]*plugins.Plugin, error) {
|
||||
func (l *FakeLoader) Load(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
|
||||
if l.LoadFunc != nil {
|
||||
return l.LoadFunc(ctx, class, paths)
|
||||
return l.LoadFunc(ctx, src)
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
@@ -381,13 +381,40 @@ func (f *FakePluginFiles) Files() []string {
|
||||
return []string{}
|
||||
}
|
||||
|
||||
type FakeSources struct {
|
||||
type FakeSourceRegistry struct {
|
||||
ListFunc func(_ context.Context) []plugins.PluginSource
|
||||
}
|
||||
|
||||
func (s *FakeSources) List(ctx context.Context) []plugins.PluginSource {
|
||||
func (s *FakeSourceRegistry) List(ctx context.Context) []plugins.PluginSource {
|
||||
if s.ListFunc != nil {
|
||||
return s.ListFunc(ctx)
|
||||
}
|
||||
return []plugins.PluginSource{}
|
||||
}
|
||||
|
||||
type FakePluginSource struct {
|
||||
PluginClassFunc func(ctx context.Context) plugins.Class
|
||||
PluginURIsFunc func(ctx context.Context) []string
|
||||
DefaultSignatureFunc func(ctx context.Context) (plugins.Signature, bool)
|
||||
}
|
||||
|
||||
func (s *FakePluginSource) PluginClass(ctx context.Context) plugins.Class {
|
||||
if s.PluginClassFunc != nil {
|
||||
return s.PluginClassFunc(ctx)
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (s *FakePluginSource) PluginURIs(ctx context.Context) []string {
|
||||
if s.PluginURIsFunc != nil {
|
||||
return s.PluginURIsFunc(ctx)
|
||||
}
|
||||
return []string{}
|
||||
}
|
||||
|
||||
func (s *FakePluginSource) DefaultSignature(ctx context.Context) (plugins.Signature, bool) {
|
||||
if s.DefaultSignatureFunc != nil {
|
||||
return s.DefaultSignatureFunc(ctx)
|
||||
}
|
||||
return plugins.Signature{}, false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user