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/11/02 19:19:48 UTC
jclouds git commit: Removed unneeded check for prefix in
clearContainer
Repository: jclouds
Updated Branches:
refs/heads/master bbb41b459 -> 22ce5484a
Removed unneeded check for prefix in clearContainer
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/22ce5484
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/22ce5484
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/22ce5484
Branch: refs/heads/master
Commit: 22ce5484a412bc06ef62995675c07e7a85f66bdf
Parents: bbb41b4
Author: Joe Meiring <jm...@tacc.utexas.edu>
Authored: Thu Nov 1 17:01:50 2018 -0500
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Nov 2 12:19:01 2018 -0700
----------------------------------------------------------------------
.../strategy/internal/DeleteAllKeysInList.java | 3 --
.../internal/BaseBlobStoreIntegrationTest.java | 16 ++++++
.../internal/BaseContainerIntegrationTest.java | 57 ++++++++++++++++++++
3 files changed, 73 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/22ce5484/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/DeleteAllKeysInList.java
----------------------------------------------------------------------
diff --git a/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/DeleteAllKeysInList.java b/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/DeleteAllKeysInList.java
index 49cfe20..85b19eb 100644
--- a/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/DeleteAllKeysInList.java
+++ b/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/DeleteAllKeysInList.java
@@ -380,9 +380,6 @@ public class DeleteAllKeysInList implements ClearListStrategy, ClearContainerStr
public void execute(final String containerName,
ListContainerOptions listOptions) {
- if (listOptions.getDelimiter() != null || listOptions.getPrefix() != null) {
- throw new IllegalArgumentException("Prefix and delimiter support has not yet been added");
- }
final AtomicBoolean deleteFailure = new AtomicBoolean();
int retries = maxErrors;
http://git-wip-us.apache.org/repos/asf/jclouds/blob/22ce5484/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobStoreIntegrationTest.java
----------------------------------------------------------------------
diff --git a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobStoreIntegrationTest.java b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobStoreIntegrationTest.java
index 7aae5a4..009e8fc 100644
--- a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobStoreIntegrationTest.java
+++ b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobStoreIntegrationTest.java
@@ -80,6 +80,14 @@ public class BaseBlobStoreIntegrationTest extends BaseViewLiveTest<BlobStoreCont
String.format(XML_STRING_FORMAT, "candy"), "path/4", String.format(XML_STRING_FORMAT, "dogma"), "path/5",
String.format(XML_STRING_FORMAT, "emma"));
+ private static final Map<String, String> FILE_NESTED_STRINGS = ImmutableMap.of(
+ "path/1/a", String.format(XML_STRING_FORMAT, "apple"),
+ "path/1/2/b", String.format(XML_STRING_FORMAT, "bear"),
+ "path/1/2/3/c", String.format(XML_STRING_FORMAT, "candy"),
+ "path/1/2/3/4/d", String.format(XML_STRING_FORMAT, "dog"),
+ "path/1/2/3/5/e", String.format(XML_STRING_FORMAT, "echo")
+ );
+
public static long INCONSISTENCY_WINDOW = 10000;
protected static final AtomicInteger containerIndex = new AtomicInteger(0);
@@ -282,6 +290,14 @@ public class BaseBlobStoreIntegrationTest extends BaseViewLiveTest<BlobStoreCont
}
}
+ protected void add5NestedBlobsToContainer(String sourceContainer) {
+ for (Entry<String, String> entry : FILE_NESTED_STRINGS.entrySet()) {
+ Blob sourceObject = view.getBlobStore().blobBuilder(entry.getKey()).payload(entry.getValue())
+ .contentType("text/xml").build();
+ addBlobToContainer(sourceContainer, sourceObject);
+ }
+ }
+
protected String addBlobToContainer(String sourceContainer, Blob object) {
return view.getBlobStore().putBlob(sourceContainer, object);
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/22ce5484/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java
index abbaba7..6364c98 100644
--- a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java
+++ b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java
@@ -177,6 +177,63 @@ public class BaseContainerIntegrationTest extends BaseBlobStoreIntegrationTest {
}
@Test(groups = { "integration", "live" })
+ public void testClearWithOptions() throws InterruptedException {
+ String containerName = getContainerName();
+ try {
+ ListContainerOptions options;
+
+ add5NestedBlobsToContainer(containerName);
+ options = new ListContainerOptions();
+ options.prefix("path/1/");
+ options.recursive();
+ view.getBlobStore().clearContainer(containerName, options);
+ assertConsistencyAwareContainerSize(containerName, 0);
+
+ view.getBlobStore().clearContainer(containerName);
+ add5NestedBlobsToContainer(containerName);
+ options = new ListContainerOptions();
+ options.prefix("path/1/2/3");
+ options.recursive();
+ view.getBlobStore().clearContainer(containerName, options);
+ assertConsistencyAwareContainerSize(containerName, 2);
+
+ view.getBlobStore().clearContainer(containerName);
+ add5NestedBlobsToContainer(containerName);
+ options = new ListContainerOptions();
+ options.prefix("path/1/2/3/4/");
+ options.recursive();
+ view.getBlobStore().clearContainer(containerName, options);
+ assertConsistencyAwareContainerSize(containerName, 4);
+
+ // non-recursive, should not clear anything, as prefix does not match
+ view.getBlobStore().clearContainer(containerName);
+ add5NestedBlobsToContainer(containerName);
+ options = new ListContainerOptions();
+ options.prefix("path/1/2/3");
+ view.getBlobStore().clearContainer(containerName, options);
+ assertConsistencyAwareContainerSize(containerName, 5);
+
+ // non-recursive, should only clear path/1/2/3/c
+ view.getBlobStore().clearContainer(containerName);
+ add5NestedBlobsToContainer(containerName);
+ options = new ListContainerOptions();
+ options.prefix("path/1/2/3/");
+ view.getBlobStore().clearContainer(containerName, options);
+ assertConsistencyAwareContainerSize(containerName, 4);
+
+ // non-recursive, should only clear path/1/2/3/c
+ view.getBlobStore().clearContainer(containerName);
+ add5NestedBlobsToContainer(containerName);
+ options = new ListContainerOptions();
+ options.prefix("path/1/2/3/c");
+ view.getBlobStore().clearContainer(containerName, options);
+ assertConsistencyAwareContainerSize(containerName, 4);
+ } finally {
+ returnContainer(containerName);
+ }
+ }
+
+ @Test(groups = { "integration", "live" })
public void testListContainerMarker() throws InterruptedException {
String containerName = getContainerName();
try {