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/04/01 15:41:02 UTC

jclouds-labs-google git commit: Make deleteObject() return false on 404 response

Repository: jclouds-labs-google
Updated Branches:
  refs/heads/master d70048f0d -> 6f9783ce4


Make deleteObject() return false on 404 response


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

Branch: refs/heads/master
Commit: 6f9783ce4c316d93d6eac209967cc0a86152844f
Parents: d70048f
Author: snotling <da...@gmail.com>
Authored: Wed Jan 14 23:35:20 2015 +0100
Committer: Andrew Gaul <ga...@apache.org>
Committed: Wed Apr 1 06:08:51 2015 -0700

----------------------------------------------------------------------
 .../blobstore/GoogleCloudStorageBlobStore.java   | 11 +++++++----
 .../googlecloudstorage/features/BucketApi.java   |  5 ++---
 .../googlecloudstorage/features/ObjectApi.java   |  5 ++---
 .../features/BucketApiLiveTest.java              |  3 ++-
 .../features/ObjectApiLiveTest.java              | 19 +++++++++++--------
 5 files changed, 24 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/6f9783ce/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
index f1f6316..cab0646 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
@@ -291,11 +291,14 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
    @Override
    protected boolean deleteAndVerifyContainerGone(String container) {
       ListPageWithPrefixes<GoogleCloudStorageObject> list = api.getObjectApi().listObjects(container);
-      if (list == null) {
-         return api.getBucketApi().deleteBucket(container);
+
+      if (list == null || (!list.iterator().hasNext() && list.prefixes().isEmpty())) {
+         if (!api.getBucketApi().deleteBucket(container)) {
+            return true;
+         } else {
+            return !api.getBucketApi().bucketExist(container);
+         }
       }
-      if (!list.iterator().hasNext() && list.prefixes().isEmpty())
-         return api.getBucketApi().deleteBucket(container);
 
       return false;
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/6f9783ce/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java
index bb418b0..8636625 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java
@@ -31,7 +31,6 @@ import javax.ws.rs.QueryParam;
 
 import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.Fallbacks.TrueOnNotFoundOr404;
 import org.jclouds.blobstore.BlobStoreFallbacks.NullOnKeyAlreadyExists;
 import org.jclouds.googlecloud.domain.ListPage;
 import org.jclouds.googlecloudstorage.GoogleCloudStorageFallbacks.NullOnBucketAlreadyExists;
@@ -155,7 +154,7 @@ public interface BucketApi {
    @Named("Bucket:delete")
    @DELETE
    @Path("/b/{bucket}")
-   @Fallback(TrueOnNotFoundOr404.class)
+   @Fallback(FalseOnNotFoundOr404.class)
    boolean deleteBucket(@PathParam("bucket") String bucketName);
 
    /**
@@ -169,7 +168,7 @@ public interface BucketApi {
    @Named("Bucket:delete")
    @DELETE
    @Path("/b/{bucket}")
-   @Fallback(TrueOnNotFoundOr404.class)
+   @Fallback(FalseOnNotFoundOr404.class)
    boolean deleteBucket(@PathParam("bucket") String bucketName, DeleteBucketOptions options);
 
    /**

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/6f9783ce/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
index cdc200f..570a089 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
@@ -31,7 +31,6 @@ import javax.ws.rs.Produces;
 
 import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.Fallbacks.TrueOnNotFoundOr404;
 import org.jclouds.googlecloudstorage.binders.MultipartUploadBinder;
 import org.jclouds.googlecloudstorage.binders.UploadBinder;
 import org.jclouds.googlecloudstorage.domain.GoogleCloudStorageObject;
@@ -199,7 +198,7 @@ public interface ObjectApi {
    @Named("Object:delete")
    @DELETE
    @Path("storage/v1/b/{bucket}/o/{object}")
-   @Fallback(TrueOnNotFoundOr404.class)
+   @Fallback(FalseOnNotFoundOr404.class)
    boolean deleteObject(@PathParam("bucket") String bucketName, @PathParam("object") String objectName);
 
    /**
@@ -216,7 +215,7 @@ public interface ObjectApi {
    @Named("Object:delete")
    @DELETE
    @Path("storage/v1/b/{bucket}/o/{object}")
-   @Fallback(TrueOnNotFoundOr404.class)
+   @Fallback(FalseOnNotFoundOr404.class)
    boolean deleteObject(@PathParam("bucket") String bucketName, @PathParam("object") String objectName,
             DeleteObjectOptions options);
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/6f9783ce/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
index afa05ac..21f0a18 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
@@ -17,6 +17,7 @@
 package org.jclouds.googlecloudstorage.features;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertSame;
@@ -204,7 +205,7 @@ public class BucketApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
 
    @Test(groups = "live", dependsOnMethods = { "testDeleteBucket" })
    public void testDeleteNotExistingBucket() {
-      assertTrue(api().deleteBucket(BUCKET_NAME));
+      assertFalse(api().deleteBucket(BUCKET_NAME));
    }
 
    @Test(groups = "live", dependsOnMethods = { "testGetBucketWithOptions" })

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/6f9783ce/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
index 5a78c44..ec11718 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
@@ -20,7 +20,9 @@ import static com.google.common.io.BaseEncoding.base64;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.entry;
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
 
 import java.io.IOException;
 import java.util.List;
@@ -73,6 +75,7 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
    private static final String COPIED_OBJECT_NAME = "copyofObjectOperation.txt";
    private static final String COMPOSED_OBJECT = "ComposedObject1.txt";
    private static final String COMPOSED_OBJECT2 = "ComposedObject2.json";
+   private static final String NONEXISTENT_OBJECT_NAME = "noSuchObject.txt";
 
    private PayloadEnclosing testPayload;
    private Long RANDOM_LONG = 100L;
@@ -284,7 +287,6 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
 
    @Test(groups = "live", dependsOnMethods = "testComposeObjectWithOptions")
    public void testUpdateObject() {
-
       ObjectAccessControls oacl = ObjectAccessControls.builder().bucket(BUCKET_NAME).entity("allUsers")
                .role(ObjectRole.OWNER).build();
 
@@ -403,13 +405,14 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
 
    @Test(groups = "live", dependsOnMethods = "testMultipartJpegUpload")
    public void testDeleteObject() {
-      api().deleteObject(BUCKET_NAME2, UPLOAD_OBJECT_NAME);
-      api().deleteObject(BUCKET_NAME2, COMPOSED_OBJECT2);
-      api().deleteObject(BUCKET_NAME2, COMPOSED_OBJECT);
-      api().deleteObject(BUCKET_NAME2, COPIED_OBJECT_NAME);
-      api().deleteObject(BUCKET_NAME, UPLOAD_OBJECT_NAME);
-      api().deleteObject(BUCKET_NAME, UPLOAD_OBJECT_NAME2);
-      api().deleteObject(BUCKET_NAME, MULTIPART_UPLOAD_OBJECT);
+      assertTrue(api().deleteObject(BUCKET_NAME2, UPLOAD_OBJECT_NAME));
+      assertTrue(api().deleteObject(BUCKET_NAME2, COMPOSED_OBJECT2));
+      assertTrue(api().deleteObject(BUCKET_NAME2, COMPOSED_OBJECT));
+      assertTrue(api().deleteObject(BUCKET_NAME2, COPIED_OBJECT_NAME));
+      assertFalse(api().deleteObject(BUCKET_NAME, UPLOAD_OBJECT_NAME));
+      assertTrue(api().deleteObject(BUCKET_NAME, UPLOAD_OBJECT_NAME2));
+      assertTrue(api().deleteObject(BUCKET_NAME, MULTIPART_UPLOAD_OBJECT));
+      assertFalse(api().deleteObject(BUCKET_NAME, NONEXISTENT_OBJECT_NAME));
    }
 
    @Test(groups = "live", dependsOnMethods = "testPatchObjectsWithOptions")