diff options
author | Valerij Fredriksen <valerijf@oath.com> | 2018-10-12 13:45:35 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@oath.com> | 2018-10-12 13:45:35 +0200 |
commit | 614ec88a2d210150ae0a93d81a5931917695f5a4 (patch) | |
tree | d2d9ca7d79e20a33d8d431c212cdd11b151b511d /node-admin | |
parent | e703b7140d2f41b1057eb2d295d1ed39a7d537bc (diff) |
Get current image from Container
Diffstat (limited to 'node-admin')
4 files changed, 10 insertions, 8 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java index 43bd347920d..3e43ed63aea 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java @@ -6,6 +6,7 @@ import com.yahoo.config.provision.NodeType; import com.yahoo.io.IOUtils; import com.yahoo.log.LogLevel; import com.yahoo.system.ProcessExecuter; +import com.yahoo.vespa.hosted.dockerapi.Container; import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec; import com.yahoo.vespa.hosted.node.admin.docker.DockerNetworking; import com.yahoo.vespa.hosted.node.admin.docker.DockerOperations; @@ -239,12 +240,12 @@ public class StorageMaintainer { } /** Checks if container has any new coredumps, reports and archives them if so */ - public void handleCoreDumpsForContainer(NodeAgentContext context, NodeSpec node) { - final Map<String, Object> nodeAttributes = getCoredumpNodeAttributes(node); + public void handleCoreDumpsForContainer(NodeAgentContext context, NodeSpec node, Optional<Container> container) { + final Map<String, Object> nodeAttributes = getCoredumpNodeAttributes(node, container); coredumpHandler.converge(context, nodeAttributes); } - private Map<String, Object> getCoredumpNodeAttributes(NodeSpec node) { + private Map<String, Object> getCoredumpNodeAttributes(NodeSpec node, Optional<Container> container) { Map<String, Object> attributes = new HashMap<>(); attributes.put("hostname", node.getHostname()); attributes.put("parent_hostname", environment.getParentHostHostname()); @@ -253,7 +254,7 @@ public class StorageMaintainer { attributes.put("flavor", node.getFlavor()); attributes.put("kernel_version", System.getProperty("os.version")); - node.getCurrentDockerImage().ifPresent(image -> attributes.put("docker_image", image.asString())); + container.map(c -> c.image).ifPresent(image -> attributes.put("docker_image", image.asString())); node.getVespaVersion().ifPresent(version -> attributes.put("vespa_version", version)); node.getOwner().ifPresent(owner -> { attributes.put("tenant", owner.getTenant()); diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java index caf6882142b..3af78593a58 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java @@ -378,7 +378,7 @@ public class NodeAgentImpl implements NodeAgent { } } stopFilebeatSchedulerIfNeeded(); - storageMaintainer.handleCoreDumpsForContainer(context, node); + storageMaintainer.handleCoreDumpsForContainer(context, node, Optional.of(existingContainer)); dockerOperations.removeContainer(existingContainer); containerState = ABSENT; context.log(logger, "Container successfully removed, new containerState is " + containerState); @@ -492,7 +492,7 @@ public class NodeAgentImpl implements NodeAgent { updateNodeRepoWithCurrentAttributes(node); break; case active: - storageMaintainer.handleCoreDumpsForContainer(context, node); + storageMaintainer.handleCoreDumpsForContainer(context, node, container); storageMaintainer.getDiskUsageFor(context) .map(diskUsage -> (double) diskUsage / BYTES_IN_GB / node.getMinDiskAvailableGb()) diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/StorageMaintainerMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/StorageMaintainerMock.java index 613b3cb5f5c..e91787ca540 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/StorageMaintainerMock.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/StorageMaintainerMock.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.hosted.node.admin.integrationTests; import com.yahoo.system.ProcessExecuter; +import com.yahoo.vespa.hosted.dockerapi.Container; import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentContext; import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec; import com.yahoo.vespa.hosted.node.admin.docker.DockerOperations; @@ -27,7 +28,7 @@ public class StorageMaintainerMock extends StorageMaintainer { } @Override - public void handleCoreDumpsForContainer(NodeAgentContext context, NodeSpec node) { + public void handleCoreDumpsForContainer(NodeAgentContext context, NodeSpec node, Optional<Container> container) { } @Override diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java index b92c85fd6f1..fbb584ea1d9 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java @@ -458,7 +458,7 @@ public class NodeAgentImplTest { final InOrder inOrder = inOrder(storageMaintainer, dockerOperations, nodeRepository); inOrder.verify(dockerOperations, times(1)).stopServices(eq(context.containerName())); - inOrder.verify(storageMaintainer, times(1)).handleCoreDumpsForContainer(eq(context), eq(node)); + inOrder.verify(storageMaintainer, times(1)).handleCoreDumpsForContainer(eq(context), eq(node), any()); inOrder.verify(dockerOperations, times(1)).removeContainer(any()); inOrder.verify(storageMaintainer, times(1)).archiveNodeStorage(eq(context)); inOrder.verify(nodeRepository, times(1)).setNodeState(eq(hostName), eq(Node.State.ready)); |