diff options
author | Arnstein Ressem <aressem@verizonmedia.com> | 2020-06-02 13:21:45 +0200 |
---|---|---|
committer | Arnstein Ressem <aressem@verizonmedia.com> | 2020-06-02 13:21:45 +0200 |
commit | dc994d358421e06e87944ad25ff2a6f1b7f04295 (patch) | |
tree | d18a6d17ad44b55e1213fd66d7609a34a125afed /node-admin/src | |
parent | 4c6e95dc1fd0eb658c297be5fb747ff3b476ef15 (diff) |
Use context to get Vespa home.
Diffstat (limited to 'node-admin/src')
2 files changed, 11 insertions, 11 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollector.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollector.java index b2b36e609ca..65f88286d73 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollector.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollector.java @@ -6,13 +6,13 @@ import com.yahoo.vespa.hosted.dockerapi.ProcessResult; import com.yahoo.vespa.hosted.node.admin.docker.DockerOperations; import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentContext; -import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Matcher; @@ -31,11 +31,9 @@ public class CoreCollector { private static final Pattern FROM_PATH_PATTERN = Pattern.compile("^.* from '(?<path>.*?)'"); private final DockerOperations docker; - private final Path vespaHomeInContainer; - public CoreCollector(DockerOperations docker, Path vespaHomeInContainer) { + public CoreCollector(DockerOperations docker) { this.docker = docker; - this.vespaHomeInContainer = vespaHomeInContainer; } Path readBinPathFallback(NodeAgentContext context, Path coredumpPath) { @@ -53,10 +51,12 @@ public class CoreCollector { } Path GDBPath(NodeAgentContext context) { - DockerImage image = context.node().currentDockerImage().get(); + Optional<DockerImage> image = context.node().currentDockerImage(); - if (image.tag().get().startsWith("vespa/ci")) { - return vespaHomeInContainer.resolve("bin64/gdb"); + if (image.isPresent() + && image.get().tag().isPresent() + && image.get().tag().get().startsWith("vespa/ci")) { + return context.pathInNodeUnderVespaHome("bin64/gdb"); } else { return Paths.get("/opt/rh/devtoolset-9/root/bin/gdb"); diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollectorTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollectorTest.java index bcec01fe91d..f8d14eea996 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollectorTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/coredump/CoreCollectorTest.java @@ -21,10 +21,10 @@ import static org.mockito.Mockito.when; * @author freva */ public class CoreCollectorTest { - private final String GDB_PATH = "/my/path/to/gdb"; + private final String GDB_PATH = "/opt/rh/devtoolset-9/root/bin/gdb"; private final String JDK_PATH = "/path/to/jdk/java"; private final DockerOperations docker = mock(DockerOperations.class); - private final CoreCollector coreCollector = new CoreCollector(docker, Paths.get(GDB_PATH)); + private final CoreCollector coreCollector = new CoreCollector(docker); private final NodeAgentContext context = new NodeAgentContextImpl.Builder("container-123.domain.tld").build(); private final Path TEST_CORE_PATH = Paths.get("/tmp/core.1234"); @@ -85,7 +85,7 @@ public class CoreCollectorTest { fail("Expected not to be able to get bin path"); } catch (RuntimeException e) { assertEquals("Failed to extract binary path from GDB, result: ProcessResult { exitStatus=1 output= errors=Error 123 }, command: " + - "[/bin/sh, -c, /my/path/to/gdb -n -batch -core /tmp/core.1234 | grep '^Core was generated by']", e.getMessage()); + "[/bin/sh, -c, /opt/rh/devtoolset-9/root/bin/gdb -n -batch -core /tmp/core.1234 | grep '^Core was generated by']", e.getMessage()); } } @@ -102,7 +102,7 @@ public class CoreCollectorTest { fail("Expected not to be able to read backtrace"); } catch (RuntimeException e) { assertEquals("Failed to read backtrace ProcessResult { exitStatus=1 output= errors=Failure }, Command: " + - "[/my/path/to/gdb, -n, -ex, bt, -batch, /usr/bin/program, /tmp/core.1234]", e.getMessage()); + "[/opt/rh/devtoolset-9/root/bin/gdb, -n, -ex, bt, -batch, /usr/bin/program, /tmp/core.1234]", e.getMessage()); } } |