1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Update docs and test of exec create api return codes

Fixes issue #18054

Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
This commit is contained in:
Wen Cheng Ma 2015-11-19 13:51:26 +08:00
parent c32f8bb36a
commit 01b86d612c
4 changed files with 22 additions and 3 deletions

View file

@ -108,7 +108,7 @@ func (d *Daemon) getExecConfig(name string) (*ExecConfig, error) {
ec := d.execCommands.Get(name)
// If the exec is found but its container is not in the daemon's list of
// containers then it must have been delete, in which case instead of
// containers then it must have been deleted, in which case instead of
// saying the container isn't running, we should return a 404 so that
// the user sees the same error now that they will after the
// 5 minute clean-up loop is run which erases old/dead execs.

View file

@ -2256,6 +2256,8 @@ Status Codes:
- **201** no error
- **404** no such container
- **409** - container is paused
- **500** - server error
### Exec Start
@ -2291,7 +2293,7 @@ Status Codes:
- **200** no error
- **404** no such exec instance
- **409** - container is stopped or paused
- **409** - container is paused
**Stream details**:
Similar to the stream behavior of `POST /container/(id)/attach` API

View file

@ -2263,6 +2263,8 @@ Status Codes:
- **201** no error
- **404** no such container
- **409** - container is paused
- **500** - server error
### Exec Start
@ -2298,7 +2300,7 @@ Status Codes:
- **200** no error
- **404** no such exec instance
- **409** - container is stopped or paused
- **409** - container is paused
**Stream details**:
Similar to the stream behavior of `POST /container/(id)/attach` API

View file

@ -49,6 +49,21 @@ func (s *DockerSuite) TestExecApiCreateNoValidContentType(c *check.C) {
}
}
func (s *DockerSuite) TestExecApiCreateContainerPaused(c *check.C) {
testRequires(c, DaemonIsLinux)
name := "exec_create_test"
dockerCmd(c, "run", "-d", "-t", "--name", name, "busybox", "/bin/sh")
dockerCmd(c, "pause", name)
status, body, err := sockRequest("POST", fmt.Sprintf("/containers/%s/exec", name), map[string]interface{}{"Cmd": []string{"true"}})
c.Assert(err, check.IsNil)
c.Assert(status, check.Equals, http.StatusConflict)
if !bytes.Contains(body, []byte("Container "+name+" is paused, unpause the container before exec")) {
c.Fatalf("Expected message when creating exec command with Container %s is paused", name)
}
}
func (s *DockerSuite) TestExecAPIStart(c *check.C) {
dockerCmd(c, "run", "-d", "--name", "test", "busybox", "top")