MCPcopy Create free account
hub / github.com/ContainerSSH/ContainerSSH / pullNeeded

Method pullNeeded

internal/docker/handler_network.go:119–142  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

117}
118
119func (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
144func (n *networkHandler) pullImage(ctx context.Context) (err error) {
145 pullNeeded, err := n.pullNeeded(ctx)

Callers 1

pullImageMethod · 0.95

Calls 3

NewMessageFunction · 0.92
DebugMethod · 0.65
hasImageMethod · 0.65

Tested by

no test coverage detected