Plugins: Ensure plugin uninstall success for "pre-installed" community plugins (#55322)

* track pre-installed external plugins in store

* fix tests
This commit is contained in:
Will Browne
2022-09-19 12:14:30 +02:00
committed by GitHub
parent 64bbb7a7ce
commit cd7a464f7e
5 changed files with 46 additions and 13 deletions
+8 -4
View File
@@ -61,10 +61,6 @@ func (fs *FS) Add(ctx context.Context, pluginID string, pluginArchive *zip.ReadC
})
}
fs.mu.Lock()
fs.store[pluginID] = pluginDir
fs.mu.Unlock()
return &ExtractedPluginArchive{
ID: res.ID,
Version: res.Info.Version,
@@ -73,6 +69,14 @@ func (fs *FS) Add(ctx context.Context, pluginID string, pluginArchive *zip.ReadC
}, nil
}
func (fs *FS) Register(_ context.Context, pluginID, pluginDir string) error {
fs.mu.Lock()
fs.store[pluginID] = pluginDir
fs.mu.Unlock()
return nil
}
func (fs *FS) Remove(_ context.Context, pluginID string) error {
fs.mu.RLock()
pluginDir, exists := fs.store[pluginID]
+1
View File
@@ -7,5 +7,6 @@ import (
type Manager interface {
Add(ctx context.Context, pluginID string, rc *zip.ReadCloser) (*ExtractedPluginArchive, error)
Register(ctx context.Context, pluginID, pluginDir string) error
Remove(ctx context.Context, pluginID string) error
}