private boolean imageRequiresPull(boolean hasImage, ImagePullPolicy pullPolicy, String imageName)
        throws MojoExecutionException {

        // The logic here is like this (see also #96):
        // otherwise: don't pull

        if (pullPolicy == ImagePullPolicy.Never) {
            if (!hasImage) {
                throw new MojoExecutionException(
                    String.format("No image '%s' found and pull policy 'Never' is set. Please chose another pull policy or pull the image yourself)", imageName));
            }
            return false;
        }

        // If the image is not available and mode is not ImagePullPolicy.Never --> pull
        if (!hasImage) {
            return true;
        }

        // If pullPolicy == Always --> pull, otherwise not (we have it already)
        return pullPolicy == ImagePullPolicy.Always;
    }
Check an image, and, if <code>autoPull</code> is set to true, fetch it. Otherwise if the image
 is not existent, throw an error

@param image image which is required to be pulled
@param pullManager image pull manager
@param registryConfig registry configuration
@param buildImageConfiguration image build configuration
@throws DockerAccessException in case of error in contacting docker daemon
@throws MojoExecutionException in case of any other misc failure
src/main/java/io/fabric8/maven/docker/service/RegistryService.java