diff options
author | Håkon Hallingstad <hakon@verizonmedia.com> | 2019-06-13 00:08:19 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@verizonmedia.com> | 2019-06-13 00:08:19 +0200 |
commit | deefffcb0652c8b5f0871456828d62fc2819f32e (patch) | |
tree | 30b92a5f1b0f08f2308d482a4ede0c507b4e57e4 /node-admin | |
parent | c4d2dd2945fa5c94b21f2a948cc7ea6329026477 (diff) |
Add noManagedContainersRunning() that hides impl in DockerImpl
Diffstat (limited to 'node-admin')
3 files changed, 15 insertions, 8 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperations.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperations.java index 750129749ea..2a40428cad2 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperations.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperations.java @@ -3,13 +3,13 @@ package com.yahoo.vespa.hosted.node.admin.docker; import com.yahoo.config.provision.DockerImage; import com.yahoo.vespa.hosted.dockerapi.Container; -import com.yahoo.vespa.hosted.dockerapi.ContainerLite; import com.yahoo.vespa.hosted.dockerapi.ContainerResources; import com.yahoo.vespa.hosted.dockerapi.ContainerStats; import com.yahoo.vespa.hosted.dockerapi.ProcessResult; import com.yahoo.vespa.hosted.node.admin.nodeagent.ContainerData; import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentContext; +import java.time.Duration; import java.util.List; import java.util.Optional; @@ -51,5 +51,8 @@ public interface DockerOperations { Optional<ContainerStats> getContainerStats(NodeAgentContext context); - List<ContainerLite> listContainers(); + boolean noManagedContainersRunning(); + + /** Deletes the local images that are currently not in use by any container and not recently used. */ + boolean deleteUnusedDockerImages(List<DockerImage> excludes, Duration minImageAgeToDelete); } diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java index 7c34f4d983f..954ba25895a 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java @@ -7,7 +7,6 @@ import com.yahoo.config.provision.DockerImage; import com.yahoo.config.provision.NodeType; import com.yahoo.system.ProcessExecuter; import com.yahoo.vespa.hosted.dockerapi.Container; -import com.yahoo.vespa.hosted.dockerapi.ContainerLite; import com.yahoo.vespa.hosted.dockerapi.ContainerResources; import com.yahoo.vespa.hosted.dockerapi.ContainerStats; import com.yahoo.vespa.hosted.dockerapi.Docker; @@ -23,6 +22,7 @@ import java.net.Inet6Address; import java.net.InetAddress; import java.nio.file.Path; import java.nio.file.Paths; +import java.time.Duration; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -330,8 +330,13 @@ public class DockerOperationsImpl implements DockerOperations { } @Override - public List<ContainerLite> listContainers() { - return docker.listAllContainers(); + public boolean noManagedContainersRunning() { + return docker.noManagedContainersRunning(MANAGER_NAME); + } + + @Override + public boolean deleteUnusedDockerImages(List<DockerImage> excludes, Duration minImageAgeToDelete) { + return docker.deleteUnusedDockerImages(excludes, minImageAgeToDelete); } /** Returns whether given nodeType is a Docker host for infrastructure nodes */ diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java index 7ffb986f9a3..e2ad9e3de97 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java @@ -3,7 +3,6 @@ package com.yahoo.vespa.hosted.node.admin.integrationTests; import com.yahoo.config.provision.DockerImage; import com.yahoo.vespa.hosted.dockerapi.Container; -import com.yahoo.vespa.hosted.dockerapi.ContainerLite; import com.yahoo.vespa.hosted.dockerapi.ContainerName; import com.yahoo.vespa.hosted.dockerapi.ContainerResources; import com.yahoo.vespa.hosted.dockerapi.ContainerStats; @@ -93,8 +92,8 @@ public class DockerMock implements Docker { } @Override - public List<ContainerLite> listAllContainers() { - return List.of(); + public boolean noManagedContainersRunning(String manager) { + return false; } public class StartContainerCommandMock implements CreateContainerCommand { |