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

gabota pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new de6b7bc  HADOOP-16409. Allow authoritative mode on non-qualified 
paths. Contributed by Sean Mackrory
de6b7bc is described below

commit de6b7bc67ace7744adb0320ee7de79cf28259d2d
Author: Sean Mackrory <mackror...@gmail.com>
AuthorDate: Mon Jul 8 11:27:07 2019 -0600

    HADOOP-16409. Allow authoritative mode on non-qualified paths. Contributed 
by Sean Mackrory
---
 .../src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java         | 2 --
 .../java/org/apache/hadoop/fs/s3a/s3guard/DynamoDBMetadataStore.java  | 1 +
 .../src/main/java/org/apache/hadoop/fs/s3a/s3guard/S3Guard.java       | 3 +--
 .../test/java/org/apache/hadoop/fs/s3a/ITestAuthoritativePath.java    | 4 ++++
 4 files changed, 6 insertions(+), 4 deletions(-)

diff --git 
a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java
 
b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java
index 9b3a4b1..3ae4f1f 100644
--- 
a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java
+++ 
b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java
@@ -2421,7 +2421,6 @@ public class S3AFileSystem extends FileSystem implements 
StreamCapabilities,
         result.add(files.next());
       }
       // merge the results. This will update the store as needed
-
       return S3Guard.dirListingUnion(metadataStore, path, result, dirMeta,
           allowAuthoritative, ttlTimeProvider);
     } else {
@@ -3810,7 +3809,6 @@ public class S3AFileSystem extends FileSystem implements 
StreamCapabilities,
           final PathMetadata pm = metadataStore.get(path, true);
           // shouldn't need to check pm.isDeleted() because that will have
           // been caught by getFileStatus above.
-
           MetadataStoreListFilesIterator metadataStoreListFilesIterator =
               new MetadataStoreListFilesIterator(metadataStore, pm,
                   allowAuthoritative);
diff --git 
a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/DynamoDBMetadataStore.java
 
b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/DynamoDBMetadataStore.java
index 3329b54..9f06313 100644
--- 
a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/DynamoDBMetadataStore.java
+++ 
b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/DynamoDBMetadataStore.java
@@ -1321,6 +1321,7 @@ public class DynamoDBMetadataStore implements 
MetadataStore,
       final DirListingMetadata meta,
       @Nullable final BulkOperationState operationState) throws IOException {
     LOG.debug("Saving to table {} in region {}: {}", tableName, region, meta);
+
     // directory path
     Path path = meta.getPath();
     DDBPathMetadata ddbPathMeta =
diff --git 
a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/S3Guard.java
 
b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/S3Guard.java
index 97070f8..85e4d12 100644
--- 
a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/S3Guard.java
+++ 
b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/S3Guard.java
@@ -787,13 +787,12 @@ public final class S3Guard {
 
   public static boolean allowAuthoritative(Path p, S3AFileSystem fs,
       boolean authMetadataStore, Collection<String> authPaths) {
-    String haystack = fs.maybeAddTrailingSlash(p.toString());
+    String haystack = fs.maybeAddTrailingSlash(fs.qualify(p).toString());
     if (authMetadataStore) {
       return true;
     }
     if (!authPaths.isEmpty()) {
       for (String needle : authPaths) {
-
         if (haystack.startsWith(needle)) {
           return true;
         }
diff --git 
a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestAuthoritativePath.java
 
b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestAuthoritativePath.java
index b7c5823..c35a585 100644
--- 
a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestAuthoritativePath.java
+++ 
b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestAuthoritativePath.java
@@ -294,6 +294,10 @@ public class ITestAuthoritativePath extends 
AbstractS3ATestBase {
       Path directoryMatch = new Path(testRoot, "/auth/oritative");
       assertTrue(S3Guard.allowAuthoritative(directoryMatch, fs,
           false, authPaths));
+
+      Path unqualifiedMatch = new Path(testRoot.toUri().getPath(), 
"/auth/oritative");
+      assertTrue(S3Guard.allowAuthoritative(unqualifiedMatch, fs,
+          false, authPaths));
     } finally {
       cleanUpFS(fs);
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to