You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by is...@apache.org on 2022/06/01 21:07:17 UTC

[airavata-data-lake] branch master updated: Implement recursive cleanup

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 <ir...@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");