diff options
author | Arne H Juul <arnej@yahoo-inc.com> | 2017-06-19 11:17:52 +0200 |
---|---|---|
committer | Arne H Juul <arnej@yahoo-inc.com> | 2017-06-23 23:12:02 +0200 |
commit | 7d9d6cf3ad2ba96ae42e8a52a40961e3bbc99f04 (patch) | |
tree | cfe8818906db23db0b377bd13a10686655a8fd00 /node-admin | |
parent | 37e072c994b3788d1fb3df92b98064508b548e20 (diff) |
stop hardcoding /home/y in node-admin
Diffstat (limited to 'node-admin')
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); } } |