diff options
author | valerijf <valerijf@yahoo-inc.com> | 2017-05-18 13:31:38 +0200 |
---|---|---|
committer | valerijf <valerijf@yahoo-inc.com> | 2017-05-18 13:31:38 +0200 |
commit | ee6e3463a0e0024d698bd873e81648a46664573a (patch) | |
tree | a9c1bfc6cc708f81461f82e78f45de036eaddd53 /node-maintainer | |
parent | 480270b558640b0bc5f4d63f64cb0b36a85a85fc (diff) |
Fix deleteDirectories in node-maintainer
Diffstat (limited to 'node-maintainer')
-rw-r--r-- | node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/FileHelper.java | 6 | ||||
-rw-r--r-- | node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/maintainer/FileHelperTest.java | 17 |
2 files changed, 17 insertions, 6 deletions
diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/FileHelper.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/FileHelper.java index 7ad2d4c4d66..2179c5b186f 100644 --- a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/FileHelper.java +++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/FileHelper.java @@ -136,10 +136,8 @@ public class FileHelper { } } - private static Optional<Path> getMostRecentlyModifiedFileIn(Path basePath) { - return listContentsOfDirectory(basePath).stream() - .filter(Files::isRegularFile) - .max(Comparator.comparing(FileHelper::getLastModifiedTime)); + private static Optional<Path> getMostRecentlyModifiedFileIn(Path basePath) throws IOException { + return Files.walk(basePath).max(Comparator.comparing(FileHelper::getLastModifiedTime)); } private static boolean isTimeSinceLastModifiedMoreThan(Path path, Duration duration) { diff --git a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/maintainer/FileHelperTest.java b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/maintainer/FileHelperTest.java index 5cc3c0280df..22afa59fd2a 100644 --- a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/maintainer/FileHelperTest.java +++ b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/maintainer/FileHelperTest.java @@ -192,14 +192,27 @@ public class FileHelperTest { @Test public void testDeleteDirectoriesBasedOnAge() throws IOException { initSubDirectories(); + // Create folder3 which is older than maxAge, inside have a single directory, subSubFolder3, inside it which is + // also older than maxAge inside the sub directory, create some files which are newer than maxAge. + // deleteDirectories() should NOT delete folder3 + File subFolder3 = folder.newFolder("test_folder3"); + File subSubFolder3 = folder.newFolder("test_folder3/subSubFolder3"); + + for (int j=0; j<11; j++) { + File.createTempFile("test_", ".json", subSubFolder3); + } + + subFolder3.setLastModified(System.currentTimeMillis() - Duration.ofHours(1).toMillis()); + subSubFolder3.setLastModified(System.currentTimeMillis() - Duration.ofHours(3).toMillis()); FileHelper.deleteDirectories(folder.getRoot().toPath(), Duration.ofSeconds(50), Optional.of(".*folder.*")); //23 files in root // + 13 in test_folder2 // + 13 in subSubFolder2 - // + test_folder2 + subSubFolder2 itself - assertEquals(51, getNumberOfFilesAndDirectoriesIn(folder.getRoot())); + // + 11 in subSubFolder3 + // + test_folder2 + subSubFolder2 + folder3 + subSubFolder3 itself + assertEquals(64, getNumberOfFilesAndDirectoriesIn(folder.getRoot())); } @Test |