mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
etchttp: return 410 gone for permanently removed members
This commit is contained in:
parent
ac49e1d50f
commit
cedcc0d8df
@ -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:
|
||||
|
@ -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{
|
||||
|
Loading…
x
Reference in New Issue
Block a user