Merge pull request #1531 from jonboulle/410_gone

return 410 Gone for member that has been removed in /v2/members -XDELETE
This commit is contained in:
Jonathan Boulle 2014-11-04 11:54:01 -08:00
commit 915f8f4822
2 changed files with 14 additions and 0 deletions

View File

@ -211,6 +211,8 @@ func (h *membersHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
err = h.server.RemoveMember(ctx, uint64(id))
switch {
case err == etcdserver.ErrIDRemoved:
writeError(w, httptypes.NewHTTPError(http.StatusGone, fmt.Sprintf("Member permanently removed: %s", idStr)))
case err == etcdserver.ErrIDNotFound:
writeError(w, httptypes.NewHTTPError(http.StatusNotFound, fmt.Sprintf("No such member: %s", idStr)))
case err != nil:

View File

@ -785,6 +785,18 @@ func TestServeMembersFail(t *testing.T) {
http.StatusInternalServerError,
},
{
// etcdserver.RemoveMember error with preivously removed ID
&http.Request{
URL: mustNewURL(t, path.Join(membersPrefix, "0")),
Method: "DELETE",
},
&errServer{
etcdserver.ErrIDRemoved,
},
http.StatusGone,
},
{
// etcdserver.RemoveMember error with nonexistent ID
&http.Request{