mirror of
				https://github.com/containers/podman.git
				synced 2025-10-31 10:00:01 +08:00 
			
		
		
		
	 eb28a1c084
			
		
	
	eb28a1c084
	
	
	
		
			
			also includes bumps for c/storage and c/image Signed-off-by: Paul Holzinger <pholzing@redhat.com>
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package docker
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| 	"fmt"
 | |
| 	"net/http"
 | |
| )
 | |
| 
 | |
| // RestartPolicy represents the policy for automatically restarting a container.
 | |
| //
 | |
| // Possible values are:
 | |
| //
 | |
| //   - always: the docker daemon will always restart the container
 | |
| //   - on-failure: the docker daemon will restart the container on failures, at
 | |
| //     most MaximumRetryCount times
 | |
| //   - unless-stopped: the docker daemon will always restart the container except
 | |
| //     when user has manually stopped the container
 | |
| //   - no: the docker daemon will not restart the container automatically
 | |
| type RestartPolicy struct {
 | |
| 	Name              string `json:"Name,omitempty" yaml:"Name,omitempty" toml:"Name,omitempty"`
 | |
| 	MaximumRetryCount int    `json:"MaximumRetryCount,omitempty" yaml:"MaximumRetryCount,omitempty" toml:"MaximumRetryCount,omitempty"`
 | |
| }
 | |
| 
 | |
| // AlwaysRestart returns a restart policy that tells the Docker daemon to
 | |
| // always restart the container.
 | |
| func AlwaysRestart() RestartPolicy {
 | |
| 	return RestartPolicy{Name: "always"}
 | |
| }
 | |
| 
 | |
| // RestartOnFailure returns a restart policy that tells the Docker daemon to
 | |
| // restart the container on failures, trying at most maxRetry times.
 | |
| func RestartOnFailure(maxRetry int) RestartPolicy {
 | |
| 	return RestartPolicy{Name: "on-failure", MaximumRetryCount: maxRetry}
 | |
| }
 | |
| 
 | |
| // RestartUnlessStopped returns a restart policy that tells the Docker daemon to
 | |
| // always restart the container except when user has manually stopped the container.
 | |
| func RestartUnlessStopped() RestartPolicy {
 | |
| 	return RestartPolicy{Name: "unless-stopped"}
 | |
| }
 | |
| 
 | |
| // NeverRestart returns a restart policy that tells the Docker daemon to never
 | |
| // restart the container on failures.
 | |
| func NeverRestart() RestartPolicy {
 | |
| 	return RestartPolicy{Name: "no"}
 | |
| }
 | |
| 
 | |
| // RestartContainer stops a container, killing it after the given timeout (in
 | |
| // seconds), during the stop process.
 | |
| //
 | |
| // See https://goo.gl/MrAKQ5 for more details.
 | |
| func (c *Client) RestartContainer(id string, timeout uint) error {
 | |
| 	path := fmt.Sprintf("/containers/%s/restart?t=%d", id, timeout)
 | |
| 	resp, err := c.do(http.MethodPost, path, doOptions{})
 | |
| 	if err != nil {
 | |
| 		var e *Error
 | |
| 		if errors.As(err, &e) && e.Status == http.StatusNotFound {
 | |
| 			return &NoSuchContainer{ID: id}
 | |
| 		}
 | |
| 		return err
 | |
| 	}
 | |
| 	resp.Body.Close()
 | |
| 	return nil
 | |
| }
 |