public void pullImage()

in functions/CDDDockerJava/src/main/java/com/amazonaws/greengrass/cdddocker/docker/BasicDockerHelper.java [191:224]


    public void pullImage(String name) throws InterruptedException {
        DockerClient dockerClient;

        if (name.contains(".amazonaws.com/") && (name.contains(".dkr.ecr."))) {
            // Looks like an ECR container, get the ECR client
            dockerClient = combinedDockerClientProvider.getEcrDockerClient();
        } else {
            // Use the normal client without ECR auth
            dockerClient = combinedDockerClientProvider.getLocalDockerClient();
        }

        PullImageResultCallback callback = new PullImageResultCallback() {
            @Override
            public void onNext(PullResponseItem item) {
                ObjectMapper objectMapper = new ObjectMapper();
                Map output = objectMapper.convertValue(item, Map.class);
                // The progress field is an ASCII progress bar that isn't really useful so we always remove it if it is there
                output.remove("progress");
                dispatcher.publishObjectEvent(topics.getResponseTopic(), output);
                super.onNext(item);
            }

            @Override
            public void onError(Throwable throwable) {
                loggingHelper.logAndPublish(Optional.empty(), topics.getResponseTopic(), "Error: " + throwable.getMessage());
                super.onError(throwable);
            }
        };

        dockerClient.pullImageCmd(name)
                .withAuthConfig(dockerClient.authConfig())
                .exec(callback)
                .awaitCompletion();
    }