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);
- }
- }
}