Restapi for stop fails if ?t=int not present

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
This commit is contained in:
Srini Brahmaroutu 2015-04-27 18:55:11 +00:00
parent a1aff84480
commit 68e9c07850
2 changed files with 20 additions and 4 deletions

View File

@ -1040,10 +1040,7 @@ func (s *Server) postContainersStop(version version.Version, w http.ResponseWrit
return fmt.Errorf("Missing parameter")
}
seconds, err := strconv.Atoi(r.Form.Get("t"))
if err != nil {
return err
}
seconds, _ := strconv.Atoi(r.Form.Get("t"))
if err := s.daemon.ContainerStop(vars["name"], seconds); err != nil {
if err.Error() == "Container already stopped" {

View File

@ -1202,3 +1202,22 @@ func (s *DockerSuite) TestContainersApiChunkedEncoding(c *check.C) {
c.Fatalf("got incorrect bind spec, wanted %s, got: %s", expected, binds[0])
}
}
func (s *DockerSuite) TestPostContainerStop(c *check.C) {
runCmd := exec.Command(dockerBinary, "run", "-d", "busybox", "top")
out, _, err := runCommandWithOutput(runCmd)
c.Assert(err, check.IsNil)
containerID := strings.TrimSpace(out)
c.Assert(waitRun(containerID), check.IsNil)
statusCode, _, err := sockRequest("POST", "/containers/"+containerID+"/stop", nil)
// 204 No Content is expected, not 200
c.Assert(statusCode, check.Equals, http.StatusNoContent)
c.Assert(err, check.IsNil)
if err := waitInspect(containerID, "{{ .State.Running }}", "false", 5); err != nil {
c.Fatal(err)
}
}