Plugins: Add managed instance installation resources (#76767)

* Plugins: Add configs to allow managed install

* Expose methods to use with cloud plugin installer

* Change plugins installer bind to OSS
This commit is contained in:
Hugo Kiyodi Oshiro
2023-10-24 16:21:37 +02:00
committed by GitHub
parent 162a422f0a
commit dfc1875061
10 changed files with 27 additions and 11 deletions
+8
View File
@@ -204,6 +204,7 @@ type FakePluginRepo struct {
GetPluginArchiveFunc func(_ context.Context, pluginID, version string, _ repo.CompatOpts) (*repo.PluginArchive, error)
GetPluginArchiveByURLFunc func(_ context.Context, archiveURL string, _ repo.CompatOpts) (*repo.PluginArchive, error)
GetPluginArchiveInfoFunc func(_ context.Context, pluginID, version string, _ repo.CompatOpts) (*repo.PluginArchiveInfo, error)
PluginVersionFunc func(pluginID, version string, compatOpts repo.CompatOpts) (repo.VersionData, error)
}
// GetPluginArchive fetches the requested plugin archive.
@@ -232,6 +233,13 @@ func (r *FakePluginRepo) GetPluginArchiveInfo(ctx context.Context, pluginID, ver
return &repo.PluginArchiveInfo{}, nil
}
func (r *FakePluginRepo) PluginVersion(pluginID, version string, compatOpts repo.CompatOpts) (repo.VersionData, error) {
if r.PluginVersionFunc != nil {
return r.PluginVersionFunc(pluginID, version, compatOpts)
}
return repo.VersionData{}, nil
}
type FakePluginStorage struct {
ExtractFunc func(_ context.Context, pluginID string, dirNameFunc storage.DirNameGeneratorFunc, z *zip.ReadCloser) (*storage.ExtractedPluginArchive, error)
}
+2 -2
View File
@@ -45,7 +45,7 @@ func New(pluginRegistry registry.Service, pluginLoader loader.Service, pluginRep
}
func (m *PluginInstaller) Add(ctx context.Context, pluginID, version string, opts plugins.CompatOpts) error {
compatOpts, err := repoCompatOpts(opts)
compatOpts, err := RepoCompatOpts(opts)
if err != nil {
return err
}
@@ -169,7 +169,7 @@ func (m *PluginInstaller) plugin(ctx context.Context, pluginID string) (*plugins
return p, true
}
func repoCompatOpts(opts plugins.CompatOpts) (repo.CompatOpts, error) {
func RepoCompatOpts(opts plugins.CompatOpts) (repo.CompatOpts, error) {
os := opts.OS()
arch := opts.Arch()
if len(os) == 0 || len(arch) == 0 {