mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #90086 from rvillablanca/fix/handle-error-parseform
Handling error returned by request.Request.ParseForm()
This commit is contained in:
commit
423c17d859
@ -1579,6 +1579,20 @@ func TestDebuggingDisabledHandlers(t *testing.T) {
|
||||
|
||||
}
|
||||
|
||||
func TestFailedParseParamsSummaryHandler(t *testing.T) {
|
||||
fw := newServerTest()
|
||||
defer fw.testHTTPServer.Close()
|
||||
|
||||
resp, err := http.Post(fw.testHTTPServer.URL+"/stats/summary", "invalid/content/type", nil)
|
||||
assert.NoError(t, err)
|
||||
defer resp.Body.Close()
|
||||
v, err := ioutil.ReadAll(resp.Body)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
|
||||
assert.Contains(t, string(v), "parse form failed")
|
||||
|
||||
}
|
||||
|
||||
func TestTrimURLPath(t *testing.T) {
|
||||
tests := []struct {
|
||||
path, expected string
|
||||
|
@ -29,6 +29,7 @@ go_library(
|
||||
"//staging/src/k8s.io/component-base/metrics:go_default_library",
|
||||
"//vendor/github.com/emicklei/go-restful:go_default_library",
|
||||
"//vendor/github.com/google/cadvisor/info/v1:go_default_library",
|
||||
"//vendor/github.com/pkg/errors:go_default_library",
|
||||
"//vendor/k8s.io/klog:go_default_library",
|
||||
],
|
||||
)
|
||||
|
@ -26,6 +26,7 @@ import (
|
||||
|
||||
restful "github.com/emicklei/go-restful"
|
||||
cadvisorapi "github.com/google/cadvisor/info/v1"
|
||||
"github.com/pkg/errors"
|
||||
"k8s.io/klog"
|
||||
|
||||
"k8s.io/api/core/v1"
|
||||
@ -215,13 +216,16 @@ func (h *handler) handleStats(request *restful.Request, response *restful.Respon
|
||||
// If "only_cpu_and_memory" GET param is true then only cpu and memory is returned in response.
|
||||
func (h *handler) handleSummary(request *restful.Request, response *restful.Response) {
|
||||
onlyCPUAndMemory := false
|
||||
request.Request.ParseForm()
|
||||
err := request.Request.ParseForm()
|
||||
if err != nil {
|
||||
handleError(response, "/stats/summary", errors.Wrapf(err, "parse form failed"))
|
||||
return
|
||||
}
|
||||
if onlyCluAndMemoryParam, found := request.Request.Form["only_cpu_and_memory"]; found &&
|
||||
len(onlyCluAndMemoryParam) == 1 && onlyCluAndMemoryParam[0] == "true" {
|
||||
onlyCPUAndMemory = true
|
||||
}
|
||||
var summary *statsapi.Summary
|
||||
var err error
|
||||
if onlyCPUAndMemory {
|
||||
summary, err = h.summaryProvider.GetCPUAndMemoryStats()
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user