Browse Source

etcdserver/etcdhttp: use container for admin/members endpoint

Jonathan Boulle 11 years ago
parent
commit
9b679de9dd
2 changed files with 12 additions and 2 deletions
  1. 5 1
      etcdserver/etcdhttp/http.go
  2. 7 1
      etcdserver/etcdhttp/http_test.go

+ 5 - 1
etcdserver/etcdhttp/http.go

@@ -163,7 +163,11 @@ func (h serverHandler) serveAdminMembers(w http.ResponseWriter, r *http.Request)
 	case "GET":
 		idStr := strings.TrimPrefix(r.URL.Path, adminMembersPrefix)
 		if idStr == "" {
-			ms := h.clusterInfo.Members()
+			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)

+ 7 - 1
etcdserver/etcdhttp/http_test.go

@@ -1627,7 +1627,13 @@ func TestServeAdminMembers(t *testing.T) {
 		clusterInfo: cluster,
 	}
 
-	msb, err := json.Marshal([]etcdserver.Member{memb1, memb2})
+	msb, err := json.Marshal(
+		struct {
+			Members []etcdserver.Member
+		}{
+			Members: []etcdserver.Member{memb1, memb2},
+		},
+	)
 	if err != nil {
 		t.Fatal(err)
 	}