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))
|
err = h.server.RemoveMember(ctx, uint64(id))
|
||||||
switch {
|
switch {
|
||||||
|
case err == etcdserver.ErrIDRemoved:
|
||||||
|
writeError(w, httptypes.NewHTTPError(http.StatusGone, fmt.Sprintf("Member permanently removed: %s", idStr)))
|
||||||
case err == etcdserver.ErrIDNotFound:
|
case err == etcdserver.ErrIDNotFound:
|
||||||
writeError(w, httptypes.NewHTTPError(http.StatusNotFound, fmt.Sprintf("No such member: %s", idStr)))
|
writeError(w, httptypes.NewHTTPError(http.StatusNotFound, fmt.Sprintf("No such member: %s", idStr)))
|
||||||
case err != nil:
|
case err != nil:
|
||||||
|
@ -785,6 +785,18 @@ func TestServeMembersFail(t *testing.T) {
|
|||||||
|
|
||||||
http.StatusInternalServerError,
|
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
|
// etcdserver.RemoveMember error with nonexistent ID
|
||||||
&http.Request{
|
&http.Request{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user