diff options
author | valerijf <valerijf@yahoo-inc.com> | 2016-07-21 16:07:31 +0200 |
---|---|---|
committer | valerijf <valerijf@yahoo-inc.com> | 2016-07-21 16:07:31 +0200 |
commit | baa75a1cf34d57d1b0a5563529a1fc5190327b53 (patch) | |
tree | f12b48ff5502c03c881493831d74b0463e40f6e3 /node-admin | |
parent | e2096fd288ef7d269a8ae92f5f81a9e9375c9a46 (diff) |
Fixed bug with generating path relative to node storage (previously interpreted as absolute path)
Diffstat (limited to 'node-admin')
3 files changed, 19 insertions, 8 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/MaintenanceSchedulerImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/MaintenanceSchedulerImpl.java index 204a50811f3..de73d8ced7a 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/MaintenanceSchedulerImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/MaintenanceSchedulerImpl.java @@ -28,19 +28,19 @@ public class MaintenanceSchedulerImpl implements MaintenanceScheduler { String[] pathsToClean = {"/home/y/logs/elasticsearch2", "/home/y/logs/logstash2", "/home/y/logs/daemontools_y", "/home/y/logs/nginx", "/home/y/logs/vespa"}; for (String pathToClean : pathsToClean) { - File path = resolveContainerPath(containerName, pathToClean); + File path = Maintainer.applicationStoragePathRelativeToNode(containerName, pathToClean).toFile(); if (path.exists()) { DeleteOldAppData.deleteFiles(path.getAbsolutePath(), Duration.ofDays(3).getSeconds(), ".*\\.log\\..+", false); DeleteOldAppData.deleteFiles(path.getAbsolutePath(), Duration.ofDays(3).getSeconds(), ".*QueryAccessLog.*", false); } } - File logArchiveDir = resolveContainerPath(containerName, "/home/y/logs/vespa/logarchive"); + File logArchiveDir = Maintainer.applicationStoragePathRelativeToNode(containerName, "/home/y/logs/vespa/logarchive").toFile(); if (logArchiveDir.exists()) { DeleteOldAppData.deleteFiles(logArchiveDir.getAbsolutePath(), Duration.ofDays(31).getSeconds(), null, false); } - File fileDistrDir = resolveContainerPath(containerName, "/home/y/var/db/vespa/filedistribution"); + File fileDistrDir = Maintainer.applicationStoragePathRelativeToNode(containerName, "/home/y/var/db/vespa/filedistribution").toFile(); if (fileDistrDir.exists()) { DeleteOldAppData.deleteFiles(fileDistrDir.getAbsolutePath(), Duration.ofDays(31).getSeconds(), null, false); } @@ -56,7 +56,7 @@ public class MaintenanceSchedulerImpl implements MaintenanceScheduler { @Override public void deleteContainerStorage(ContainerName containerName) throws IOException { - File yVarDir = resolveContainerPath(containerName, "/home/y/var"); + File yVarDir = Maintainer.applicationStoragePathRelativeToNode(containerName, "/home/y/var").toFile(); if (yVarDir.exists()) { DeleteOldAppData.deleteDirectories(yVarDir.getAbsolutePath(), 0, null); } @@ -86,10 +86,6 @@ public class MaintenanceSchedulerImpl implements MaintenanceScheduler { } } - private File resolveContainerPath(ContainerName containerName, String relativePath) { - return Maintainer.applicationStoragePathForNode(containerName).resolve(relativePath).toFile(); - } - private static String[] concatenateArrays(String[] ar1, String[] ar2) { String[] concatenated = new String[ar1.length + ar2.length]; System.arraycopy(ar1, 0, concatenated, 0, ar1.length); diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/maintenance/Maintainer.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/maintenance/Maintainer.java index 0243cc6b661..773acf1e952 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/maintenance/Maintainer.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/maintenance/Maintainer.java @@ -112,4 +112,8 @@ public class Maintainer { return APPLICATION_STORAGE_PATH_FOR_NODE_ADMIN.resolve(APPLICATION_STORAGE_CLEANUP_PATH_PREFIX + containerName.asString() + "_" + filenameFormatter.format(Date.from(Instant.now()))); } + + public static Path applicationStoragePathRelativeToNode(ContainerName containerName, String relativePath) { + return Paths.get(Maintainer.applicationStoragePathForNode(containerName).toString(), relativePath); + } } diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/maintenance/MaintainerTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/maintenance/MaintainerTest.java index 7d030d0dc3a..75e59e8e12a 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/maintenance/MaintainerTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/maintenance/MaintainerTest.java @@ -15,4 +15,15 @@ public class MaintainerTest { "/host/home/docker/container-storage/docker1-1", Maintainer.applicationStoragePathForNode(new ContainerName("docker1-1")).toString()); } + + @Test + public void testPathRelativeToContainer() { + ContainerName containerName = new ContainerName("docker1-1"); + String expected = "/host/home/docker/container-storage/" + containerName.asString() + "/home/y/var"; + String[] variations = {"//home/y/var", "/home/y/var", "home/y/var", "/home/y/var/"}; + + for (String variation : variations) { + assertEquals(expected, Maintainer.applicationStoragePathRelativeToNode(containerName, variation).toString()); + } + } } |