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:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user