(ctx context.Context)
| 117 | } |
| 118 | |
| 119 | func (n *networkHandler) pullNeeded(ctx context.Context) (bool, error) { |
| 120 | n.logger.Debug(message.NewMessage(message.MDockerImagePullNeeded, "Checking if an image pull is needed...")) |
| 121 | switch n.config.Execution.ImagePullPolicy { |
| 122 | case config.ImagePullPolicyNever: |
| 123 | n.logger.Debug(message.NewMessage(message.MDockerImagePullNeeded, "Image pull policy is \"Never\", not pulling image.")) |
| 124 | return false, nil |
| 125 | case config.ImagePullPolicyAlways: |
| 126 | n.logger.Debug(message.NewMessage(message.MDockerImagePullNeeded, "Image pull policy is \"Always\", pulling image.")) |
| 127 | return true, nil |
| 128 | } |
| 129 | |
| 130 | hasImage, err := n.dockerClient.hasImage(ctx) |
| 131 | if err != nil { |
| 132 | n.logger.Debug(message.NewMessage(message.MDockerImagePullNeeded, "Failed to determine if image is present locally, pulling image.")) |
| 133 | return true, err |
| 134 | } |
| 135 | if hasImage { |
| 136 | n.logger.Debug(message.NewMessage(message.MDockerImagePullNeeded, "Image pull policy is \"IfNotPresent\", image present locally, not pulling image.")) |
| 137 | } else { |
| 138 | n.logger.Debug(message.NewMessage(message.MDockerImagePullNeeded, "Image pull policy is \"IfNotPresent\", image not present locally, pulling image.")) |
| 139 | } |
| 140 | |
| 141 | return !hasImage, nil |
| 142 | } |
| 143 | |
| 144 | func (n *networkHandler) pullImage(ctx context.Context) (err error) { |
| 145 | pullNeeded, err := n.pullNeeded(ctx) |
no test coverage detected