You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2018/06/07 05:49:31 UTC
[2/2] jclouds git commit: [JCLOUDS-1422] Ensure that
LocalBlobStore.list honors !recursive even when a prefix is defined.
[JCLOUDS-1422] Ensure that LocalBlobStore.list honors !recursive even when a prefix is defined.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/8d2808e3
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/8d2808e3
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/8d2808e3
Branch: refs/heads/2.1.x
Commit: 8d2808e3091a888e9812149e68fecd294628c0d3
Parents: 3cb8d4f
Author: Jesse Glick <jg...@cloudbees.com>
Authored: Tue May 22 20:06:21 2018 -0400
Committer: Andrew Gaul <ga...@apache.org>
Committed: Wed Jun 6 22:49:19 2018 -0700
----------------------------------------------------------------------
.../blobstore/config/LocalBlobStore.java | 5 ++--
.../strategy/internal/ListContainerTest.java | 24 +++++++++++++++++++-
2 files changed, 26 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/8d2808e3/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
----------------------------------------------------------------------
diff --git a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
index f440312..5acd62e 100644
--- a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
+++ b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
@@ -342,8 +342,9 @@ public final class LocalBlobStore implements BlobStore {
}
}));
- if (options.getDelimiter() != null) {
- return extractCommonPrefixes(contents, options.getDelimiter(), options.getPrefix());
+ if (options.getDelimiter() != null || !options.isRecursive()) {
+ String delimiter = options.getDelimiter() == null ? storageStrategy.getSeparator() : options.getDelimiter();
+ return extractCommonPrefixes(contents, delimiter, options.getPrefix());
}
return contents;
http://git-wip-us.apache.org/repos/asf/jclouds/blob/8d2808e3/blobstore/src/test/java/org/jclouds/blobstore/strategy/internal/ListContainerTest.java
----------------------------------------------------------------------
diff --git a/blobstore/src/test/java/org/jclouds/blobstore/strategy/internal/ListContainerTest.java b/blobstore/src/test/java/org/jclouds/blobstore/strategy/internal/ListContainerTest.java
index 421cb2d..cb9f79e 100644
--- a/blobstore/src/test/java/org/jclouds/blobstore/strategy/internal/ListContainerTest.java
+++ b/blobstore/src/test/java/org/jclouds/blobstore/strategy/internal/ListContainerTest.java
@@ -72,7 +72,7 @@ public class ListContainerTest {
blobStore.putBlob(containerName, blobStore.blobBuilder("bar").payload("").build());
Iterable<? extends StorageMetadata> results = concatter.execute(containerName,
- ListContainerOptions.Builder.prefix(prefix).recursive());
+ ListContainerOptions.Builder.prefix(prefix)./* irrelevant */recursive());
assertThat(results).hasSize(3);
assertThat(Iterables.get(results, 0).getName()).isEqualTo(prefix);
assertThat(Iterables.get(results, 0).getType()).isEqualTo(StorageType.BLOB);
@@ -126,6 +126,28 @@ public class ListContainerTest {
assertThat(Iterables.get(results, 2).getName()).isEqualTo(prefix + "baz/object");
}
+ public void testListRecursivePrefixDelimiter() {
+ String containerName = "testListRecursivePrefixDelimiter";
+ String prefix = "foo/";
+ blobStore.createContainerInLocation(null, containerName);
+ blobStore.putBlob(containerName, blobStore.blobBuilder(prefix + "object").payload("").build());
+ blobStore.putBlob(containerName, blobStore.blobBuilder(prefix + "bar/object").payload("")
+ .build());
+ blobStore.putBlob(containerName, blobStore.blobBuilder(prefix + "baz/object").payload("")
+ .build());
+ blobStore.putBlob(containerName, blobStore.blobBuilder("bar/object").payload("").build());
+
+ Iterable<? extends StorageMetadata> results = concatter.execute(containerName,
+ ListContainerOptions.Builder.prefix(prefix));
+ assertThat(results).hasSize(3);
+ assertThat(Iterables.get(results, 0).getType()).isEqualTo(StorageType.RELATIVE_PATH);
+ assertThat(Iterables.get(results, 0).getName()).isEqualTo(prefix + "bar/");
+ assertThat(Iterables.get(results, 1).getType()).isEqualTo(StorageType.RELATIVE_PATH);
+ assertThat(Iterables.get(results, 1).getName()).isEqualTo(prefix + "baz/");
+ assertThat(Iterables.get(results, 2).getType()).isEqualTo(StorageType.BLOB);
+ assertThat(Iterables.get(results, 2).getName()).isEqualTo(prefix + "object");
+ }
+
public void testListDirectory() {
String containerName = "testListDir";
String directory = "dir";