diff --git a/src/main/java/com/github/dockerjava/api/command/ListImagesCmd.java b/src/main/java/com/github/dockerjava/api/command/ListImagesCmd.java index 481bf7e49..b24c62110 100644 --- a/src/main/java/com/github/dockerjava/api/command/ListImagesCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/ListImagesCmd.java @@ -18,12 +18,16 @@ public interface ListImagesCmd extends SyncDockerCmd> { @CheckForNull public String getFilters(); + + public String getImageNameFilter(); @CheckForNull public Boolean hasShowAllEnabled(); public ListImagesCmd withShowAll(Boolean showAll); + public ListImagesCmd withImageNameFilter(String imageName); + public ListImagesCmd withFilters(String filters); public static interface Exec extends DockerCmdSyncExec> { diff --git a/src/main/java/com/github/dockerjava/api/model/PullResponseItem.java b/src/main/java/com/github/dockerjava/api/model/PullResponseItem.java index 834060b99..789f9a279 100644 --- a/src/main/java/com/github/dockerjava/api/model/PullResponseItem.java +++ b/src/main/java/com/github/dockerjava/api/model/PullResponseItem.java @@ -23,7 +23,7 @@ public boolean isPullSuccessIndicated() { } return (getStatus().contains("Download complete") || getStatus().contains("Image is up to date") || getStatus() - .contains("Downloaded newer image")); + .contains("Downloaded newer image") || getStatus().contains("this image was pulled from a legacy registry")); } } diff --git a/src/main/java/com/github/dockerjava/core/command/ListImagesCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/ListImagesCmdImpl.java index 69879b673..bbab292ec 100644 --- a/src/main/java/com/github/dockerjava/core/command/ListImagesCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/ListImagesCmdImpl.java @@ -17,6 +17,7 @@ */ public class ListImagesCmdImpl extends AbstrDockerCmd> implements ListImagesCmd { + private String imageNameFilter; private String filters; private Boolean showAll = false; @@ -48,4 +49,22 @@ public ListImagesCmd withFilters(String filter) { return this; } + @Override + public String toString() { + return new StringBuilder("images ").append(showAll ? "--all=true" : "") + .append(filters != null ? "--filters " + filters : "") + .append(imageNameFilter != null ? "--filter " + imageNameFilter : "").toString(); + } + + @Override + public ListImagesCmd withImageNameFilter(String imageNameFilter) { + checkNotNull(imageNameFilter, "image name filter not specified"); + this.imageNameFilter = imageNameFilter; + return this; + } + + @Override + public String getImageNameFilter() { + return this.imageNameFilter; + } } diff --git a/src/main/java/com/github/dockerjava/jaxrs/ListImagesCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/ListImagesCmdExec.java index c6422aa52..83b9db62b 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/ListImagesCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/ListImagesCmdExec.java @@ -27,8 +27,13 @@ protected List execute(ListImagesCmd command) { webTarget = booleanQueryParam(webTarget, "all", command.hasShowAllEnabled()); - if (command.getFilters() != null) - webTarget = webTarget.queryParam("filters", urlPathSegmentEscaper().escape(command.getFilters())); + if (command.getFilters() != null) { + webTarget = webTarget.queryParam("filters", urlPathSegmentEscaper().escape(command.getFilters())); + } + + if (command.getImageNameFilter() != null) { + webTarget = webTarget.queryParam("filter", urlPathSegmentEscaper().escape(command.getImageNameFilter())); + } LOGGER.trace("GET: {}", webTarget);