From a80fcb8094657ca41cae6e2f0c033fcd733fa8ea Mon Sep 17 00:00:00 2001 From: elgekko Date: Mon, 11 Sep 2023 20:29:14 +0200 Subject: [PATCH] Bugfixes based on tests --- .../integration/safedelete/FileOperations.java | 2 +- .../integration/safedelete/SafeDeleteCommand.java | 12 ++++++------ .../safedelete/services/ArchiveStatusService.java | 6 +++--- .../integration/safedelete/verifier/TSMService.java | 7 ++++--- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/FileOperations.java b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/FileOperations.java index ad5be295..7de42ad1 100644 --- a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/FileOperations.java +++ b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/FileOperations.java @@ -37,7 +37,7 @@ public class FileOperations { static public void silentRename(Path source, String prefix) { try { - String fileName = String.format("%s%s", prefix, source.getFileName().toString()); + String fileName = String.format("%s-%s", prefix, source.getFileName().toString()); Path target = Paths.get(source.getParent().toAbsolutePath().toString(), fileName); Files.move(source, target); log.info("File renamed to: {}", target); diff --git a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/SafeDeleteCommand.java b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/SafeDeleteCommand.java index f625cf21..0d23b3bf 100644 --- a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/SafeDeleteCommand.java +++ b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/SafeDeleteCommand.java @@ -15,7 +15,6 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.time.Duration; import java.time.Instant; -import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Set; import java.util.TimeZone; @@ -57,7 +56,7 @@ public class SafeDeleteCommand { process(filePath, status, fileNamesWithKillDates, forceDeleteArchived); } catch (Exception e) { log.error(e.getMessage()); - FileOperations.silentRename(filePath, FileOperations.ERROR_FILENAME_PREFIX + formatter.format(LocalDate.now())); + FileOperations.silentRename(filePath, FileOperations.ERROR_FILENAME_PREFIX + formatter.format(Instant.now())); } finally { archivestatusService.logStatus(status); } @@ -105,10 +104,11 @@ public class SafeDeleteCommand { } private void deleteArchivedFileAndStatusFiles(Path source, ArchiveFileStatus status) throws IOException { - String fileName = source.getFileName().toString(); - Path statusPath = FileOperations.getStatusPath(source); - status.setStatusCleanupSuccess(statusFileService.cleanupStatusFiles(statusPath, fileName)); - status.setDeleteSuccess(FileOperations.silentDelete(source)); + log.info("Delete for {} is inactive", source); +// String fileName = source.getFileName().toString(); +// Path statusPath = FileOperations.getStatusPath(source); +// status.setStatusCleanupSuccess(statusFileService.cleanupStatusFiles(statusPath, fileName)); +// status.setDeleteSuccess(FileOperations.silentDelete(source)); } } diff --git a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/services/ArchiveStatusService.java b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/services/ArchiveStatusService.java index 20dc79a4..ba77d49d 100644 --- a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/services/ArchiveStatusService.java +++ b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/services/ArchiveStatusService.java @@ -25,13 +25,13 @@ public class ArchiveStatusService { .fileName(fileName) .fileSize(length) .creationTime(attr.creationTime()) - .creationTime(attr.lastAccessTime()) - .creationTime(attr.lastModifiedTime()) + .lastAccessTime(attr.lastAccessTime()) + .lastModifiedTime(attr.lastModifiedTime()) .build(); } public void logHeader() { - log.info(CSV_MARKER, "timestamp;fileName;fileSize;creationTime;lastAccessTime;lastModifiedTime;metadataOnly;metadataExists;tsmFileExists;fileSizeEquals;hashEquals;canDelete;deleteSuccess;statusCleanupSuccess"); + log.info(CSV_MARKER, "fileName;fileSize;creationTime;lastAccessTime;lastModifiedTime;metadataOnly;metadataExists;tsmFileExists;fileSizeEquals;hashEquals;canDelete;deleteSuccess;statusCleanupSuccess"); } public void logStatus(ArchiveFileStatus status) { diff --git a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/verifier/TSMService.java b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/verifier/TSMService.java index 367e149e..3c5259cd 100644 --- a/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/verifier/TSMService.java +++ b/mc-intergator/mc-safe-delete/src/main/java/hu/user/mediacube/integration/safedelete/verifier/TSMService.java @@ -27,7 +27,7 @@ public class TSMService { private static final String TMP_PREFIX = "TSM-RESTORED-"; - private Path restore(Path source) throws Exception { + private Path restore(Path source, ArchiveFileStatus status) throws Exception { Path result = null; TSMClient server = null; try { @@ -46,6 +46,7 @@ public class TSMService { throw new Exception(String.format("Restored file not exists: %s ", result)); } log.info("TSM file successfully restored to: {}", result); + status.setTsmFileExists(true); } } catch (Exception e) { @@ -61,7 +62,7 @@ public class TSMService { public void verify(Path source, ArchiveFileStatus status) throws Exception { Path restored = null; try { - restored = restore(source); + restored = restore(source, status); long restoredLength = restored.toFile().length(); long originalLength = source.toFile().length(); if (originalLength != restoredLength) { @@ -73,7 +74,7 @@ public class TSMService { String originalMD5 = createMD5Hash(source); String restoredMD5 = createMD5Hash(restored); if (!StringUtils.equals(originalMD5, restoredMD5)) { - throw new Exception(String.format("File MD5 hash mismatch. Expected %d, found %d", originalMD5, restoredMD5)); + throw new Exception(String.format("File MD5 hash mismatch. Expected %s, found %s", originalMD5, restoredMD5)); } log.info("MD5 hash check passed: {}", originalMD5); status.setHashEquals(true); -- 2.54.0