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/04/21 20:27:03 UTC
[1/2] jclouds git commit: JCLOUDS-1389: When composing,
set destination.storageClass from object
Repository: jclouds
Updated Branches:
refs/heads/master 316bce058 -> f7b453413
JCLOUDS-1389: When composing, set destination.storageClass from object
This aligns that the destination's storageClass with that of the sub-object(s) being composed
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/def6db48
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/def6db48
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/def6db48
Branch: refs/heads/master
Commit: def6db48645fb6c043a4889b45c582335b331d30
Parents: 316bce0
Author: Jim Sermersheim <ji...@primarydata.com>
Authored: Fri Apr 20 12:04:16 2018 -0600
Committer: Jim Sermersheim <ji...@primarydata.com>
Committed: Fri Apr 20 12:05:58 2018 -0600
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/def6db48/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 63834e4..029ca03 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
@@ -379,15 +379,17 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
@Override
public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) {
- ImmutableList.Builder<GoogleCloudStorageObject> objects = ImmutableList.builder();
+ ImmutableList.Builder<GoogleCloudStorageObject> objectsBuilder = ImmutableList.builder();
for (MultipartPart part : parts) {
- objects.add(api.getObjectApi().getObject(mpu.containerName(),
+ objectsBuilder.add(api.getObjectApi().getObject(mpu.containerName(),
Strings2.urlEncode(getMPUPartName(mpu, part.partNumber()))));
}
ObjectTemplate destination = blobMetadataToObjectTemplate.apply(mpu.blobMetadata());
- // unset storage class because the subobjects store this state
- destination.storageClass(DomainResourceReferences.StorageClass.STANDARD);
+ final ImmutableList<GoogleCloudStorageObject> objects = objectsBuilder.build();
+ if (!objects.isEmpty()) {
+ destination.storageClass(objects.get(0).storageClass());
+ }
if (mpu.putOptions().getBlobAccess() == BlobAccess.PUBLIC_READ) {
ObjectAccessControls controls = ObjectAccessControls.builder()
.entity("allUsers")
@@ -398,7 +400,7 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
}
ComposeObjectTemplate template = ComposeObjectTemplate.builder()
- .fromGoogleCloudStorageObject(objects.build())
+ .fromGoogleCloudStorageObject(objects)
.destination(destination).build();
String eTag = api.getObjectApi().composeObjects(mpu.containerName(), Strings2.urlEncode(mpu.blobName()), template)
.etag();
[2/2] jclouds git commit: JCLOUDS-1389: add GCS MPU multiregional test
Posted by ga...@apache.org.
JCLOUDS-1389: add GCS MPU multiregional test
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/f7b45341
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/f7b45341
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/f7b45341
Branch: refs/heads/master
Commit: f7b45341328410dea583901a31218a3588cb5aad
Parents: def6db4
Author: Andrew Gaul <ga...@apache.org>
Authored: Sat Apr 21 12:16:55 2018 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sat Apr 21 13:25:00 2018 -0700
----------------------------------------------------------------------
...ogleCloudStorageBlobIntegrationLiveTest.java | 32 ++++++++++++++++++++
1 file changed, 32 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/f7b45341/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 d1866a9..4a48b58 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
@@ -36,7 +36,12 @@ import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
import org.jclouds.blobstore.integration.internal.BaseBlobIntegrationTest;
import org.jclouds.blobstore.options.PutOptions;
+import org.jclouds.googlecloud.config.CurrentProject;
import org.jclouds.googlecloud.internal.TestProperties;
+import org.jclouds.googlecloudstorage.GoogleCloudStorageApi;
+import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Location;
+import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.StorageClass;
+import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.io.Payloads;
import org.jclouds.io.payloads.ByteSourcePayload;
import org.jclouds.utils.TestUtils;
@@ -55,6 +60,7 @@ import com.google.common.io.Files;
@Test(groups = { "live", "blobstorelive" })
public class GoogleCloudStorageBlobIntegrationLiveTest extends BaseBlobIntegrationTest {
+ private final String PROJECT_NUMBER;
private long PART_SIZE = 5L * 1024L * 1024L;
@Override
@@ -64,6 +70,7 @@ public class GoogleCloudStorageBlobIntegrationLiveTest extends BaseBlobIntegrati
public GoogleCloudStorageBlobIntegrationLiveTest() throws IOException {
provider = "google-cloud-storage";
+ PROJECT_NUMBER = CurrentProject.ClientEmail.toProjectNumber(System.getProperty("test.google-cloud-storage.identity"));
}
@Override protected Properties setupProperties() {
@@ -331,4 +338,29 @@ public class GoogleCloudStorageBlobIntegrationLiveTest extends BaseBlobIntegrati
throw new SkipException("GCS does not report storage class of composed objects", ae);
}
}
+
+ @Test(groups = { "integration", "live" })
+ public void testMultipartUploadSinglePartMultiRegional() throws Exception {
+ String containerName = "jclouds-multiregional";
+ BucketTemplate template = new BucketTemplate()
+ .name(containerName)
+ .location(Location.US)
+ .storageClass(StorageClass.COLDLINE);
+ GoogleCloudStorageApi api = view.unwrapApi(GoogleCloudStorageApi.class);
+ api.getBucketApi().createBucket(PROJECT_NUMBER, template);
+ String blobName = "multiregional-blobname";
+
+ try {
+ long length = 32 * 1024L;
+ ByteSource byteSource = TestUtils.randomByteSource().slice(0, length);
+ Blob blob = view.getBlobStore().blobBuilder(blobName)
+ .payload(byteSource)
+ .contentLength(length)
+ .build();
+ view.getBlobStore().putBlob(containerName, blob, new PutOptions().multipart(true));
+ } finally {
+ view.getBlobStore().removeBlob(containerName, blobName);
+ api.getBucketApi().deleteBucket(containerName);
+ }
+ }
}