Delete old repository data directories for inline

This commit is contained in:
René Pfeuffer
2019-06-05 10:24:52 +02:00
parent e52518a12b
commit 9a1d80327e

View File

@@ -7,6 +7,7 @@ import sonia.scm.repository.RepositoryDirectoryHandler;
import sonia.scm.repository.RepositoryLocationResolver; import sonia.scm.repository.RepositoryLocationResolver;
import javax.inject.Inject; import javax.inject.Inject;
import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
@@ -34,6 +35,10 @@ class InlineMigrationStrategy extends BaseMigrationStrategy {
} }
private void moveData(Path sourceDirectory, Path targetDirectory) { private void moveData(Path sourceDirectory, Path targetDirectory) {
moveData(sourceDirectory, targetDirectory, false);
}
private void moveData(Path sourceDirectory, Path targetDirectory, boolean deleteDirectory) {
createDataDirectory(targetDirectory); createDataDirectory(targetDirectory);
listSourceDirectory(sourceDirectory) listSourceDirectory(sourceDirectory)
.filter(sourceFile -> !targetDirectory.equals(sourceFile)) .filter(sourceFile -> !targetDirectory.equals(sourceFile))
@@ -41,11 +46,18 @@ class InlineMigrationStrategy extends BaseMigrationStrategy {
sourceFile -> { sourceFile -> {
Path targetFile = targetDirectory.resolve(sourceFile.getFileName()); Path targetFile = targetDirectory.resolve(sourceFile.getFileName());
if (Files.isDirectory(sourceFile)) { if (Files.isDirectory(sourceFile)) {
moveData(sourceFile, targetFile); moveData(sourceFile, targetFile, true);
} else { } else {
moveFile(sourceFile, targetFile); moveFile(sourceFile, targetFile);
} }
} }
); );
if (deleteDirectory) {
try {
Files.delete(sourceDirectory);
} catch (IOException e) {
LOG.warn("could not delete source repository directory {}", sourceDirectory);
}
}
} }
} }