mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #13277 from runcom/restartpolicy-methods
RestartPolicy methods instead of strings checking
This commit is contained in:
commit
3b69ca5b97
4 changed files with 18 additions and 6 deletions
|
@ -122,7 +122,7 @@ func (cli *DockerCli) CmdRun(args ...string) error {
|
|||
fmt.Fprintf(cli.out, "%s\n", createResponse.ID)
|
||||
}()
|
||||
}
|
||||
if *flAutoRemove && (hostConfig.RestartPolicy.Name == "always" || hostConfig.RestartPolicy.Name == "on-failure") {
|
||||
if *flAutoRemove && (hostConfig.RestartPolicy.IsAlways() || hostConfig.RestartPolicy.IsOnFailure()) {
|
||||
return ErrConflictRestartPolicyAndAutoRemove
|
||||
}
|
||||
// We need to instantiate the chan because the select needs it. It can
|
||||
|
|
|
@ -325,8 +325,8 @@ func (daemon *Daemon) restore() error {
|
|||
logrus.Debug("Restarting containers...")
|
||||
|
||||
for _, container := range registeredContainers {
|
||||
if container.hostConfig.RestartPolicy.Name == "always" ||
|
||||
(container.hostConfig.RestartPolicy.Name == "on-failure" && container.ExitCode != 0) {
|
||||
if container.hostConfig.RestartPolicy.IsAlways() ||
|
||||
(container.hostConfig.RestartPolicy.IsOnFailure() && container.ExitCode != 0) {
|
||||
logrus.Debugf("Starting container %s", container.ID)
|
||||
|
||||
if err := container.Start(); err != nil {
|
||||
|
|
|
@ -223,10 +223,10 @@ func (m *containerMonitor) shouldRestart(exitCode int) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
switch m.restartPolicy.Name {
|
||||
case "always":
|
||||
switch {
|
||||
case m.restartPolicy.IsAlways():
|
||||
return true
|
||||
case "on-failure":
|
||||
case m.restartPolicy.IsOnFailure():
|
||||
// the default value of 0 for MaximumRetryCount means that we will not enforce a maximum count
|
||||
if max := m.restartPolicy.MaximumRetryCount; max != 0 && m.failureCount > max {
|
||||
logrus.Debugf("stopping restart of container %s because maximum failure could of %d has been reached",
|
||||
|
|
|
@ -129,6 +129,18 @@ type RestartPolicy struct {
|
|||
MaximumRetryCount int
|
||||
}
|
||||
|
||||
func (rp *RestartPolicy) IsNone() bool {
|
||||
return rp.Name == "no"
|
||||
}
|
||||
|
||||
func (rp *RestartPolicy) IsAlways() bool {
|
||||
return rp.Name == "always"
|
||||
}
|
||||
|
||||
func (rp *RestartPolicy) IsOnFailure() bool {
|
||||
return rp.Name == "on-failure"
|
||||
}
|
||||
|
||||
type LogConfig struct {
|
||||
Type string
|
||||
Config map[string]string
|
||||
|
|
Loading…
Reference in a new issue