Extract deletion logic Take advantage of the already extracted logic between archiving and deletion and further extract common logic. Bug: Issue 461332435 Change-Id: I750c57cbbf300fee6f48ed7eae1d38da6a6a6964
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/AbstractScheduledTask.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/AbstractScheduledTask.java index cefbfc9..0b32d6d 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/AbstractScheduledTask.java +++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/AbstractScheduledTask.java
@@ -16,16 +16,22 @@ import static com.googlesource.gerrit.plugins.deleteproject.Configuration.DEFAULT_INITIAL_DELAY_MILLIS; import static com.googlesource.gerrit.plugins.deleteproject.Configuration.DEFAULT_PERIOD_DAYS; +import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; import com.google.common.annotations.VisibleForTesting; +import com.google.common.flogger.FluentLogger; +import com.google.common.io.MoreFiles; import com.google.gerrit.extensions.events.LifecycleListener; import com.google.gerrit.server.config.ScheduleConfig; import com.google.gerrit.server.git.WorkQueue; +import java.io.IOException; +import java.nio.file.Path; import java.util.Optional; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; public abstract class AbstractScheduledTask implements LifecycleListener, Runnable { + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private final WorkQueue queue; private final Optional<ScheduleConfig.Schedule> schedule; @@ -62,6 +68,14 @@ @Override public abstract void run(); + protected void recursivelyDelete(Path path) { + try { + MoreFiles.deleteRecursively(path, ALLOW_INSECURE); + } catch (IOException e) { + logger.atWarning().withCause(e).log("Failed to delete %s", path); + } + } + @VisibleForTesting ScheduledFuture<?> getWorkerFuture() { return scheduledTask;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemover.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemover.java index 8628644..24ffded 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemover.java +++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemover.java
@@ -14,9 +14,7 @@ package com.googlesource.gerrit.plugins.deleteproject.fs; -import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; import com.google.common.flogger.FluentLogger; -import com.google.common.io.MoreFiles; import com.google.gerrit.extensions.annotations.PluginName; import com.google.gerrit.server.git.WorkQueue; import com.google.inject.Inject; @@ -61,12 +59,7 @@ private void cleanUpOverdueRepositories() { for (Path path : listOverdueFiles(config.getArchiveDuration())) { - try { - MoreFiles.deleteRecursively(path, ALLOW_INSECURE); - } catch (IOException e) { - logger.atWarning().withCause(e).log( - "Error trying to clean the archived git repository: %s", path); - } + recursivelyDelete(path); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/DeleteTrashFolders.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/DeleteTrashFolders.java index 62bda19..d34d112 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/DeleteTrashFolders.java +++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/DeleteTrashFolders.java
@@ -13,13 +13,10 @@ // limitations under the License. package com.googlesource.gerrit.plugins.deleteproject.fs; -import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; - import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Stopwatch; import com.google.common.collect.Sets; import com.google.common.flogger.FluentLogger; -import com.google.common.io.MoreFiles; import com.google.gerrit.extensions.annotations.PluginName; import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.RepositoryConfig; @@ -153,11 +150,4 @@ return false; } - private void recursivelyDelete(Path folder) { - try { - MoreFiles.deleteRecursively(folder, ALLOW_INSECURE); - } catch (IOException e) { - log.atSevere().withCause(e).log("Failed to delete %s", folder); - } - } }