mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
use new plugin-specific repo route when installing or updating a single plugin (#4992)
This commit is contained in:
parent
2f6b00b6f7
commit
9f9f4e7fef
@ -1,6 +1,8 @@
|
|||||||
package commands
|
package commands
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/fatih/color"
|
||||||
|
"github.com/grafana/grafana/pkg/cmd/grafana-cli/log"
|
||||||
s "github.com/grafana/grafana/pkg/cmd/grafana-cli/services"
|
s "github.com/grafana/grafana/pkg/cmd/grafana-cli/services"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -14,20 +16,17 @@ func upgradeCommand(c CommandLine) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
remotePlugins, err2 := s.ListAllPlugins(c.GlobalString("repo"))
|
v, err2 := s.GetPlugin(localPlugin.Id, c.GlobalString("repo"))
|
||||||
|
|
||||||
if err2 != nil {
|
if err2 != nil {
|
||||||
return err2
|
return err2
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, v := range remotePlugins.Plugins {
|
if ShouldUpgrade(localPlugin.Info.Version, v) {
|
||||||
if localPlugin.Id == v.Id {
|
s.RemoveInstalledPlugin(pluginsDir, pluginName)
|
||||||
if ShouldUpgrade(localPlugin.Info.Version, v) {
|
return InstallPlugin(localPlugin.Id, "", c)
|
||||||
s.RemoveInstalledPlugin(pluginsDir, pluginName)
|
|
||||||
return InstallPlugin(localPlugin.Id, "", c)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.Infof("%s %s is up to date \n", color.GreenString("✔"), localPlugin.Id)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ func ReadPlugin(pluginDir, pluginName string) (m.InstalledPlugin, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if res.Id == "" {
|
if res.Id == "" {
|
||||||
return m.InstalledPlugin{}, errors.New("could not read find plugin " + pluginName)
|
return m.InstalledPlugin{}, errors.New("could not find plugin " + pluginName + " in " + pluginDir)
|
||||||
}
|
}
|
||||||
|
|
||||||
return res, nil
|
return res, nil
|
||||||
@ -69,13 +69,21 @@ func RemoveInstalledPlugin(pluginPath, id string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func GetPlugin(pluginId, repoUrl string) (m.Plugin, error) {
|
func GetPlugin(pluginId, repoUrl string) (m.Plugin, error) {
|
||||||
resp, _ := ListAllPlugins(repoUrl)
|
fullUrl := repoUrl + "/repo/" + pluginId
|
||||||
|
|
||||||
for _, i := range resp.Plugins {
|
res, err := goreq.Request{Uri: fullUrl, MaxRedirects: 3}.Do()
|
||||||
if i.Id == pluginId {
|
if err != nil {
|
||||||
return i, nil
|
return m.Plugin{}, err
|
||||||
}
|
}
|
||||||
|
if res.StatusCode != 200 {
|
||||||
|
return m.Plugin{}, fmt.Errorf("Could not access %s statuscode %v", fullUrl, res.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
return m.Plugin{}, errors.New("could not find plugin named \"" + pluginId + "\"")
|
var resp m.Plugin
|
||||||
|
err = res.Body.FromJsonTo(&resp)
|
||||||
|
if err != nil {
|
||||||
|
return m.Plugin{}, errors.New("Could not load plugin data")
|
||||||
|
}
|
||||||
|
|
||||||
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user