From 20a2085f3436b3adf0bfe1be0d5cf0ef3c87a4ef Mon Sep 17 00:00:00 2001 From: Vishesh Date: Tue, 26 Sep 2023 12:03:47 +0530 Subject: [PATCH 1/3] cleanup directory if empty after removal of snapshot --- .../storage/resource/NfsSecondaryStorageResource.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java index e16926e76dcb..2264ec94589d 100644 --- a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java +++ b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java @@ -2050,6 +2050,15 @@ protected Answer deleteSnapshot(final DeleteCommand cmd) { s_logger.warn(details); return new Answer(cmd, false, details); } + + // delete the directory if it is empty + if (snapshotDir.isDirectory() && snapshotDir.list().length == 0) { + if (!snapshotDir.delete()) { + details = "Unable to delete directory " + snapshotDir.getName() + " at path " + snapshotPath; + s_logger.debug(details); + return new Answer(cmd, false, details); + } + } return new Answer(cmd, true, null); } else if (dstore instanceof S3TO) { final S3TO s3 = (S3TO)dstore; From c887e37e4fdd3ad8832c552304441f391ed4ea30 Mon Sep 17 00:00:00 2001 From: Vishesh Date: Tue, 26 Sep 2023 18:23:57 +0530 Subject: [PATCH 2/3] Apply suggestions from code review Co-authored-by: Daniel Augusto Veronezi Salvador <38945620+GutoVeronezi@users.noreply.github.com> --- .../storage/resource/NfsSecondaryStorageResource.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java index 2264ec94589d..3483c14bac06 100644 --- a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java +++ b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java @@ -2052,9 +2052,8 @@ protected Answer deleteSnapshot(final DeleteCommand cmd) { } // delete the directory if it is empty - if (snapshotDir.isDirectory() && snapshotDir.list().length == 0) { - if (!snapshotDir.delete()) { - details = "Unable to delete directory " + snapshotDir.getName() + " at path " + snapshotPath; + if (snapshotDir.isDirectory() && snapshotDir.list().length == 0 && !snapshotDir.delete()) { + details = String.format("Unable to delete directory [%s] at path [%s].", snapshotDir.getName(), snapshotPath); s_logger.debug(details); return new Answer(cmd, false, details); } From c4c631f16a075054038b2ebf193c1558e1ea113e Mon Sep 17 00:00:00 2001 From: Vishesh Date: Tue, 26 Sep 2023 18:33:11 +0530 Subject: [PATCH 3/3] Update services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java Co-authored-by: Daniel Augusto Veronezi Salvador <38945620+GutoVeronezi@users.noreply.github.com> --- .../storage/resource/NfsSecondaryStorageResource.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java index 3483c14bac06..d8f7395c8853 100644 --- a/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java +++ b/services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java @@ -2053,10 +2053,9 @@ protected Answer deleteSnapshot(final DeleteCommand cmd) { // delete the directory if it is empty if (snapshotDir.isDirectory() && snapshotDir.list().length == 0 && !snapshotDir.delete()) { - details = String.format("Unable to delete directory [%s] at path [%s].", snapshotDir.getName(), snapshotPath); - s_logger.debug(details); - return new Answer(cmd, false, details); - } + details = String.format("Unable to delete directory [%s] at path [%s].", snapshotDir.getName(), snapshotPath); + s_logger.debug(details); + return new Answer(cmd, false, details); } return new Answer(cmd, true, null); } else if (dstore instanceof S3TO) {