From 94688be398b2becc20b0df5c18de1a6048794251 Mon Sep 17 00:00:00 2001 From: Will Browne Date: Thu, 15 Jul 2021 00:08:25 -0700 Subject: [PATCH] Plugins: Use plugin.pluginDir as source of truth for plugin location (#36711) * use plugin.pluginDir as source of truth for plugin location * correct the interface --- pkg/plugins/ifaces.go | 2 +- pkg/plugins/manager/installer/installer.go | 10 ++++------ pkg/plugins/manager/manager.go | 2 +- pkg/plugins/manager/manager_test.go | 2 +- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/pkg/plugins/ifaces.go b/pkg/plugins/ifaces.go index 7e1722c26b5..eb091797e7a 100644 --- a/pkg/plugins/ifaces.go +++ b/pkg/plugins/ifaces.go @@ -78,7 +78,7 @@ type PluginInstaller interface { // and installs in the provided plugins directory. Install(ctx context.Context, pluginID, version, pluginsDirectory, pluginZipURL, pluginRepoURL string) error // Uninstall removes the specified plugin from the provided plugins directory. - Uninstall(ctx context.Context, pluginID, pluginPath string) error + Uninstall(ctx context.Context, pluginPath string) error } type PluginInstallerLogger interface { diff --git a/pkg/plugins/manager/installer/installer.go b/pkg/plugins/manager/installer/installer.go index 80afb531873..9b9d5480228 100644 --- a/pkg/plugins/manager/installer/installer.go +++ b/pkg/plugins/manager/installer/installer.go @@ -177,22 +177,20 @@ func (i *Installer) Install(ctx context.Context, pluginID, version, pluginsDir, return err } -// Uninstall removes the specified plugin from the provided plugins directory. -func (i *Installer) Uninstall(ctx context.Context, pluginID, pluginPath string) error { - pluginDir := filepath.Join(pluginPath, pluginID) - +// Uninstall removes the specified plugin from the provided plugin directory. +func (i *Installer) Uninstall(ctx context.Context, pluginDir string) error { // verify it's a plugin directory if _, err := os.Stat(filepath.Join(pluginDir, "plugin.json")); err != nil { if os.IsNotExist(err) { if _, err := os.Stat(filepath.Join(pluginDir, "dist", "plugin.json")); err != nil { if os.IsNotExist(err) { - return fmt.Errorf("tried to remove %s, but it doesn't seem to be a plugin", pluginPath) + return fmt.Errorf("tried to remove %s, but it doesn't seem to be a plugin", pluginDir) } } } } - i.log.Infof("Uninstalling plugin %v", pluginID) + i.log.Infof("Uninstalling plugin %v", pluginDir) return os.RemoveAll(pluginDir) } diff --git a/pkg/plugins/manager/manager.go b/pkg/plugins/manager/manager.go index 0cc4af9b7dc..308050d3405 100644 --- a/pkg/plugins/manager/manager.go +++ b/pkg/plugins/manager/manager.go @@ -786,7 +786,7 @@ func (pm *PluginManager) Uninstall(ctx context.Context, pluginID string) error { return err } - return pm.pluginInstaller.Uninstall(ctx, pluginID, pm.Cfg.PluginsPath) + return pm.pluginInstaller.Uninstall(ctx, plugin.PluginDir) } func (pm *PluginManager) unregister(plugin *plugins.PluginBase) error { diff --git a/pkg/plugins/manager/manager_test.go b/pkg/plugins/manager/manager_test.go index f76adabe430..3d09ea28128 100644 --- a/pkg/plugins/manager/manager_test.go +++ b/pkg/plugins/manager/manager_test.go @@ -697,7 +697,7 @@ func (f *fakePluginInstaller) Install(ctx context.Context, pluginID, version, pl return nil } -func (f *fakePluginInstaller) Uninstall(ctx context.Context, pluginID, pluginPath string) error { +func (f *fakePluginInstaller) Uninstall(ctx context.Context, pluginPath string) error { f.uninstallCount++ return nil }