diff options
author | Valerij Fredriksen <valerijf@verizonmedia.com> | 2021-01-06 08:46:26 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2021-01-06 09:43:37 +0100 |
commit | 4c9fff6e2773ce76529f7f406089dd2b5b2d5d90 (patch) | |
tree | a440f9b9d300e6a91aa8d1292cdff0cd27a3788f /docker-api | |
parent | 06069e0d77a03bb94888d344b1ac83bd58a5cdd6 (diff) |
Add method to retain managed containers
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(); |