From 82b007180669ace740f097c46cf812ecd419ed77 Mon Sep 17 00:00:00 2001 From: Quyen Ly Date: Thu, 11 May 2023 15:25:31 +0700 Subject: [PATCH] PIP-231 Clean up any existing data in transformed folder from previous run during retry --- .../org/ihtsdo/buildcloud/core/dao/BuildDAO.java | 2 ++ .../ihtsdo/buildcloud/core/dao/BuildDAOImpl.java | 16 ++++++++++++++-- .../buildcloud/core/dao/helper/S3PathHelper.java | 2 +- .../core/service/build/Rf2FileExportRunner.java | 3 +++ .../build/transform/TransformationService.java | 3 +++ 5 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/ihtsdo/buildcloud/core/dao/BuildDAO.java b/src/main/java/org/ihtsdo/buildcloud/core/dao/BuildDAO.java index 682ba7be0..00d5736e4 100644 --- a/src/main/java/org/ihtsdo/buildcloud/core/dao/BuildDAO.java +++ b/src/main/java/org/ihtsdo/buildcloud/core/dao/BuildDAO.java @@ -108,6 +108,8 @@ public interface BuildDAO { void deleteOutputFiles(Build build); + void deleteTransformedFiles(Build build); + InputStream getBuildInputGatherReportStream(Build build); boolean isDerivativeProduct(Build build); diff --git a/src/main/java/org/ihtsdo/buildcloud/core/dao/BuildDAOImpl.java b/src/main/java/org/ihtsdo/buildcloud/core/dao/BuildDAOImpl.java index 703de37b5..cd241cd07 100644 --- a/src/main/java/org/ihtsdo/buildcloud/core/dao/BuildDAOImpl.java +++ b/src/main/java/org/ihtsdo/buildcloud/core/dao/BuildDAOImpl.java @@ -1043,9 +1043,21 @@ public boolean isBuildCancelRequested(final Build build) { @Override public void deleteOutputFiles(Build build) { List outputFiles = listOutputFilePaths(build); + final String outputFilesPath = pathHelper.getOutputFilesPath(build); for (String outputFile : outputFiles) { - if (srsFileHelper.exists(outputFile)) { - srsFileHelper.deleteFile(outputFile); + if (srsFileHelper.exists(outputFilesPath + outputFile)) { + srsFileHelper.deleteFile(outputFilesPath + outputFile); + } + } + } + + @Override + public void deleteTransformedFiles(Build build) { + List transformedFiles = listTransformedFilePaths(build); + final String transformedFilesPath = pathHelper.getBuildTransformedFilesPath(build).toString(); + for (String transformedFile : transformedFiles) { + if (srsFileHelper.exists(transformedFilesPath + transformedFile)) { + srsFileHelper.deleteFile(transformedFilesPath + transformedFile); } } } diff --git a/src/main/java/org/ihtsdo/buildcloud/core/dao/helper/S3PathHelper.java b/src/main/java/org/ihtsdo/buildcloud/core/dao/helper/S3PathHelper.java index 559d7e09d..f092c5f3e 100644 --- a/src/main/java/org/ihtsdo/buildcloud/core/dao/helper/S3PathHelper.java +++ b/src/main/java/org/ihtsdo/buildcloud/core/dao/helper/S3PathHelper.java @@ -139,7 +139,7 @@ private String getFilePath(final Build build, final String relativePath) { } public StringBuilder getBuildTransformedFilesPath(final Build build) { - return getBuildPath(build.getReleaseCenterKey(), build.getProductKey(), build.getId()).append(TRANSFORMED_FILES).append(SEPARATOR); + return getBuildPath(build).append(TRANSFORMED_FILES).append(SEPARATOR); } public String getTransformedFilePath(final Build build, final String relativeFilePath) { diff --git a/src/main/java/org/ihtsdo/buildcloud/core/service/build/Rf2FileExportRunner.java b/src/main/java/org/ihtsdo/buildcloud/core/service/build/Rf2FileExportRunner.java index 0c24934dd..63015ad14 100644 --- a/src/main/java/org/ihtsdo/buildcloud/core/service/build/Rf2FileExportRunner.java +++ b/src/main/java/org/ihtsdo/buildcloud/core/service/build/Rf2FileExportRunner.java @@ -48,6 +48,9 @@ public Rf2FileExportRunner(final Build build, final BuildDAO dao, final int maxR } public final void generateReleaseFiles() throws ReleaseFileGenerationException { + // clean up any existing data in output folder in case there could be data left from previous run during retry + buildDao.deleteOutputFiles(build); + final List transformedFiles = getTransformedDeltaFiles(); final Set newRF2InputFiles = configuration.getNewRF2InputFileSet(); final Map> includedFilesMap = configuration.getIncludedFilesInNewFilesMap(); diff --git a/src/main/java/org/ihtsdo/buildcloud/core/service/build/transform/TransformationService.java b/src/main/java/org/ihtsdo/buildcloud/core/service/build/transform/TransformationService.java index f2c1b222f..4b7ffdde7 100644 --- a/src/main/java/org/ihtsdo/buildcloud/core/service/build/transform/TransformationService.java +++ b/src/main/java/org/ihtsdo/buildcloud/core/service/build/transform/TransformationService.java @@ -89,6 +89,9 @@ public TransformationService() { public void transformFiles(final Build build, final Map inputFileSchemaMap) throws BusinessServiceException, NoSuchAlgorithmException { + // clean up any existing data in transformed folder in case there could be data left from previous run during retry + dao.deleteTransformedFiles(build); + BuildConfiguration configuration = build.getConfiguration(); final BuildReport report = build.getBuildReport();