mirror of https://github.com/k3s-io/k3s
/api/v1beta1/operations was returning Not Found
Splitting an empty string returns []string{""}, not []string{}pull/6/head
parent
2282f9ce3a
commit
75aa364b3c
|
@ -42,6 +42,9 @@ func (s *APIServer) handleOperation(w http.ResponseWriter, req *http.Request) {
|
|||
}
|
||||
trimmed := strings.TrimLeft(req.URL.Path[len(opPrefix):], "/")
|
||||
parts := strings.Split(trimmed, "/")
|
||||
if trimmed == "" {
|
||||
parts = []string{}
|
||||
}
|
||||
if len(parts) > 1 {
|
||||
notFound(w, req)
|
||||
return
|
||||
|
|
|
@ -18,6 +18,7 @@ package apiserver
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"sync/atomic"
|
||||
|
@ -90,6 +91,44 @@ func TestOperation(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestOperationsList(t *testing.T) {
|
||||
simpleStorage := &SimpleRESTStorage{}
|
||||
handler := New(map[string]RESTStorage{
|
||||
"foo": simpleStorage,
|
||||
}, "/prefix/version")
|
||||
handler.asyncOpWait = 0
|
||||
server := httptest.NewServer(handler)
|
||||
client := http.Client{}
|
||||
|
||||
simple := Simple{
|
||||
Name: "foo",
|
||||
}
|
||||
data, err := api.Encode(simple)
|
||||
expectNoError(t, err)
|
||||
response, err := client.Post(server.URL+"/prefix/version/foo", "application/json", bytes.NewBuffer(data))
|
||||
expectNoError(t, err)
|
||||
if response.StatusCode != http.StatusAccepted {
|
||||
t.Errorf("Unexpected response %#v", response)
|
||||
}
|
||||
|
||||
response, err = client.Get(server.URL + "/prefix/version/operations")
|
||||
expectNoError(t, err)
|
||||
if response.StatusCode != http.StatusOK {
|
||||
t.Fatalf("unexpected status code %#v", response)
|
||||
}
|
||||
body, err := ioutil.ReadAll(response.Body)
|
||||
expectNoError(t, err)
|
||||
obj, err := api.Decode(body)
|
||||
expectNoError(t, err)
|
||||
oplist, ok := obj.(*api.ServerOpList)
|
||||
if !ok {
|
||||
t.Fatalf("expected ServerOpList, got %#v", obj)
|
||||
}
|
||||
if len(oplist.Items) != 1 {
|
||||
t.Errorf("expected 1 operation, got %#v", obj)
|
||||
}
|
||||
}
|
||||
|
||||
func TestOpGet(t *testing.T) {
|
||||
simpleStorage := &SimpleRESTStorage{}
|
||||
handler := New(map[string]RESTStorage{
|
||||
|
|
Loading…
Reference in New Issue