Browse Source

etcdhttp: remove /v2/admin/members/x serving

Jonathan Boulle 11 years ago
parent
commit
7ef468b315
2 changed files with 10 additions and 40 deletions
  1. 7 22
      etcdserver/etcdhttp/http.go
  2. 3 18
      etcdserver/etcdhttp/http_test.go

+ 7 - 22
etcdserver/etcdhttp/http.go

@@ -161,34 +161,19 @@ func (h serverHandler) serveAdminMembers(w http.ResponseWriter, r *http.Request)
 
 	switch r.Method {
 	case "GET":
-		idStr := strings.TrimPrefix(r.URL.Path, adminMembersPrefix)
-		if idStr == "" {
-			ms := struct {
-				Members []*etcdserver.Member
-			}{
-				Members: h.clusterInfo.Members(),
-			}
-			w.Header().Set("Content-Type", "application/json")
-			if err := json.NewEncoder(w).Encode(ms); err != nil {
-				log.Printf("etcdhttp: %v", err)
-			}
+		if s := strings.TrimPrefix(r.URL.Path, adminMembersPrefix); s != "" {
+			http.NotFound(w, r)
 			return
 		}
-		id, err := strconv.ParseUint(idStr, 16, 64)
-		if err != nil {
-			http.Error(w, err.Error(), http.StatusBadRequest)
-			return
-		}
-		m := h.clusterInfo.Member(id)
-		if m == nil {
-			http.Error(w, "member not found", http.StatusNotFound)
-			return
+		ms := struct {
+			Members []*etcdserver.Member
+		}{
+			Members: h.clusterInfo.Members(),
 		}
 		w.Header().Set("Content-Type", "application/json")
-		if err := json.NewEncoder(w).Encode(m); err != nil {
+		if err := json.NewEncoder(w).Encode(ms); err != nil {
 			log.Printf("etcdhttp: %v", err)
 		}
-		return
 	case "POST":
 		ctype := r.Header.Get("Content-Type")
 		if ctype != "application/json" {

+ 3 - 18
etcdserver/etcdhttp/http_test.go

@@ -1563,16 +1563,6 @@ func TestServeAdminMembersFail(t *testing.T) {
 
 			http.StatusInternalServerError,
 		},
-		{
-			// etcdserver.GetMember bad id
-			&http.Request{
-				URL:    mustNewURL(t, path.Join(adminMembersPrefix, "badid")),
-				Method: "GET",
-			},
-			&errServer{},
-
-			http.StatusBadRequest,
-		},
 	}
 	for i, tt := range tests {
 		h := &serverHandler{
@@ -1638,11 +1628,6 @@ func TestServeAdminMembers(t *testing.T) {
 		t.Fatal(err)
 	}
 	wms := string(msb) + "\n"
-	mb, err := json.Marshal(memb1)
-	if err != nil {
-		t.Fatal(err)
-	}
-	wm := string(mb) + "\n"
 
 	tests := []struct {
 		path  string
@@ -1651,8 +1636,8 @@ func TestServeAdminMembers(t *testing.T) {
 		wbody string
 	}{
 		{adminMembersPrefix, http.StatusOK, "application/json", wms},
-		{path.Join(adminMembersPrefix, "1"), http.StatusOK, "application/json", wm},
-		{path.Join(adminMembersPrefix, "100"), http.StatusNotFound, "text/plain; charset=utf-8", "member not found\n"},
+		{path.Join(adminMembersPrefix, "100"), http.StatusNotFound, "text/plain; charset=utf-8", "404 page not found\n"},
+		{path.Join(adminMembersPrefix, "foobar"), http.StatusNotFound, "text/plain; charset=utf-8", "404 page not found\n"},
 	}
 
 	for i, tt := range tests {
@@ -1670,7 +1655,7 @@ func TestServeAdminMembers(t *testing.T) {
 			t.Errorf("#%d: content-type = %s, want %s", i, gct, tt.wct)
 		}
 		if rw.Body.String() != tt.wbody {
-			t.Errorf("#%d: body = %s, want %s", i, rw.Body.String(), tt.wbody)
+			t.Errorf("#%d: body = %q, want %q", i, rw.Body.String(), tt.wbody)
 		}
 	}
 }