mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
http: allow GET, HEAD for /v2/machines
This commit is contained in:
parent
0c1d1b7aeb
commit
4087fa5c7a
@ -203,6 +203,10 @@ func (h Handler) serveKeys(ctx context.Context, w http.ResponseWriter, r *http.R
|
|||||||
// serveMachines responds address list in the format '0.0.0.0, 1.1.1.1'.
|
// serveMachines responds address list in the format '0.0.0.0, 1.1.1.1'.
|
||||||
// TODO: rethink the format of machine list because it is not json format.
|
// TODO: rethink the format of machine list because it is not json format.
|
||||||
func (h Handler) serveMachines(w http.ResponseWriter, r *http.Request) {
|
func (h Handler) serveMachines(w http.ResponseWriter, r *http.Request) {
|
||||||
|
if r.Method != "GET" && r.Method != "HEAD" {
|
||||||
|
w.WriteHeader(http.StatusMethodNotAllowed)
|
||||||
|
return
|
||||||
|
}
|
||||||
urls := make([]string, 0)
|
urls := make([]string, 0)
|
||||||
for _, addrs := range h.Peers {
|
for _, addrs := range h.Peers {
|
||||||
for _, addr := range addrs {
|
for _, addr := range addrs {
|
||||||
|
@ -349,18 +349,29 @@ func TestWaitForEventCancelledContext(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestV2MachinesEndpoint(t *testing.T) {
|
func TestV2MachinesEndpoint(t *testing.T) {
|
||||||
h := Handler{Peers: Peers{}}
|
tests := []struct {
|
||||||
|
method string
|
||||||
|
wcode int
|
||||||
|
}{
|
||||||
|
{"GET", http.StatusOK},
|
||||||
|
{"HEAD", http.StatusOK},
|
||||||
|
{"POST", http.StatusMethodNotAllowed},
|
||||||
|
}
|
||||||
|
|
||||||
|
h := Handler{Peers: Peers{}}
|
||||||
s := httptest.NewServer(h)
|
s := httptest.NewServer(h)
|
||||||
defer s.Close()
|
defer s.Close()
|
||||||
|
|
||||||
resp, err := http.Get(s.URL + machinesPrefix)
|
for _, tt := range tests {
|
||||||
if err != nil {
|
req, _ := http.NewRequest(tt.method, s.URL + machinesPrefix, nil)
|
||||||
t.Fatal(err)
|
resp, err := http.DefaultClient.Do(req)
|
||||||
}
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
if resp.StatusCode != http.StatusOK {
|
if resp.StatusCode != tt.wcode {
|
||||||
t.Errorf("StatusCode = %d, expected %d", resp.StatusCode, http.StatusOK)
|
t.Errorf("StatusCode = %d, expected %d", resp.StatusCode, tt.wcode)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -370,7 +381,8 @@ func TestServeMachines(t *testing.T) {
|
|||||||
h := Handler{Peers: peers}
|
h := Handler{Peers: peers}
|
||||||
|
|
||||||
writer := httptest.NewRecorder()
|
writer := httptest.NewRecorder()
|
||||||
h.serveMachines(writer, nil)
|
req, _ := http.NewRequest("GET", "", nil)
|
||||||
|
h.serveMachines(writer, req)
|
||||||
w := "http://localhost:8080, http://localhost:8081, http://localhost:8082"
|
w := "http://localhost:8080, http://localhost:8081, http://localhost:8082"
|
||||||
if g := writer.Body.String(); g != w {
|
if g := writer.Body.String(); g != w {
|
||||||
t.Errorf("data = %s, want %s", g, w)
|
t.Errorf("data = %s, want %s", g, w)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user