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 2017/05/08 18:10:38 UTC
[36/50] jclouds git commit: Delete GCS composite object components
Delete GCS composite object components
Previously we left dangling subobjects. The composite object retains
a reference to the components data.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/ed262f7b
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/ed262f7b
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/ed262f7b
Branch: refs/heads/master
Commit: ed262f7bd611d6754eb44106aa8d1a8d1abbe05a
Parents: c2a22bc
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Jun 3 23:30:08 2016 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sat Jun 4 00:23:22 2016 -0700
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 19 ++++++++++++++-----
...oogleCloudStorageBlobIntegrationLiveTest.java | 6 +-----
2 files changed, 15 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed262f7b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
index 1cb927e..cce5d3c 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
@@ -384,9 +384,9 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
@Override
public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) {
- ImmutableList.Builder<GoogleCloudStorageObject> builder = ImmutableList.builder();
+ ImmutableList.Builder<GoogleCloudStorageObject> objects = ImmutableList.builder();
for (MultipartPart part : parts) {
- builder.add(api.getObjectApi().getObject(mpu.containerName(),
+ objects.add(api.getObjectApi().getObject(mpu.containerName(),
Strings2.urlEncode(getMPUPartName(mpu, part.partNumber()))));
}
@@ -400,11 +400,20 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
destination.addAcl(controls);
}
- ComposeObjectTemplate template = ComposeObjectTemplate.builder().fromGoogleCloudStorageObject(builder.build())
+ ComposeObjectTemplate template = ComposeObjectTemplate.builder()
+ .fromGoogleCloudStorageObject(objects.build())
.destination(destination).build();
- return api.getObjectApi().composeObjects(mpu.containerName(), Strings2.urlEncode(mpu.blobName()), template)
+ String eTag = api.getObjectApi().composeObjects(mpu.containerName(), Strings2.urlEncode(mpu.blobName()), template)
.etag();
- // TODO: delete components?
+
+ // remove parts, composite object keeps a reference to them
+ ImmutableList.Builder<String> builder = ImmutableList.builder();
+ for (MultipartPart part : parts) {
+ builder.add(getMPUPartName(mpu, part.partNumber()));
+ }
+ removeBlobs(mpu.containerName(), builder.build());
+
+ return eTag;
}
@Override
http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed262f7b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobIntegrationLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobIntegrationLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobIntegrationLiveTest.java
index 8aa3fe1..244076f 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobIntegrationLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobIntegrationLiveTest.java
@@ -18,10 +18,8 @@ package org.jclouds.googlecloudstorage.blobstore.integration;
import static org.assertj.core.api.Assertions.assertThat;
import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
@@ -224,9 +222,7 @@ public class GoogleCloudStorageBlobIntegrationLiveTest extends BaseBlobIntegrati
addMultipartBlobToContainer(containerName, "const.txt");
long countAfter = blobStore.countBlobs(containerName);
- assertNotEquals(countBefore, countAfter, "No blob was created");
- assertTrue(countAfter - countBefore > 1, "A multipart blob wasn't actually created - "
- + "there was only 1 extra blob but there should be one manifest blob and multiple chunk blobs");
+ assertThat(countAfter).isEqualTo(countBefore + 1);
} finally {
returnContainer(containerName);
}