From 9aefb91531f366e478dd4d8218af818ce9a733ce Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Thu, 30 Oct 2014 19:50:33 -0700 Subject: [PATCH] etcdhttp: always respond json-format error to client --- etcdserver/etcdhttp/client_test.go | 4 ++-- etcdserver/etcdhttp/http.go | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/etcdserver/etcdhttp/client_test.go b/etcdserver/etcdhttp/client_test.go index a5abc7403..94cf601e6 100644 --- a/etcdserver/etcdhttp/client_test.go +++ b/etcdserver/etcdhttp/client_test.go @@ -1124,7 +1124,7 @@ func TestBadServeKeys(t *testing.T) { }, http.StatusInternalServerError, - "Internal Server Error", + `{"message":"Internal Server Error"}`, }, { // etcdserver.Server etcd error @@ -1144,7 +1144,7 @@ func TestBadServeKeys(t *testing.T) { }, http.StatusInternalServerError, - "Internal Server Error", + `{"message":"Internal Server Error"}`, }, } for i, tt := range testBadCases { diff --git a/etcdserver/etcdhttp/http.go b/etcdserver/etcdhttp/http.go index 1ec48b7be..20d4404e3 100644 --- a/etcdserver/etcdhttp/http.go +++ b/etcdserver/etcdhttp/http.go @@ -51,7 +51,8 @@ func writeError(w http.ResponseWriter, err error) { e.WriteTo(w) default: log.Printf("etcdhttp: unexpected error: %v", err) - http.Error(w, "Internal Server Error", http.StatusInternalServerError) + herr := httptypes.NewHTTPError(http.StatusInternalServerError, "Internal Server Error") + herr.WriteTo(w) } }