use new plugin-specific repo route when installing or updating a single plugin (#4992)

pull/5006/merge
Dan Cech 9 years ago committed by Torkel Ödegaard
parent 2f6b00b6f7
commit 9f9f4e7fef
  1. 9
      pkg/cmd/grafana-cli/commands/upgrade_command.go
  2. 20
      pkg/cmd/grafana-cli/services/services.go

@ -1,6 +1,8 @@
package commands
import (
"github.com/fatih/color"
"github.com/grafana/grafana/pkg/cmd/grafana-cli/log"
s "github.com/grafana/grafana/pkg/cmd/grafana-cli/services"
)
@ -14,20 +16,17 @@ func upgradeCommand(c CommandLine) error {
return err
}
remotePlugins, err2 := s.ListAllPlugins(c.GlobalString("repo"))
v, err2 := s.GetPlugin(localPlugin.Id, c.GlobalString("repo"))
if err2 != nil {
return err2
}
for _, v := range remotePlugins.Plugins {
if localPlugin.Id == v.Id {
if ShouldUpgrade(localPlugin.Info.Version, v) {
s.RemoveInstalledPlugin(pluginsDir, pluginName)
return InstallPlugin(localPlugin.Id, "", c)
}
}
}
log.Infof("%s %s is up to date \n", color.GreenString("✔"), localPlugin.Id)
return nil
}

@ -44,7 +44,7 @@ func ReadPlugin(pluginDir, pluginName string) (m.InstalledPlugin, error) {
}
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
@ -69,13 +69,21 @@ func RemoveInstalledPlugin(pluginPath, id string) error {
}
func GetPlugin(pluginId, repoUrl string) (m.Plugin, error) {
resp, _ := ListAllPlugins(repoUrl)
fullUrl := repoUrl + "/repo/" + pluginId
for _, i := range resp.Plugins {
if i.Id == pluginId {
return i, nil
res, err := goreq.Request{Uri: fullUrl, MaxRedirects: 3}.Do()
if err != nil {
return m.Plugin{}, err
}
if res.StatusCode != 200 {
return m.Plugin{}, fmt.Errorf("Could not access %s statuscode %v", fullUrl, res.StatusCode)
}
var resp m.Plugin
err = res.Body.FromJsonTo(&resp)
if err != nil {
return m.Plugin{}, errors.New("Could not load plugin data")
}
return m.Plugin{}, errors.New("could not find plugin named \"" + pluginId + "\"")
return resp, nil
}

Loading…
Cancel
Save