You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by nr...@apache.org on 2018/03/08 18:11:37 UTC

[geode] branch develop updated: GEODE-4800: Fix handling orf relative paths when providing backpu baseline dir (#1581)

This is an automated email from the ASF dual-hosted git repository.

nreich pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new 9ac5839  GEODE-4800: Fix handling orf relative paths when providing backpu baseline dir (#1581)
9ac5839 is described below

commit 9ac583970fae2ac115947af7b3e9b14755b71a25
Author: Nick Reich <nr...@pivotal.io>
AuthorDate: Thu Mar 8 10:11:34 2018 -0800

    GEODE-4800: Fix handling orf relative paths when providing backpu baseline dir (#1581)
---
 .../apache/geode/internal/cache/backup/BackupWriter.java  |  3 +++
 .../geode/internal/cache/backup/BackupWriterFactory.java  |  2 +-
 .../internal/cache/backup/FileSystemBackupWriter.java     |  5 +++++
 .../internal/cache/backup/BackupWriterFactoryTest.java    | 15 +++++++++++++++
 4 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupWriter.java b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupWriter.java
index 328e83c..b465b0e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupWriter.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupWriter.java
@@ -15,6 +15,7 @@
 package org.apache.geode.internal.cache.backup;
 
 import java.io.IOException;
+import java.nio.file.Path;
 
 public interface BackupWriter {
   String INCOMPLETE_BACKUP_FILE = "INCOMPLETE_BACKUP_FILE";
@@ -27,4 +28,6 @@ public interface BackupWriter {
 
   void backupFiles(BackupDefinition backupDefinition) throws IOException;
 
+  Path getBaselineDirectory();
+
 }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupWriterFactory.java b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupWriterFactory.java
index 7111edc..9f29e08 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupWriterFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupWriterFactory.java
@@ -30,7 +30,7 @@ public enum BackupWriterFactory {
       String baselineDir = config.getBaselineDirectory();
       FileSystemIncrementalBackupLocation incrementalBackupLocation = null;
       if (baselineDir != null) {
-        File baseline = new File(baselineDir);
+        File baseline = new File(baselineDir).getAbsoluteFile();
         incrementalBackupLocation = new FileSystemIncrementalBackupLocation(baseline, memberId);
       }
       return new FileSystemBackupWriter(targetDir, incrementalBackupLocation);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FileSystemBackupWriter.java b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FileSystemBackupWriter.java
index 1698fc3..aadc143 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FileSystemBackupWriter.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/FileSystemBackupWriter.java
@@ -67,6 +67,11 @@ public class FileSystemBackupWriter implements BackupWriter {
     Files.delete(backupDirectory.resolve(INCOMPLETE_BACKUP_FILE));
   }
 
+  @Override
+  public Path getBaselineDirectory() {
+    return incrementalBaselineLocation.getMemberBackupLocationDir().getParent();
+  }
+
   private void backupAllFilesets(BackupDefinition backupDefinition) throws IOException {
     RestoreScript restoreScript = backupDefinition.getRestoreScript();
     backupDiskInitFiles(backupDefinition.getDiskInitFiles());
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupWriterFactoryTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupWriterFactoryTest.java
index 884104e..7b0d304 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupWriterFactoryTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupWriterFactoryTest.java
@@ -22,6 +22,8 @@ import static org.apache.geode.internal.cache.backup.FileSystemBackupWriterConfi
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.Properties;
 
 import org.junit.Test;
@@ -60,4 +62,17 @@ public class BackupWriterFactoryTest {
         .isInstanceOf(FileSystemBackupWriter.class);
   }
 
+  @Test
+  public void returnedWriterHasAbsolutePathToBaselineDirectory() {
+    Properties properties = new Properties();
+    properties.setProperty(TYPE, FILE_SYSTEM.getType());
+    properties.setProperty(TIMESTAMP, "yyyy-MM-dd-HH-mm-ss");
+    properties.setProperty(TARGET_DIR, "targetDir");
+    properties.setProperty(BASELINE_DIR, "baselineDir");
+
+    BackupWriter writer = FILE_SYSTEM.createWriter(properties, "memberId");
+
+    Path absoluteBaseLineDirectory = Paths.get("baselineDir").toAbsolutePath();
+    assertThat(writer.getBaselineDirectory()).isAbsolute().isEqualTo(absoluteBaseLineDirectory);
+  }
 }

-- 
To stop receiving notification emails like this one, please contact
nreich@apache.org.