summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahoo-inc.com>2017-06-19 11:17:52 +0200
committerArne H Juul <arnej@yahoo-inc.com>2017-06-23 23:12:02 +0200
commit7d9d6cf3ad2ba96ae42e8a52a40961e3bbc99f04 (patch)
treecfe8818906db23db0b377bd13a10686655a8fd00 /node-admin
parent37e072c994b3788d1fb3df92b98064508b548e20 (diff)
stop hardcoding /home/y in node-admin
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/logging/FilebeatConfigProvider.java7
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java27
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java7
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/LocalZoneUtils.java64
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/util/EnvironmentTest.java9
5 files changed, 66 insertions, 48 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/logging/FilebeatConfigProvider.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/logging/FilebeatConfigProvider.java
index 8f4f65571df..dde2a39da67 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/logging/FilebeatConfigProvider.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/logging/FilebeatConfigProvider.java
@@ -1,6 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.logging;
+import static com.yahoo.vespa.defaults.Defaults.getDefaults;
import com.yahoo.vespa.hosted.node.admin.ContainerNodeSpec;
import com.yahoo.vespa.hosted.node.admin.util.Environment;
@@ -70,7 +71,7 @@ public class FilebeatConfigProvider {
"\n" +
" # vespa\n" +
" - paths:\n" +
- " - /home/y/logs/vespa/vespa.log\n" +
+ " - " + getDefaults().underVespaHome("logs/vespa/vespa.log") + "\n" +
" exclude_files: [\".gz$\"]\n" +
" document_type: vespa\n" +
" fields:\n" +
@@ -86,7 +87,7 @@ public class FilebeatConfigProvider {
"\n" +
" # vespa qrs\n" +
" - paths:\n" +
- " - /home/y/logs/vespa/qrs/QueryAccessLog.*.*\n" +
+ " - " + getDefaults().underVespaHome("logs/vespa/qrs/QueryAccessLog.*.*") + "\n" +
" exclude_files: [\".gz$\"]\n" +
" exclude_lines: [\"reserved-for-internal-use/feedapi\"]\n" +
" document_type: vespa-qrs\n" +
@@ -200,7 +201,7 @@ public class FilebeatConfigProvider {
" # To enable logging to files, to_files option has to be set to true\n" +
" files:\n" +
" # The directory where the log files will written to.\n" +
- " path: /home/y/logs/filebeat\n" +
+ " path: " + getDefaults().underVespaHome("logs/filebeat") + "\n" +
"\n" +
" # The name of the files where the logs are written to.\n" +
" name: filebeat\n" +
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 baab7c92b0d..a6af5f8e0c0 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
@@ -204,8 +204,13 @@ public class StorageMaintainer {
if (! getMaintenanceThrottlerFor(containerName).shouldRemoveOldFilesNow()) return;
MaintainerExecutor maintainerExecutor = new MaintainerExecutor();
- String[] pathsToClean = {"/home/y/logs/elasticsearch2", "/home/y/logs/logstash2",
- "/home/y/logs/daemontools_y", "/home/y/logs/nginx", "/home/y/logs/vespa"};
+ String[] pathsToClean = {
+ getDefaults().underVespaHome("logs/elasticsearch2"),
+ getDefaults().underVespaHome("logs/logstash2"),
+ getDefaults().underVespaHome("logs/daemontools_y"),
+ getDefaults().underVespaHome("logs/nginx"),
+ getDefaults().underVespaHome("logs/vespa")
+ };
for (String pathToClean : pathsToClean) {
Path path = environment.pathInNodeAdminFromPathInNode(containerName, pathToClean);
@@ -224,13 +229,15 @@ public class StorageMaintainer {
}
}
- Path logArchiveDir = environment.pathInNodeAdminFromPathInNode(containerName, "/home/y/logs/vespa/logarchive");
+ Path logArchiveDir = environment.pathInNodeAdminFromPathInNode(containerName,
+ getDefaults().underVespaHome("logs/vespa/logarchive"));
maintainerExecutor.addJob("delete-files")
.withArgument("basePath", logArchiveDir)
.withArgument("maxAgeSeconds", Duration.ofDays(31).getSeconds())
.withArgument("recursive", false);
- Path fileDistrDir = environment.pathInNodeAdminFromPathInNode(containerName, "/home/y/var/db/vespa/filedistribution");
+ Path fileDistrDir = environment.pathInNodeAdminFromPathInNode(containerName,
+ getDefaults().underVespaHome("var/db/vespa/filedistribution"));
maintainerExecutor.addJob("delete-files")
.withArgument("basePath", fileDistrDir)
.withArgument("maxAgeSeconds", Duration.ofDays(31).getSeconds())
@@ -269,7 +276,9 @@ public class StorageMaintainer {
MaintainerExecutor maintainerExecutor = new MaintainerExecutor();
maintainerExecutor.addJob("handle-core-dumps")
.withArgument("doneCoredumpsPath", environment.pathInNodeAdminToDoneCoredumps())
- .withArgument("coredumpsPath", environment.pathInNodeAdminFromPathInNode(containerName, "/home/y/var/crash"))
+ .withArgument("coredumpsPath",
+ environment.pathInNodeAdminFromPathInNode(containerName,
+ getDefaults().underVespaHome("var/crash")))
.withArgument("feedEndpoint", environment.getCoredumpFeedEndpoint())
.withArgument("attributes", attributes);
@@ -292,13 +301,13 @@ public class StorageMaintainer {
.withArgument("maxAgeSeconds", Duration.ofDays(7).getSeconds())
.withArgument("dirNameRegex", "^" + Pattern.quote(Environment.APPLICATION_STORAGE_CLEANUP_PATH_PREFIX));
- Path nodeAdminJDiskLogsPath = environment.pathInNodeAdminFromPathInNode(NODE_ADMIN, "/home/y/logs/vespa/");
+ Path nodeAdminJDiskLogsPath = environment.pathInNodeAdminFromPathInNode(NODE_ADMIN, getDefaults().underVespaHome("logs/vespa/"));
maintainerExecutor.addJob("delete-files")
.withArgument("basePath", nodeAdminJDiskLogsPath)
.withArgument("maxAgeSeconds", Duration.ofDays(31).getSeconds())
.withArgument("recursive", false);
- Path fileDistrDir = environment.pathInNodeAdminFromPathInNode(NODE_ADMIN, "/home/y/var/db/vespa/filedistribution");
+ Path fileDistrDir = environment.pathInNodeAdminFromPathInNode(NODE_ADMIN, getDefaults().underVespaHome("var/db/vespa/filedistribution"));
maintainerExecutor.addJob("delete-files")
.withArgument("basePath", fileDistrDir)
.withArgument("maxAgeSeconds", Duration.ofDays(31).getSeconds())
@@ -314,7 +323,7 @@ public class StorageMaintainer {
public void archiveNodeData(ContainerName containerName) {
MaintainerExecutor maintainerExecutor = new MaintainerExecutor();
maintainerExecutor.addJob("recursive-delete")
- .withArgument("path", environment.pathInNodeAdminFromPathInNode(containerName, "/home/y/var"));
+ .withArgument("path", environment.pathInNodeAdminFromPathInNode(containerName, getDefaults().underVespaHome("var")));
maintainerExecutor.addJob("move-files")
.withArgument("from", environment.pathInNodeAdminFromPathInNode(containerName, "/"))
@@ -369,7 +378,7 @@ public class StorageMaintainer {
}
String[] command = {"java",
- "-cp", "/home/y/lib/jars/node-maintainer-jar-with-dependencies.jar",
+ "-cp", getDefaults().underVespaHome("lib/jars/node-maintainer-jar-with-dependencies.jar"),
"-Dvespa.log.target=file:" + getDefaults().underVespaHome("logs/vespa/maintainer.log"),
"com.yahoo.vespa.hosted.node.maintainer.Maintainer", args};
ProcessResult result = docker.executeInContainerAsRoot(executeIn, command);
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java
index 0e8a4c4106d..7e8136403d8 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java
@@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.node.admin.provider;
import com.google.inject.Inject;
import com.yahoo.net.HostName;
-import com.yahoo.vespa.defaults.Defaults;
+import static com.yahoo.vespa.defaults.Defaults.getDefaults;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import com.yahoo.vespa.hosted.dockerapi.Docker;
import com.yahoo.vespa.hosted.dockerapi.metrics.MetricReceiverWrapper;
@@ -44,7 +44,7 @@ public class ComponentsProviderImpl implements ComponentsProvider {
private final MetricReceiverWrapper metricReceiverWrapper;
private static final int NODE_AGENT_SCAN_INTERVAL_MILLIS = 30000;
- private static final int WEB_SERVICE_PORT = Defaults.getDefaults().vespaWebServicePort();
+ private static final int WEB_SERVICE_PORT = getDefaults().vespaWebServicePort();
// Converge towards desired node admin state every 30 seconds
private static final int NODE_ADMIN_CONVERGE_STATE_INTERVAL_MILLIS = 30000;
@@ -100,7 +100,8 @@ public class ComponentsProviderImpl implements ComponentsProvider {
private void setCorePattern(Docker docker) {
- final String[] sysctlCorePattern = {"sysctl", "-w", "kernel.core_pattern=/home/y/var/crash/%e.core.%p"};
+ final String[] sysctlCorePattern = {"sysctl", "-w", "kernel.core_pattern=" +
+ getDefaults().underVespaHome("var/crash/%e.core.%p")};
docker.executeInContainerAsRoot(NODE_ADMIN_CONTAINER_NAME, sysctlCorePattern);
}
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/LocalZoneUtils.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/LocalZoneUtils.java
index b8d0b27506b..f6792d7fd30 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/LocalZoneUtils.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/LocalZoneUtils.java
@@ -109,36 +109,40 @@ public class LocalZoneUtils {
}
Arrays.asList(
- "/home/y/logs/daemontools_y",
- "/home/y/logs/jdisc_core",
- "/home/y/logs/langdetect/",
- "/home/y/logs/vespa",
- "/home/y/logs/yca",
- "/home/y/logs/yck",
- "/home/y/logs/yell",
- "/home/y/logs/ykeykey",
- "/home/y/logs/ykeykeyd",
- "/home/y/logs/yms_agent",
- "/home/y/logs/ysar",
- "/home/y/logs/ystatus",
- "/home/y/logs/zpe_policy_updater",
- "/home/y/var/cache",
- "/home/y/var/crash",
- "/home/y/var/db/jdisc",
- "/home/y/var/db/vespa",
- "/home/y/var/jdisc_container",
- "/home/y/var/jdisc_core",
- "/home/y/var/maven",
- "/home/y/var/run",
- "/home/y/var/scoreboards",
- "/home/y/var/service",
- "/home/y/var/share",
- "/home/y/var/spool",
- "/home/y/var/vespa",
- "/home/y/var/yca",
- "/home/y/var/ycore++",
- "/home/y/var/zookeeper")
- .forEach(path -> createCmd.withVolume(pathToContainerStorage.resolve("node-admin" + path).toString(), path));
+ "logs/daemontools_y",
+ "logs/jdisc_core",
+ "logs/langdetect/",
+ "logs/vespa",
+ "logs/yca",
+ "logs/yck",
+ "logs/yell",
+ "logs/ykeykey",
+ "logs/ykeykeyd",
+ "logs/yms_agent",
+ "logs/ysar",
+ "logs/ystatus",
+ "logs/zpe_policy_updater",
+ "var/cache",
+ "var/crash",
+ "var/db/jdisc",
+ "var/db/vespa",
+ "var/jdisc_container",
+ "var/jdisc_core",
+ "var/maven",
+ "var/run",
+ "var/scoreboards",
+ "var/service",
+ "var/share",
+ "var/spool",
+ "var/vespa",
+ "var/yca",
+ "var/ycore++",
+ "var/zookeeper")
+ .forEach(path -> {
+ String absPath = getDefaults().underVespaHome(path);
+ Path resolved = pathToContainerStorage.resolve("node-admin" + absPath);
+ createCmd.withVolume(resolved.toString(), absPath);
+ });
createCmd.create();
docker.startContainer(NODE_ADMIN_CONTAINER_NAME);
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/util/EnvironmentTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/util/EnvironmentTest.java
index c91230123ad..f5a661c8a66 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/util/EnvironmentTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/util/EnvironmentTest.java
@@ -1,6 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.util;
+import static com.yahoo.vespa.defaults.Defaults.getDefaults;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import org.junit.Test;
@@ -26,9 +27,10 @@ public class EnvironmentTest {
@Test
public void testAbsolutePathInNodeConversion() {
+ String varPath = getDefaults().underVespaHome("var");
ContainerName containerName = new ContainerName("docker1-1");
- String expected = "/host/home/docker/container-storage/" + containerName.asString() + "/home/y/var";
- String[] absolutePathsInContainer = {"//home/y/var", "/home/y/var", "/home/y/var/"};
+ String expected = "/host/home/docker/container-storage/" + containerName.asString() + varPath;
+ String[] absolutePathsInContainer = {"/" + varPath, varPath, varPath + "/"};
for (String pathInContainer : absolutePathsInContainer) {
assertEquals(expected, environment.pathInNodeAdminFromPathInNode(containerName, pathInContainer).toString());
@@ -37,6 +39,7 @@ public class EnvironmentTest {
@Test(expected=IllegalArgumentException.class)
public void testNonAbsolutePathInNodeConversion() {
- environment.pathInNodeAdminFromPathInNode(new ContainerName("container-1"), "home/y/var");
+ String varPath = getDefaults().underVespaHome("var").substring(1);
+ environment.pathInNodeAdminFromPathInNode(new ContainerName("container-1"), varPath);
}
}