7 "github.com/docker/docker/integration-cli/checker"
8 "github.com/docker/docker/integration-cli/cli"
9 icmd "github.com/docker/docker/pkg/testutil/cmd"
10 "github.com/go-check/check"
13 func (s *DockerSuite) TestUpdateRestartPolicy(c *check.C) {
14 out := cli.DockerCmd(c, "run", "-d", "--restart=on-failure:3", "busybox", "sh", "-c", "sleep 1 && false").Combined()
15 timeout := 60 * time.Second
16 if testEnv.DaemonPlatform() == "windows" {
17 timeout = 180 * time.Second
20 id := strings.TrimSpace(string(out))
22 // update restart policy to on-failure:5
23 cli.DockerCmd(c, "update", "--restart=on-failure:5", id)
25 cli.WaitExited(c, id, timeout)
27 count := inspectField(c, id, "RestartCount")
28 c.Assert(count, checker.Equals, "5")
30 maximumRetryCount := inspectField(c, id, "HostConfig.RestartPolicy.MaximumRetryCount")
31 c.Assert(maximumRetryCount, checker.Equals, "5")
34 func (s *DockerSuite) TestUpdateRestartWithAutoRemoveFlag(c *check.C) {
35 out := runSleepingContainer(c, "--rm")
36 id := strings.TrimSpace(out)
38 // update restart policy for an AutoRemove container
39 cli.Docker(cli.Args("update", "--restart=always", id)).Assert(c, icmd.Expected{
41 Err: "Restart policy cannot be updated because AutoRemove is enabled for the container",