Commit 61a9296b authored by Michelle Noorali's avatar Michelle Noorali

Merge pull request #487 from michelleN/error-handling

ref(client): return cleaner errors
parents cbe756cb af01eeb6
...@@ -83,7 +83,6 @@ func addRepo(c *cli.Context) error { ...@@ -83,7 +83,6 @@ func addRepo(c *cli.Context) error {
payload, _ := json.Marshal(repo.Repo{URL: repoURL, Name: name}) payload, _ := json.Marshal(repo.Repo{URL: repoURL, Name: name})
msg := "" msg := ""
if _, err := NewClient(c).Post(chartRepoPath, payload, &msg); err != nil { if _, err := NewClient(c).Post(chartRepoPath, payload, &msg); err != nil {
//TODO: Return more specific errors to the user
return err return err
} }
format.Info(name + " has been added to your chart repositories!") format.Info(name + " has been added to your chart repositories!")
......
...@@ -27,6 +27,7 @@ import ( ...@@ -27,6 +27,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/kubernetes/helm/pkg/httputil"
"github.com/kubernetes/helm/pkg/version" "github.com/kubernetes/helm/pkg/version"
) )
...@@ -221,8 +222,20 @@ func (r *Response) Success() bool { ...@@ -221,8 +222,20 @@ func (r *Response) Success() bool {
// HTTPError creates a new HTTPError from response // HTTPError creates a new HTTPError from response
func (r *Response) HTTPError() error { func (r *Response) HTTPError() error {
contentType := r.Header.Get("Content-Type")
defer r.Body.Close() defer r.Body.Close()
body, err := ioutil.ReadAll(r.Body) body, err := ioutil.ReadAll(r.Body)
if contentType == "application/json" {
httpErr := httputil.Error{}
json.Unmarshal(body, &httpErr)
return &HTTPError{
StatusCode: r.StatusCode,
Message: httpErr.Msg,
URL: r.Request.URL,
}
} else {
if err != nil { if err != nil {
return err return err
} }
...@@ -231,6 +244,9 @@ func (r *Response) HTTPError() error { ...@@ -231,6 +244,9 @@ func (r *Response) HTTPError() error {
Message: string(body), Message: string(body),
URL: r.Request.URL, URL: r.Request.URL,
} }
}
return nil
} }
// HTTPError is an error caused by an unexpected HTTP status code. // HTTPError is an error caused by an unexpected HTTP status code.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment