Plugins: Perform plugin update check prior to uninstall (#36909)

* only uninstall if update is possible

* add .

* update lingo for clarity
This commit is contained in:
Will Browne
2021-07-29 11:52:23 +02:00
committed by GitHub
parent 8ebba0a93d
commit 08a73a5291
5 changed files with 45 additions and 7 deletions
+12 -2
View File
@@ -726,6 +726,8 @@ func (pm *PluginManager) StaticRoutes() []*plugins.PluginStaticRoute {
func (pm *PluginManager) Install(ctx context.Context, pluginID, version string) error {
plugin := pm.GetPlugin(pluginID)
var pluginZipURL string
if plugin != nil {
if plugin.IsCorePlugin {
return plugins.ErrInstallCorePlugin
@@ -738,14 +740,22 @@ func (pm *PluginManager) Install(ctx context.Context, pluginID, version string)
}
}
// get plugin update information to confirm if upgrading is possible
updateInfo, err := pm.pluginInstaller.GetUpdateInfo(pluginID, version, grafanaComURL)
if err != nil {
return err
}
pluginZipURL = updateInfo.PluginZipURL
// remove existing installation of plugin
err := pm.Uninstall(context.Background(), plugin.Id)
err = pm.Uninstall(context.Background(), plugin.Id)
if err != nil {
return err
}
}
err := pm.pluginInstaller.Install(ctx, pluginID, version, pm.Cfg.PluginsPath, "", grafanaComURL)
err := pm.pluginInstaller.Install(ctx, pluginID, version, pm.Cfg.PluginsPath, pluginZipURL, grafanaComURL)
if err != nil {
return err
}