From 3341f3a3554524f0f5e6114dfa0ed988713803ef Mon Sep 17 00:00:00 2001 From: Antonio Murdaca Date: Mon, 13 Apr 2015 08:36:04 +0200 Subject: [PATCH] fix api server resize&execResize Signed-off-by: Antonio Murdaca --- api/server/server.go | 21 ++++++---------- .../docker_api_exec_resize_test.go | 25 +++++++++++++++++++ integration-cli/docker_api_resize_test.go | 18 +++++++++++++ 3 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 integration-cli/docker_api_exec_resize_test.go diff --git a/api/server/server.go b/api/server/server.go index d1f9b18946..d7a57be301 100644 --- a/api/server/server.go +++ b/api/server/server.go @@ -1036,11 +1036,11 @@ func postContainersResize(eng *engine.Engine, version version.Version, w http.Re height, err := strconv.Atoi(r.Form.Get("h")) if err != nil { - return nil + return err } width, err := strconv.Atoi(r.Form.Get("w")) if err != nil { - return nil + return err } d := getDaemon(eng) @@ -1049,11 +1049,7 @@ func postContainersResize(eng *engine.Engine, version version.Version, w http.Re return err } - if err := cont.Resize(height, width); err != nil { - return err - } - - return nil + return cont.Resize(height, width) } func postContainersAttach(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error { @@ -1416,19 +1412,16 @@ func postContainerExecResize(eng *engine.Engine, version version.Version, w http height, err := strconv.Atoi(r.Form.Get("h")) if err != nil { - return nil + return err } width, err := strconv.Atoi(r.Form.Get("w")) if err != nil { - return nil - } - - d := getDaemon(eng) - if err := d.ContainerExecResize(vars["name"], height, width); err != nil { return err } - return nil + d := getDaemon(eng) + + return d.ContainerExecResize(vars["name"], height, width) } func optionsHandler(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error { diff --git a/integration-cli/docker_api_exec_resize_test.go b/integration-cli/docker_api_exec_resize_test.go new file mode 100644 index 0000000000..4108e74dce --- /dev/null +++ b/integration-cli/docker_api_exec_resize_test.go @@ -0,0 +1,25 @@ +package main + +import ( + "os/exec" + "strings" + "testing" +) + +func TestExecResizeApiHeightWidthNoInt(t *testing.T) { + runCmd := exec.Command(dockerBinary, "run", "-d", "busybox", "top") + out, _, err := runCommandWithOutput(runCmd) + if err != nil { + t.Fatalf(out, err) + } + defer deleteAllContainers() + cleanedContainerID := strings.TrimSpace(out) + + endpoint := "/exec/" + cleanedContainerID + "/resize?h=foo&w=bar" + _, err = sockRequest("POST", endpoint, nil) + if err == nil { + t.Fatal("Expected exec resize Request to fail") + } + + logDone("container exec resize - height, width no int fail") +} diff --git a/integration-cli/docker_api_resize_test.go b/integration-cli/docker_api_resize_test.go index be36be8c1d..bf8beb7910 100644 --- a/integration-cli/docker_api_resize_test.go +++ b/integration-cli/docker_api_resize_test.go @@ -24,6 +24,24 @@ func TestResizeApiResponse(t *testing.T) { logDone("container resize - when started") } +func TestResizeApiHeightWidthNoInt(t *testing.T) { + runCmd := exec.Command(dockerBinary, "run", "-d", "busybox", "top") + out, _, err := runCommandWithOutput(runCmd) + if err != nil { + t.Fatalf(out, err) + } + defer deleteAllContainers() + cleanedContainerID := strings.TrimSpace(out) + + endpoint := "/containers/" + cleanedContainerID + "/resize?h=foo&w=bar" + _, err = sockRequest("POST", endpoint, nil) + if err == nil { + t.Fatal("Expected resize Request to fail") + } + + logDone("container resize - height, width no int fail") +} + func TestResizeApiResponseWhenContainerNotStarted(t *testing.T) { runCmd := exec.Command(dockerBinary, "run", "-d", "busybox", "true") out, _, err := runCommandWithOutput(runCmd)