diff options
Diffstat (limited to 'docker-api')
-rw-r--r-- | docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerEngine.java | 2 | ||||
-rw-r--r-- | docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerEngine.java | 14 |
2 files changed, 13 insertions, 3 deletions
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerEngine.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerEngine.java index cd5f208e9e0..7a8d98f0e85 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerEngine.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerEngine.java @@ -83,6 +83,8 @@ public interface ContainerEngine { boolean noManagedContainersRunning(String manager); + List<ContainerName> listManagedContainers(String manager); + boolean deleteUnusedDockerImages(List<DockerImage> excludes, Duration minImageAgeToDelete); /** diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerEngine.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerEngine.java index 33b301256b2..a45855764ed 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerEngine.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerEngine.java @@ -286,7 +286,7 @@ public class DockerEngine implements ContainerEngine { response.getConfig().getHostName(), DockerImage.fromString(response.getConfig().getImage()), containerResourcesFromHostConfig(response.getHostConfig()), - new ContainerName(decode(response.getName())), + toContainerName(response.getName()), Container.State.valueOf(response.getState().getStatus().toUpperCase()), response.getState().getPid() )) @@ -309,8 +309,8 @@ public class DockerEngine implements ContainerEngine { return labels != null && manager.equals(labels.get(LABEL_NAME_MANAGEDBY)); } - private String decode(String encodedContainerName) { - return encodedContainerName.substring(FRAMEWORK_CONTAINER_PREFIX.length()); + private ContainerName toContainerName(String encodedContainerName) { + return new ContainerName(encodedContainerName.substring(FRAMEWORK_CONTAINER_PREFIX.length())); } @Override @@ -320,6 +320,14 @@ public class DockerEngine implements ContainerEngine { .noneMatch(container -> "running".equalsIgnoreCase(container.getState())); } + @Override + public List<ContainerName> listManagedContainers(String manager) { + return listAllContainers().stream() + .filter(container -> isManagedBy(container, manager)) + .map(container -> toContainerName(container.getNames()[0])) + .collect(Collectors.toList()); + } + List<com.github.dockerjava.api.model.Container> listAllContainers() { try { return dockerClient.listContainersCmd().withShowAll(true).exec(); |