Improve API error handling

Signed-off-by: huanggze <loganhuang@yunify.com>
This commit is contained in:
huanggze 2020-04-02 14:36:37 +08:00
parent aa9238db67
commit 8f87c69651
No known key found for this signature in database
GPG Key ID: F36CB48ECCC75BE2
2 changed files with 6 additions and 6 deletions

View File

@ -905,14 +905,14 @@ func (h *apiClientImpl) Do(ctx context.Context, req *http.Request) (*http.Respon
} }
} }
if apiError(code) != (result.Status == "error") { if apiError(code) && result.Status == "success" {
err = &Error{ err = &Error{
Type: ErrBadResponse, Type: ErrBadResponse,
Msg: "inconsistent body for response code", Msg: "inconsistent body for response code",
} }
} }
if apiError(code) && result.Status == "error" { if result.Status == "error" {
err = &Error{ err = &Error{
Type: result.ErrorType, Type: result.ErrorType,
Msg: result.Error, Msg: result.Error,

View File

@ -1095,8 +1095,8 @@ func TestAPIClientDo(t *testing.T) {
Error: "timed out", Error: "timed out",
}, },
expectedErr: &Error{ expectedErr: &Error{
Type: ErrBadResponse, Type: ErrTimeout,
Msg: "inconsistent body for response code", Msg: "timed out",
}, },
}, },
{ {
@ -1109,8 +1109,8 @@ func TestAPIClientDo(t *testing.T) {
Warnings: []string{"a"}, Warnings: []string{"a"},
}, },
expectedErr: &Error{ expectedErr: &Error{
Type: ErrBadResponse, Type: ErrTimeout,
Msg: "inconsistent body for response code", Msg: "timed out",
}, },
expectedWarnings: []string{"a"}, expectedWarnings: []string{"a"},
}, },