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 {