diff --git a/pkg/apiserver/errors.go b/pkg/apiserver/errors.go index 027c9fcd194..e234f0472a2 100644 --- a/pkg/apiserver/errors.go +++ b/pkg/apiserver/errors.go @@ -36,17 +36,13 @@ func errToAPIStatus(err error) *api.Status { case statusError: status := t.Status() if len(status.Status) == 0 { - } - switch status.Status { - case api.StatusSuccess: - if status.Code == 0 { - status.Code = http.StatusOK - } - case "": status.Status = api.StatusFailure - fallthrough - case api.StatusFailure: - if status.Code == 0 { + } + if status.Code == 0 { + switch status.Status { + case api.StatusSuccess: + status.Code = http.StatusOK + case api.StatusFailure: status.Code = http.StatusInternalServerError } } diff --git a/pkg/apiserver/errors_test.go b/pkg/apiserver/errors_test.go index 9f839d70734..7a20759ff28 100644 --- a/pkg/apiserver/errors_test.go +++ b/pkg/apiserver/errors_test.go @@ -26,16 +26,18 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors" ) -func Test_errToAPIStatus(t *testing.T) { - err := errors.NewNotFound("foo", "bar") - status := errToAPIStatus(err) - if status.Reason != api.StatusReasonNotFound || status.Status != api.StatusFailure { - t.Errorf("unexpected status object: %#v", status) - } -} - func TestErrorsToAPIStatus(t *testing.T) { cases := map[error]api.Status{ + errors.NewNotFound("foo", "bar"): { + Status: api.StatusFailure, + Code: http.StatusNotFound, + Reason: api.StatusReasonNotFound, + Message: "foo \"bar\" not found", + Details: &api.StatusDetails{ + Kind: "foo", + ID: "bar", + }, + }, errors.NewAlreadyExists("foo", "bar"): { Status: api.StatusFailure, Code: http.StatusConflict,