mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 05:27:21 +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) {
|
func TestTrimURLPath(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
path, expected string
|
path, expected string
|
||||||
|
@ -29,6 +29,7 @@ go_library(
|
|||||||
"//staging/src/k8s.io/component-base/metrics:go_default_library",
|
"//staging/src/k8s.io/component-base/metrics:go_default_library",
|
||||||
"//vendor/github.com/emicklei/go-restful: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/google/cadvisor/info/v1:go_default_library",
|
||||||
|
"//vendor/github.com/pkg/errors:go_default_library",
|
||||||
"//vendor/k8s.io/klog:go_default_library",
|
"//vendor/k8s.io/klog:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -26,6 +26,7 @@ import (
|
|||||||
|
|
||||||
restful "github.com/emicklei/go-restful"
|
restful "github.com/emicklei/go-restful"
|
||||||
cadvisorapi "github.com/google/cadvisor/info/v1"
|
cadvisorapi "github.com/google/cadvisor/info/v1"
|
||||||
|
"github.com/pkg/errors"
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
|
|
||||||
"k8s.io/api/core/v1"
|
"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.
|
// 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) {
|
func (h *handler) handleSummary(request *restful.Request, response *restful.Response) {
|
||||||
onlyCPUAndMemory := false
|
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 &&
|
if onlyCluAndMemoryParam, found := request.Request.Form["only_cpu_and_memory"]; found &&
|
||||||
len(onlyCluAndMemoryParam) == 1 && onlyCluAndMemoryParam[0] == "true" {
|
len(onlyCluAndMemoryParam) == 1 && onlyCluAndMemoryParam[0] == "true" {
|
||||||
onlyCPUAndMemory = true
|
onlyCPUAndMemory = true
|
||||||
}
|
}
|
||||||
var summary *statsapi.Summary
|
var summary *statsapi.Summary
|
||||||
var err error
|
|
||||||
if onlyCPUAndMemory {
|
if onlyCPUAndMemory {
|
||||||
summary, err = h.summaryProvider.GetCPUAndMemoryStats()
|
summary, err = h.summaryProvider.GetCPUAndMemoryStats()
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user