This is an automated email from the ASF dual-hosted git repository. isjarana pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/airavata-data-lake.git
The following commit(s) were added to refs/heads/master by this push: new 7eb0122 Implement recursive cleanup new ac7bfe0 Merge pull request #110 from isururanawaka/master 7eb0122 is described below commit 7eb01222b6afe200b15ba9529cbb8c6764aa76c1 Author: Isuru Ranawaka <irjan...@gmail.com> AuthorDate: Wed Jun 1 17:06:03 2022 -0400 Implement recursive cleanup --- .../impl/DataParsingWorkflowResourceCleanUpTask.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/data-orchestrator/workflow-engine/workflow-engine-core/src/main/java/org/apache/airavata/datalake/orchestrator/workflow/engine/task/impl/DataParsingWorkflowResourceCleanUpTask.java b/data-orchestrator/workflow-engine/workflow-engine-core/src/main/java/org/apache/airavata/datalake/orchestrator/workflow/engine/task/impl/DataParsingWorkflowResourceCleanUpTask.java index 562ecee..4fffe5a 100644 --- a/data-orchestrator/workflow-engine/workflow-engine-core/src/main/java/org/apache/airavata/datalake/orchestrator/workflow/engine/task/impl/DataParsingWorkflowResourceCleanUpTask.java +++ b/data-orchestrator/workflow-engine/workflow-engine-core/src/main/java/org/apache/airavata/datalake/orchestrator/workflow/engine/task/impl/DataParsingWorkflowResourceCleanUpTask.java @@ -7,8 +7,11 @@ import org.apache.helix.task.TaskResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.Paths; +import java.util.Comparator; @BlockingTaskDef(name = "DataParsingWorkflowResourceCleanUpTask") public class DataParsingWorkflowResourceCleanUpTask extends BlockingTask { @@ -46,9 +49,20 @@ public class DataParsingWorkflowResourceCleanUpTask extends BlockingTask { Files.deleteIfExists(Paths.get(downloadPath.get())); - logger.info("Running parsing directory cleanup"); + logger.info("Running parser directory cleanup"); if (!parsingDir.get().isEmpty()) { - Files.deleteIfExists(Paths.get(parsingDir.get())); + Path dir = Paths.get(parsingDir.get()); + Files + .walk(dir) // Traverse the file tree in depth-first order + .sorted(Comparator.reverseOrder()) + .forEach(path -> { + try { + logger.info("Deleting: " + path); + Files.delete(path); //delete each file or directory + } catch (IOException e) { + logger.error("File deletion failed for path "+ dir, e); + } + }); } return new TaskResult(TaskResult.Status.COMPLETED, "Completed");