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 2015/02/15 10:06:56 UTC

[3/3] jclouds git commit: JCLOUDS-144: Swift multi-blob delete

JCLOUDS-144: Swift multi-blob delete


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/c14141de
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/c14141de
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/c14141de

Branch: refs/heads/master
Commit: c14141dec356ccab598717d7a198b6eb042a38c8
Parents: ecc8548
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Feb 13 11:56:50 2015 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sun Feb 15 01:06:04 2015 -0800

----------------------------------------------------------------------
 .../v1/blobstore/RegionScopedSwiftBlobStore.java      | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/c14141de/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
index 6972b6e..3b652d8 100644
--- a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
+++ b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
@@ -59,6 +59,7 @@ import org.jclouds.openstack.swift.v1.blobstore.functions.ToResourceMetadata;
 import org.jclouds.openstack.swift.v1.domain.Container;
 import org.jclouds.openstack.swift.v1.domain.ObjectList;
 import org.jclouds.openstack.swift.v1.domain.SwiftObject;
+import org.jclouds.openstack.swift.v1.features.BulkApi;
 import org.jclouds.openstack.swift.v1.features.ObjectApi;
 import org.jclouds.openstack.swift.v1.options.UpdateContainerOptions;
 import org.jclouds.openstack.swift.v1.reference.SwiftHeaders;
@@ -73,6 +74,7 @@ import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMultimap;
 import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
 import com.google.common.io.ByteSource;
 import com.google.inject.AbstractModule;
 import com.google.inject.Injector;
@@ -258,6 +260,18 @@ public class RegionScopedSwiftBlobStore implements BlobStore {
    }
 
    @Override
+   public void removeBlobs(String container, Iterable<String> names) {
+      BulkApi bulkApi = api.getBulkApi(regionId);
+      for (List<String> partition : Iterables.partition(names, 1000)) {
+         ImmutableList.Builder<String> builder = ImmutableList.builder();
+         for (String name : partition) {
+            builder.add(container + "/" + name);
+         }
+         bulkApi.bulkDelete(builder.build());
+      }
+   }
+
+   @Override
    public BlobStoreContext getContext() {
       return context;
    }