|
|
@@ -21,6 +21,7 @@ var (
|
|
|
IoHelper m.IoUtil = IoUtilImp{}
|
|
|
HttpClient http.Client
|
|
|
grafanaVersion string
|
|
|
+ NotFoundError = errors.New("404 not found error")
|
|
|
)
|
|
|
|
|
|
func Init(version string, skipTLSVerify bool) {
|
|
|
@@ -126,10 +127,14 @@ func RemoveInstalledPlugin(pluginPath, pluginName string) error {
|
|
|
}
|
|
|
|
|
|
func GetPlugin(pluginId, repoUrl string) (m.Plugin, error) {
|
|
|
+ logger.Debugf("getting plugin metadata from: %v pluginId: %v \n", repoUrl, pluginId)
|
|
|
body, err := sendRequest(repoUrl, "repo", pluginId)
|
|
|
|
|
|
if err != nil {
|
|
|
- logger.Info("Failed to send request", "error", err)
|
|
|
+ logger.Info("Failed to send request: ", err)
|
|
|
+ if err == NotFoundError {
|
|
|
+ return m.Plugin{}, fmt.Errorf("Failed to find requested plugin, check if the plugin_id is correct. error: %v", err)
|
|
|
+ }
|
|
|
return m.Plugin{}, fmt.Errorf("Failed to send request. error: %v", err)
|
|
|
}
|
|
|
|
|
|
@@ -169,6 +174,9 @@ func sendRequest(repoUrl string, subPaths ...string) ([]byte, error) {
|
|
|
return []byte{}, err
|
|
|
}
|
|
|
|
|
|
+ if res.StatusCode == 404 {
|
|
|
+ return []byte{}, NotFoundError
|
|
|
+ }
|
|
|
if res.StatusCode/100 != 2 {
|
|
|
return []byte{}, fmt.Errorf("Api returned invalid status: %s", res.Status)
|
|
|
}
|