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:03 UTC
[01/50] jclouds git commit: JCLOUDS-651: GCS copy object content
metadata
Repository: jclouds
Updated Branches:
refs/heads/master 1c6c36b81 -> 9ea76ebe4
JCLOUDS-651: GCS copy object content metadata
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/84316704
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/84316704
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/84316704
Branch: refs/heads/master
Commit: 84316704c63c9246834f786546dcb73f1c41b8b1
Parents: d51bc04
Author: Andrew Gaul <ga...@apache.org>
Authored: Thu Apr 9 21:25:21 2015 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Thu Apr 9 21:27:05 2015 -0700
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 57 +++++++++++++++-----
1 file changed, 44 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/84316704/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 7ef2daf..dcc1d5a 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
@@ -23,7 +23,6 @@ import static org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Obj
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Set;
-import java.util.Map;
import javax.inject.Inject;
@@ -66,6 +65,7 @@ import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTempl
import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate;
import org.jclouds.googlecloudstorage.options.ListObjectOptions;
import org.jclouds.http.HttpResponseException;
+import org.jclouds.io.ContentMetadata;
import org.jclouds.io.Payload;
import com.google.common.base.Charsets;
@@ -305,16 +305,47 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
return false;
}
- @Override
- public String copyBlob(String fromContainer, String fromName, String toContainer, String toName, CopyOptions options) {
-
- if (options == CopyOptions.NONE) {
- return api.getObjectApi().copyObject(toContainer, toName, fromContainer, fromName).etag();
- } else {
- Map<String, String> map = options.getUserMetadata().get();
- String contentType = api.getObjectApi().getObject(fromContainer, fromName).contentType();
- ObjectTemplate template = new ObjectTemplate().customMetadata(map).contentType(contentType);
- return api.getObjectApi().copyObject(toContainer, toName, fromContainer, fromName, template).etag();
- }
- }
+ @Override
+ public String copyBlob(String fromContainer, String fromName, String toContainer, String toName,
+ CopyOptions options) {
+ if (!options.getContentMetadata().isPresent() && !options.getUserMetadata().isPresent()) {
+ return api.getObjectApi().copyObject(toContainer, toName, fromContainer, fromName).etag();
+ }
+
+ ObjectTemplate template = new ObjectTemplate();
+
+ if (options.getContentMetadata().isPresent()) {
+ ContentMetadata contentMetadata = options.getContentMetadata().get();
+
+ String contentDisposition = contentMetadata.getContentDisposition();
+ if (contentDisposition != null) {
+ template.contentDisposition(contentDisposition);
+ }
+
+ // TODO: causes failures with subsequent GET operations:
+ // HTTP/1.1 failed with response: HTTP/1.1 503 Service Unavailable; content: [Service Unavailable]
+/*
+ String contentEncoding = contentMetadata.getContentEncoding();
+ if (contentEncoding != null) {
+ template.contentEncoding(contentEncoding);
+ }
+*/
+
+ String contentLanguage = contentMetadata.getContentLanguage();
+ if (contentLanguage != null) {
+ template.contentLanguage(contentLanguage);
+ }
+
+ String contentType = contentMetadata.getContentType();
+ if (contentType != null) {
+ template.contentType(contentType);
+ }
+ }
+
+ if (options.getUserMetadata().isPresent()) {
+ template.customMetadata(options.getUserMetadata().get());
+ }
+
+ return api.getObjectApi().copyObject(toContainer, toName, fromContainer, fromName, template).etag();
+ }
}
[49/50] jclouds git commit: Merge remote-tracking branch
'jclouds-labs-google-local/promote-google-cloud-storage-moved' into
promoted-google-cloud-storage
Posted by ga...@apache.org.
Merge remote-tracking branch 'jclouds-labs-google-local/promote-google-cloud-storage-moved' into promoted-google-cloud-storage
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/6efc894e
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/6efc894e
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/6efc894e
Branch: refs/heads/master
Commit: 6efc894e3fe9d6cc4958360ba0811aec6c279b30
Parents: 1c6c36b b671d2c
Author: Andrew Gaul <an...@gaul.org>
Authored: Sat May 6 19:28:48 2017 -0700
Committer: Andrew Gaul <an...@gaul.org>
Committed: Sat May 6 19:28:48 2017 -0700
----------------------------------------------------------------------
providers/google-cloud-storage/README.md | 51 ++
providers/google-cloud-storage/pom.xml | 172 ++++++
.../GoogleCloudStorageApi.java | 77 +++
.../GoogleCloudStorageApiMetadata.java | 96 ++++
.../GoogleCloudStorageFallbacks.java | 34 ++
.../GoogleCloudStorageProviderMetadata.java | 72 +++
.../binders/MultipartUploadBinder.java | 69 +++
.../binders/UploadBinder.java | 38 ++
.../GoogleCloudStorageBlobRequestSigner.java | 153 ++++++
.../blobstore/GoogleCloudStorageBlobStore.java | 468 ++++++++++++++++
...oogleCloudStorageBlobStoreContextModule.java | 44 ++
.../functions/BlobMetadataToObjectTemplate.java | 56 ++
...ListContainerOptionsToListObjectOptions.java | 58 ++
.../functions/BucketToStorageMetadata.java | 45 ++
.../functions/ObjectListToStorageMetadata.java | 58 ++
.../functions/ObjectToBlobMetadata.java | 59 ++
.../config/GoogleCloudStorageHttpApiModule.java | 63 +++
.../config/GoogleCloudStorageOAuthScopes.java | 56 ++
.../config/GoogleCloudStorageParserModule.java | 90 ++++
.../googlecloudstorage/domain/Bucket.java | 181 +++++++
.../domain/BucketAccessControls.java | 122 +++++
.../domain/DomainResourceReferences.java | 105 ++++
.../domain/GoogleCloudStorageObject.java | 79 +++
.../domain/ListPageWithPrefixes.java | 58 ++
.../domain/ObjectAccessControls.java | 133 +++++
.../googlecloudstorage/domain/Owner.java | 34 ++
.../googlecloudstorage/domain/ProjectTeam.java | 55 ++
.../domain/ResumableUpload.java | 43 ++
.../domain/RewriteResponse.java | 41 ++
.../templates/BucketAccessControlsTemplate.java | 33 ++
.../domain/templates/BucketTemplate.java | 172 ++++++
.../domain/templates/ComposeObjectTemplate.java | 123 +++++
.../templates/ObjectAccessControlsTemplate.java | 33 ++
.../domain/templates/ObjectTemplate.java | 178 +++++++
.../features/BucketAccessControlsApi.java | 172 ++++++
.../googlecloudstorage/features/BucketApi.java | 281 ++++++++++
.../DefaultObjectAccessControlsApi.java | 180 +++++++
.../features/ObjectAccessControlsApi.java | 317 +++++++++++
.../googlecloudstorage/features/ObjectApi.java | 532 +++++++++++++++++++
.../features/ResumableUploadApi.java | 185 +++++++
.../GoogleCloudStorageErrorHandler.java | 75 +++
.../GoogleCloudStorageRedirectRetryHandler.java | 48 ++
.../options/ComposeObjectOptions.java | 63 +++
.../options/CopyObjectOptions.java | 153 ++++++
.../options/DeleteBucketOptions.java | 51 ++
.../options/DeleteObjectOptions.java | 88 +++
.../options/GetBucketOptions.java | 61 +++
.../options/GetObjectOptions.java | 88 +++
.../options/InsertBucketOptions.java | 53 ++
.../options/InsertObjectOptions.java | 115 ++++
.../options/ListObjectOptions.java | 82 +++
.../googlecloudstorage/options/ListOptions.java | 53 ++
.../options/RewriteObjectOptions.java | 155 ++++++
.../options/UpdateBucketOptions.java | 71 +++
.../options/UpdateObjectOptions.java | 100 ++++
.../parser/ParseToPayloadEnclosing.java | 33 ++
.../parser/ParseToResumableUpload.java | 72 +++
.../reference/GoogleCloudStorageConstants.java | 37 ++
.../GoogleCloudStorageProviderMetadataTest.java | 34 ++
...ogleCloudStorageBlobIntegrationLiveTest.java | 324 +++++++++++
.../GoogleCloudStorageBlobLiveTest.java | 115 ++++
.../GoogleCloudStorageBlobSignerLiveTest.java | 36 ++
...loudStorageContainerIntegrationLiveTest.java | 106 ++++
.../GoogleCloudStorageContainerLiveTest.java | 36 ++
.../BucketAccessControlsApiExpectTest.java | 188 +++++++
.../BucketAccessControlsApiLiveTest.java | 107 ++++
.../features/BucketApiExpectTest.java | 258 +++++++++
.../features/BucketApiLiveTest.java | 301 +++++++++++
...efaultObjectAccessControlsApiExpectTest.java | 219 ++++++++
.../DefaultObjectAccessControlsApiLiveTest.java | 110 ++++
.../ObjectAccessControlsApiExpectTest.java | 276 ++++++++++
.../features/ObjectApiLiveTest.java | 478 +++++++++++++++++
.../features/ObjectApiMockTest.java | 303 +++++++++++
.../features/ResumableUploadApiLiveTest.java | 177 ++++++
.../GoogleCloudStorageErrorHandlerTest.java | 107 ++++
.../BaseGoogleCloudStorageApiExpectTest.java | 30 ++
.../BaseGoogleCloudStorageApiLiveTest.java | 54 ++
.../BaseGoogleCloudStorageApiMockTest.java | 138 +++++
.../BaseGoogleCloudStorageExpectTest.java | 178 +++++++
.../BaseGoogleCloudStorageParseTest.java | 38 ++
.../parse/BucketAclGetTest.java | 39 ++
.../parse/BucketAclInsertTest.java | 42 ++
.../parse/BucketAclListTest.java | 55 ++
.../parse/BucketAclUpdateTest.java | 39 ++
.../parse/BucketUpdateTest.java | 57 ++
.../parse/DefaultObjectAclGetTest.java | 42 ++
.../parse/DefaultObjectAclInsertTest.java | 38 ++
.../parse/DefaultObjectAclListTest.java | 50 ++
.../parse/FullBucketGetTest.java | 80 +++
.../parse/NoAclBucketListTest.java | 61 +++
.../parse/NoAclBucketTest.java | 57 ++
.../parse/ObjectAclGetTest.java | 49 ++
.../parse/ObjectAclInsertTest.java | 44 ++
.../parse/ObjectAclListTest.java | 51 ++
.../parse/ObjectAclUpdateTest.java | 40 ++
.../parse/ParseGoogleCloudStorageObject.java | 66 +++
.../ParseGoogleCloudStorageObjectListTest.java | 99 ++++
.../parse/ParseObjectRewriteResponse.java | 72 +++
.../src/test/resources/bucket_acl_get.json | 9 +
.../resources/bucket_acl_insert_initial.json | 4 +
.../resources/bucket_acl_insert_response.json | 9 +
.../src/test/resources/bucket_acl_list.json | 27 +
.../resources/bucket_acl_update_initial.json | 4 +
.../resources/bucket_acl_update_response.json | 9 +
.../bucket_insert_request_payload.json | 3 +
.../bucket_update_request_payload.json | 12 +
.../test/resources/bucket_update_response.json | 15 +
.../test/resources/default_object_acl_get.json | 10 +
...fault_object_acl_insert_request_payload.json | 4 +
.../default_object_acl_insert_response.json | 6 +
.../test/resources/default_object_acl_list.json | 15 +
.../default_object_acl_update_initial.json | 6 +
...fault_object_acl_update_request_payload.json | 5 +
.../src/test/resources/full_bucket_get.json | 54 ++
.../resources/list_bucket_with_options.json | 21 +
.../src/test/resources/logback.xml | 83 +++
.../src/test/resources/no_acl_bucket.json | 15 +
.../src/test/resources/no_acl_bucket_list.json | 21 +
.../src/test/resources/object_acl_get.json | 15 +
.../object_acl_insert_request_payload.json | 4 +
.../resources/object_acl_insert_response.json | 10 +
.../src/test/resources/object_acl_list.json | 17 +
.../resources/object_acl_request_payload.json | 4 +
.../resources/object_acl_update_initial.json | 9 +
.../resources/object_acl_update_response.json | 9 +
.../test/resources/object_compose_request.json | 23 +
.../src/test/resources/object_encoded_get.json | 21 +
.../src/test/resources/object_get.json | 21 +
.../src/test/resources/object_list.json | 47 ++
.../src/test/resources/object_rewrite.json | 28 +
130 files changed, 11348 insertions(+)
----------------------------------------------------------------------
[22/50] jclouds git commit: GCS delimiter test should not be special
cased.
Posted by ga...@apache.org.
GCS delimiter test should not be special cased.
GCS delimiter implementation now works similarly to the other
providers (fixed in a prior commit) and we do not need to special case
the test.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/06125793
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/06125793
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/06125793
Branch: refs/heads/master
Commit: 06125793d24a405c42a540af3be6523f9ffa6316
Parents: 2e1e109
Author: Timur Alperovich <ti...@gmail.com>
Authored: Tue Sep 29 21:27:35 2015 -0700
Committer: Timur Alperovich <ti...@gmail.com>
Committed: Tue Sep 29 21:29:08 2015 -0700
----------------------------------------------------------------------
...CloudStorageContainerIntegrationLiveTest.java | 19 -------------------
1 file changed, 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/06125793/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
index 0850cd7..4caac24 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
@@ -19,7 +19,6 @@ package org.jclouds.googlecloudstorage.blobstore.integration;
import static com.google.common.collect.Iterables.get;
import static org.jclouds.blobstore.options.ListContainerOptions.Builder.maxResults;
import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
import java.io.IOException;
import java.util.Properties;
@@ -30,7 +29,6 @@ import org.jclouds.blobstore.domain.BlobMetadata;
import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
import org.jclouds.blobstore.integration.internal.BaseContainerIntegrationTest;
-import org.jclouds.blobstore.options.ListContainerOptions;
import org.jclouds.googlecloud.internal.TestProperties;
import org.testng.SkipException;
import org.testng.annotations.Test;
@@ -78,23 +76,6 @@ public class GoogleCloudStorageContainerIntegrationLiveTest extends BaseContaine
}
}
- /** Google Cloud Storage lists prefixes and objects in two different lists */
- @Override
- public void testListRootUsesDelimiter() throws InterruptedException {
- String containerName = getContainerName();
- try {
- String prefix = "rootdelimiter";
- addTenObjectsUnderPrefix(containerName, prefix);
- add15UnderRoot(containerName);
- PageSet<? extends StorageMetadata> container = view.getBlobStore().list(containerName,
- new ListContainerOptions());
- assertNull(container.getNextMarker());
- assertEquals(container.size(), 15);
- } finally {
- returnContainer(containerName);
- }
- }
-
@Override
public void testDirectory() throws InterruptedException {
// TODO: testDirectory fails when querying blob with name "directory/directory"; querying "directory%2Fdirectory"
[12/50] jclouds git commit: add rewrite to ObjectApi
Posted by ga...@apache.org.
add rewrite to ObjectApi
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/2abac7c1
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/2abac7c1
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/2abac7c1
Branch: refs/heads/master
Commit: 2abac7c11c0ae0995b089114b41aaaae6ee2aff3
Parents: 15a5dad
Author: Daniel Broudy <br...@google.com>
Authored: Tue Jun 23 11:10:13 2015 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Tue Jun 23 16:51:32 2015 -0700
----------------------------------------------------------------------
.../domain/RewriteResponse.java | 41 +++++
.../googlecloudstorage/features/ObjectApi.java | 51 ++++++
.../options/RewriteObjectOptions.java | 155 +++++++++++++++++++
.../features/ObjectApiLiveTest.java | 17 ++
.../features/ObjectApiMockTest.java | 21 +++
.../parse/ParseObjectRewriteResponse.java | 72 +++++++++
.../src/test/resources/object_rewrite.json | 28 ++++
7 files changed, 385 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2abac7c1/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/RewriteResponse.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/RewriteResponse.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/RewriteResponse.java
new file mode 100644
index 0000000..8f37193
--- /dev/null
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/RewriteResponse.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.googlecloudstorage.domain;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+import com.google.auto.value.AutoValue;
+
+@AutoValue
+public abstract class RewriteResponse {
+ // TODO(broudy): should these be UnsignedLong?
+ public abstract long totalBytesRewritten();
+ public abstract long objectSize();
+ public abstract boolean done();
+ @Nullable public abstract String rewriteToken();
+ public abstract GoogleCloudStorageObject resource();
+
+ @SerializedNames({"totalBytesRewritten", "objectSize", "done", "rewriteToken", "resource"})
+ public static RewriteResponse create(long totalBytesRewritten, long objectSize,
+ boolean done, String rewriteToken, GoogleCloudStorageObject resource) {
+ return new AutoValue_RewriteResponse(totalBytesRewritten, objectSize, done, rewriteToken, resource);
+ }
+
+ RewriteResponse() {
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2abac7c1/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
index f91a410..ff8dfde 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
@@ -35,6 +35,7 @@ import org.jclouds.googlecloudstorage.binders.MultipartUploadBinder;
import org.jclouds.googlecloudstorage.binders.UploadBinder;
import org.jclouds.googlecloudstorage.domain.GoogleCloudStorageObject;
import org.jclouds.googlecloudstorage.domain.ListPageWithPrefixes;
+import org.jclouds.googlecloudstorage.domain.RewriteResponse;
import org.jclouds.googlecloudstorage.domain.templates.ComposeObjectTemplate;
import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate;
import org.jclouds.googlecloudstorage.options.ComposeObjectOptions;
@@ -43,6 +44,7 @@ import org.jclouds.googlecloudstorage.options.DeleteObjectOptions;
import org.jclouds.googlecloudstorage.options.GetObjectOptions;
import org.jclouds.googlecloudstorage.options.InsertObjectOptions;
import org.jclouds.googlecloudstorage.options.ListObjectOptions;
+import org.jclouds.googlecloudstorage.options.RewriteObjectOptions;
import org.jclouds.googlecloudstorage.options.UpdateObjectOptions;
import org.jclouds.googlecloudstorage.parser.ParseToPayloadEnclosing;
import org.jclouds.http.options.HttpRequestOptions;
@@ -473,4 +475,53 @@ public interface ObjectApi {
GoogleCloudStorageObject multipartUpload(@PathParam("bucket") String bucketName,
@PayloadParam("template") ObjectTemplate objectTemplate,
@PayloadParam("payload") Payload payload);
+
+ /**
+ * Rewrites a source object to a destination object.
+ *
+ * @param destinationBucket
+ * Name of the bucket in which the object to be stored
+ * @param destinationObject
+ * Name of the new object.
+ * @param sourceBucket
+ * Name of the bucket in which to find the source object.
+ * @param sourceObject
+ * Name of the source object.
+ *
+ * @return a {@link RewriteResponse}
+ */
+ @Named("Object:rewrite")
+ @POST
+ @Consumes(APPLICATION_JSON)
+ @Path("/storage/v1/b/{sourceBucket}/o/{sourceObject}/rewriteTo/b/{destinationBucket}/o/{destinationObject}")
+ RewriteResponse rewriteObjects(@PathParam("destinationBucket") String destinationBucket,
+ @PathParam("destinationObject") String destinationObject,
+ @PathParam("sourceBucket") String sourceBucket,
+ @PathParam("sourceObject") String sourceObject);
+
+ /**
+ * Rewrites a source object to a destination object.
+ *
+ * @param destinationBucket
+ * Name of the bucket in which the object to be stored
+ * @param destinationObject
+ * Name of the new object.
+ * @param sourceBucket
+ * Name of the bucket in which to find the source object.
+ * @param sourceObject
+ * Name of the source object.
+ * @param options
+ * Supply an {@link RewriteObjectOptions}
+ *
+ * @return a {@link RewriteResponse}
+ */
+ @Named("Object:rewrite")
+ @POST
+ @Consumes(APPLICATION_JSON)
+ @Path("/storage/v1/b/{sourceBucket}/o/{sourceObject}/rewriteTo/b/{destinationBucket}/o/{destinationObject}")
+ RewriteResponse rewriteObjects(@PathParam("destinationBucket") String destinationBucket,
+ @PathParam("destinationObject") String destinationObject,
+ @PathParam("sourceBucket") String sourceBucket,
+ @PathParam("sourceObject") String sourceObject,
+ RewriteObjectOptions options);
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2abac7c1/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/RewriteObjectOptions.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/RewriteObjectOptions.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/RewriteObjectOptions.java
new file mode 100644
index 0000000..0e93546
--- /dev/null
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/RewriteObjectOptions.java
@@ -0,0 +1,155 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.googlecloudstorage.options;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.PredefinedAcl;
+import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Projection;
+import org.jclouds.http.options.BaseHttpRequestOptions;
+
+/**
+ * Allows to optionally specify ifMetagenerationMatch,ifMetagenerationNotMatch and projection which used in Bucket
+ */
+public class RewriteObjectOptions extends BaseHttpRequestOptions {
+
+ // TODO(broudy): Refactor these redundant options out of every options class.
+
+ public RewriteObjectOptions ifGenerationMatch(Long ifGenerationMatch) {
+ this.queryParameters.put("ifGenerationMatch", checkNotNull(ifGenerationMatch, "ifGenerationMatch") + "");
+ return this;
+ }
+
+ public RewriteObjectOptions ifGenerationNotMatch(Long ifGenerationNotMatch) {
+ this.queryParameters.put("ifGenerationNotMatch", checkNotNull(ifGenerationNotMatch, "ifGenerationNotMatch") + "");
+ return this;
+ }
+
+ public RewriteObjectOptions ifMetagenerationMatch(Long ifMetagenerationMatch) {
+ this.queryParameters.put("ifMetagenerationMatch", checkNotNull(ifMetagenerationMatch, "ifMetagenerationMatch")
+ + "");
+ return this;
+ }
+
+ public RewriteObjectOptions ifMetagenerationNotMatch(Long ifMetagenerationNotMatch) {
+ this.queryParameters.put("ifMetagenerationNotMatch",
+ checkNotNull(ifMetagenerationNotMatch, "ifMetagenerationNotMatch") + "");
+ return this;
+ }
+ public RewriteObjectOptions ifSourceGenerationMatch(Long ifSourceGenerationMatch) {
+ this.queryParameters.put("ifSourceGenerationMatch", checkNotNull(ifSourceGenerationMatch, "ifSourceGenerationMatch") + "");
+ return this;
+ }
+
+ public RewriteObjectOptions ifSourceGenerationNotMatch(Long ifSourceGenerationNotMatch) {
+ this.queryParameters.put("ifSourceGenerationNotMatch", checkNotNull(ifSourceGenerationNotMatch, "ifSourceGenerationNotMatch") + "");
+ return this;
+ }
+
+ public RewriteObjectOptions ifSourceMetagenerationMatch(Long ifSourceMetagenerationMatch) {
+ this.queryParameters.put("ifSourceMetagenerationMatch", checkNotNull(ifSourceMetagenerationMatch, "ifSourceMetagenerationMatch")
+ + "");
+ return this;
+ }
+
+ public RewriteObjectOptions ifSourceMetagenerationNotMatch(Long ifSourceMetagenerationNotMatch) {
+ this.queryParameters.put("ifSourceMetagenerationNotMatch",
+ checkNotNull(ifSourceMetagenerationNotMatch, "ifSourceMetagenerationNotMatch") + "");
+ return this;
+ }
+
+ public RewriteObjectOptions sourceGeneration(Long sourceGeneration) {
+ this.queryParameters.put("sourceGeneration", checkNotNull(sourceGeneration, "sourceGeneration") + "");
+ return this;
+ }
+
+ public RewriteObjectOptions predefinedAcl(PredefinedAcl predefinedAcl) {
+ this.queryParameters.put("predefinedAcl", checkNotNull(predefinedAcl, "predefinedAcl").toString());
+ return this;
+ }
+
+ public RewriteObjectOptions projection(Projection projection) {
+ this.queryParameters.put("projection", checkNotNull(projection, "projection").toString());
+ return this;
+ }
+
+ public RewriteObjectOptions rewriteToken(String rewriteToken) {
+ this.queryParameters.put("rewriteToken", checkNotNull(rewriteToken, "rewriteToken").toString());
+ return this;
+ }
+
+ public RewriteObjectOptions maxBytesRewrittenPerCall(Long maxBytesRewrittenPerCall) {
+ this.queryParameters.put("maxBytesRewrittenPerCall",
+ checkNotNull(maxBytesRewrittenPerCall, "maxBytesRewrittenPerCall").toString());
+ return this;
+ }
+
+ public static class Builder {
+
+ public RewriteObjectOptions ifGenerationMatch(Long ifGenerationMatch) {
+ return new RewriteObjectOptions().ifGenerationMatch(ifGenerationMatch);
+ }
+
+ public RewriteObjectOptions ifGenerationNotMatch(Long ifGenerationNotMatch) {
+ return new RewriteObjectOptions().ifGenerationNotMatch(ifGenerationNotMatch);
+ }
+
+ public RewriteObjectOptions ifMetagenerationMatch(Long ifMetagenerationMatch) {
+ return new RewriteObjectOptions().ifMetagenerationMatch(ifMetagenerationMatch);
+ }
+
+ public RewriteObjectOptions ifMetagenerationNotMatch(Long ifMetagenerationNotMatch) {
+ return new RewriteObjectOptions().ifMetagenerationNotMatch(ifMetagenerationNotMatch);
+ }
+
+ public RewriteObjectOptions ifSourceGenerationMatch(Long ifSourceGenerationMatch) {
+ return new RewriteObjectOptions().ifSourceGenerationMatch(ifSourceGenerationMatch);
+ }
+
+ public RewriteObjectOptions ifSourceGenerationNotMatch(Long ifSourceGenerationNotMatch) {
+ return new RewriteObjectOptions().ifSourceGenerationNotMatch(ifSourceGenerationNotMatch);
+ }
+
+ public RewriteObjectOptions ifSourceMetagenerationMatch(Long ifSourceMetagenerationMatch) {
+ return new RewriteObjectOptions().ifSourceMetagenerationMatch(ifSourceMetagenerationMatch);
+ }
+
+ public RewriteObjectOptions ifSourceMetagenerationNotMatch(Long ifSourceMetagenerationNotMatch) {
+ return new RewriteObjectOptions().ifSourceMetagenerationNotMatch(ifSourceMetagenerationNotMatch);
+ }
+
+ public RewriteObjectOptions sourceGeneration(Long sourceGeneration) {
+ return new RewriteObjectOptions().sourceGeneration(sourceGeneration);
+ }
+
+ public RewriteObjectOptions predefinedAcl(PredefinedAcl predefinedAcl) {
+ return new RewriteObjectOptions().predefinedAcl(predefinedAcl);
+ }
+
+ public RewriteObjectOptions projection(Projection projection) {
+ return new RewriteObjectOptions().projection(projection);
+ }
+
+ public RewriteObjectOptions rewriteToken(String rewriteToken) {
+ return new RewriteObjectOptions().rewriteToken(rewriteToken);
+ }
+
+ public RewriteObjectOptions maxBytesRewrittenPerCall(Long maxBytesRewrittenPerCall) {
+ return new RewriteObjectOptions().maxBytesRewrittenPerCall(maxBytesRewrittenPerCall);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2abac7c1/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
index 44232a1..4bf48cb 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
@@ -37,6 +37,7 @@ import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Projection
import org.jclouds.googlecloudstorage.domain.GoogleCloudStorageObject;
import org.jclouds.googlecloudstorage.domain.ListPageWithPrefixes;
import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
+import org.jclouds.googlecloudstorage.domain.RewriteResponse;
import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.googlecloudstorage.domain.templates.ComposeObjectTemplate;
import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate;
@@ -76,6 +77,7 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
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 static final String REWRITE_OBJECT_NAME = "rewriteObject.txt";
private PayloadEnclosing testPayload;
private Long RANDOM_LONG = 100L;
@@ -124,6 +126,20 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
}
@Test(groups = "live", dependsOnMethods = "testSimpleUpload")
+ public void testRewrite() throws IOException {
+ GoogleCloudStorageObject gcsObject = api().getObject(BUCKET_NAME, UPLOAD_OBJECT_NAME);
+ System.out.println(gcsObject);
+
+ RewriteResponse response = api().rewriteObjects(BUCKET_NAME, REWRITE_OBJECT_NAME, BUCKET_NAME, UPLOAD_OBJECT_NAME);
+ assertNotNull(response);
+ assertTrue(response.done());
+ assertEquals(response.objectSize(), 512);
+ assertEquals(response.totalBytesRewritten(), 512);
+ assertEquals(response.rewriteToken(), null);
+ assertNotNull(response.resource());
+ }
+
+ @Test(groups = "live", dependsOnMethods = "testRewrite")
public void testDownload() throws IOException {
PayloadEnclosing impl = api().download(BUCKET_NAME, UPLOAD_OBJECT_NAME);
ContentMetadata meta = impl.getPayload().getContentMetadata();
@@ -443,6 +459,7 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
assertFalse(api().deleteObject(BUCKET_NAME, UPLOAD_OBJECT_NAME));
assertTrue(api().deleteObject(BUCKET_NAME, UPLOAD_OBJECT_NAME2));
assertTrue(api().deleteObject(BUCKET_NAME, MULTIPART_UPLOAD_OBJECT));
+ assertTrue(api().deleteObject(BUCKET_NAME, REWRITE_OBJECT_NAME));
assertFalse(api().deleteObject(BUCKET_NAME, NONEXISTENT_OBJECT_NAME));
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2abac7c1/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
index d30deac..9906a90 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
@@ -34,8 +34,10 @@ import org.jclouds.googlecloudstorage.options.CopyObjectOptions;
import org.jclouds.googlecloudstorage.options.GetObjectOptions;
import org.jclouds.googlecloudstorage.options.InsertObjectOptions;
import org.jclouds.googlecloudstorage.options.ListObjectOptions;
+import org.jclouds.googlecloudstorage.options.RewriteObjectOptions;
import org.jclouds.googlecloudstorage.parse.ParseGoogleCloudStorageObject;
import org.jclouds.googlecloudstorage.parse.ParseGoogleCloudStorageObjectListTest;
+import org.jclouds.googlecloudstorage.parse.ParseObjectRewriteResponse;
import org.jclouds.http.internal.PayloadEnclosingImpl;
import org.jclouds.io.PayloadEnclosing;
import org.testng.annotations.Test;
@@ -259,6 +261,25 @@ public class ObjectApiMockTest extends BaseGoogleCloudStorageApiMockTest {
//TODO: this should be a more robust assertion about the formatting of the payload
}
+ public void rewrite() throws Exception {
+ server.enqueue(jsonResponse("/object_rewrite.json"));
+
+ assertEquals(objectApi().rewriteObjects("destinationBucket", "destinationObject", "sourceBucket", "sourceObject"),
+ new ParseObjectRewriteResponse().expected());
+
+ assertSent(server, "POST", "/storage/v1/b/sourceBucket/o/sourceObject/rewriteTo/b/destinationBucket/o/destinationObject");
+ }
+
+ public void rewriteWithOptions() throws Exception {
+ server.enqueue(jsonResponse("/object_rewrite.json"));
+
+ RewriteObjectOptions options = new RewriteObjectOptions.Builder().rewriteToken("rewriteToken");
+ assertEquals(objectApi().rewriteObjects("destinationBucket", "destinationObject", "sourceBucket", "sourceObject", options),
+ new ParseObjectRewriteResponse().expected());
+
+ assertSent(server, "POST",
+ "/storage/v1/b/sourceBucket/o/sourceObject/rewriteTo/b/destinationBucket/o/destinationObject?rewriteToken=rewriteToken");
+ }
public ObjectApi objectApi(){
return api().getObjectApi();
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2abac7c1/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ParseObjectRewriteResponse.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ParseObjectRewriteResponse.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ParseObjectRewriteResponse.java
new file mode 100644
index 0000000..2b4a2e3
--- /dev/null
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ParseObjectRewriteResponse.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.googlecloudstorage.parse;
+
+import java.net.URI;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.core.MediaType;
+
+import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.StorageClass;
+import org.jclouds.googlecloudstorage.domain.Owner;
+import org.jclouds.googlecloudstorage.domain.GoogleCloudStorageObject;
+import org.jclouds.googlecloudstorage.domain.RewriteResponse;
+import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageParseTest;
+import org.testng.annotations.Test;
+
+@Test(groups = "unit", testName = "ParseObjectRewriteResponse")
+public class ParseObjectRewriteResponse extends BaseGoogleCloudStorageParseTest<RewriteResponse> {
+
+ @Override
+ public String resource() {
+ return "/object_rewrite.json";
+ }
+
+ @Override
+ @Consumes(MediaType.APPLICATION_JSON)
+ public RewriteResponse expected() {
+ return RewriteResponse.create(16, // totalBytesRewritten
+ 16, // objectSize
+ true, // done
+ "rewriteToken", // rewriteToken
+ GoogleCloudStorageObject.create(
+ "test/file_name/1000", //id
+ URI.create("https://www.googleapis.com/storage/v1/b/test/o/file_name"), //selfLink
+ "etag", // etag
+ "file_name", // name
+ "test", // bucket
+ (long) 1000, //generation
+ (long) 8, // metageneration
+ "application/x-tar", // contentType
+ parse("2014-09-27T00:01:44.819"), // updated
+ null, // timeDeleted
+ StorageClass.STANDARD, // storageClass
+ (long) 1000, //size,
+ "md5Hash", // md5Hash
+ URI.create("https://www.googleapis.com/download/storage/v1/b/test/o/file_name?generation=1000&alt=media"), // mediaLink
+ null, // metadata
+ null, // contentEncoding
+ null, // contentDisposition,
+ null, // contentLanguage
+ null, // cacheControl
+ null, // acl
+ Owner.create("entity", "entityId"), // owner,
+ "crc32c", // crc32c,
+ null) //componentCount
+ );
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2abac7c1/providers/google-cloud-storage/src/test/resources/object_rewrite.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/object_rewrite.json b/providers/google-cloud-storage/src/test/resources/object_rewrite.json
new file mode 100644
index 0000000..189b9b8
--- /dev/null
+++ b/providers/google-cloud-storage/src/test/resources/object_rewrite.json
@@ -0,0 +1,28 @@
+{
+ "kind": "storage#rewriteResponse",
+ "totalBytesRewritten": "16",
+ "objectSize": "16",
+ "rewriteToken": "rewriteToken",
+ "done": true,
+ "resource": {
+ "kind": "storage#object",
+ "id": "test/file_name/1000",
+ "selfLink": "https://www.googleapis.com/storage/v1/b/test/o/file_name",
+ "name": "file_name",
+ "bucket": "test",
+ "generation": "1000",
+ "metageneration": "8",
+ "contentType": "application/x-tar",
+ "updated": "2014-09-27T00:01:44.819",
+ "storageClass": "STANDARD",
+ "size": "1000",
+ "md5Hash": "md5Hash",
+ "mediaLink": "https://www.googleapis.com/download/storage/v1/b/test/o/file_name?generation=1000&alt=media",
+ "owner": {
+ "entity": "entity",
+ "entityId": "entityId"
+ },
+ "crc32c": "crc32c",
+ "etag": "etag"
+ }
+}
\ No newline at end of file
[08/50] jclouds git commit: JCLOUDS-894: Fake portable multipart
upload for GCS
Posted by ga...@apache.org.
JCLOUDS-894: Fake portable multipart upload for GCS
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/bb62abfa
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/bb62abfa
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/bb62abfa
Branch: refs/heads/master
Commit: bb62abfaa594fff42f2f9ed3087c3b0afc69d47b
Parents: fb4c651
Author: Andrew Gaul <ga...@apache.org>
Authored: Sun Jun 7 22:30:59 2015 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sun Jun 7 22:32:52 2015 -0700
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/bb62abfa/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 80a3c83..4ccc8f2 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
@@ -70,6 +70,7 @@ import org.jclouds.googlecloudstorage.options.ListObjectOptions;
import org.jclouds.http.HttpResponseException;
import org.jclouds.io.ContentMetadata;
import org.jclouds.io.Payload;
+import org.jclouds.io.PayloadSlicer;
import com.google.common.base.Charsets;
import com.google.common.base.Function;
@@ -92,14 +93,14 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
private final Supplier<String> projectId;
@Inject GoogleCloudStorageBlobStore(BlobStoreContext context, BlobUtils blobUtils, Supplier<Location> defaultLocation,
- @Memoized Supplier<Set<? extends Location>> locations, GoogleCloudStorageApi api,
+ @Memoized Supplier<Set<? extends Location>> locations, PayloadSlicer slicer, GoogleCloudStorageApi api,
BucketToStorageMetadata bucketToStorageMetadata, ObjectToBlobMetadata objectToBlobMetadata,
ObjectListToStorageMetadata objectListToStorageMetadata,
Provider<FetchBlobMetadata> fetchBlobMetadataProvider,
BlobMetadataToObjectTemplate blobMetadataToObjectTemplate,
BlobStoreListContainerOptionsToListObjectOptions listContainerOptionsToListObjectOptions,
Provider<MultipartUploadStrategy> multipartUploadStrategy, @CurrentProject Supplier<String> projectId) {
- super(context, blobUtils, defaultLocation, locations);
+ super(context, blobUtils, defaultLocation, locations, slicer);
this.api = api;
this.bucketToStorageMetadata = bucketToStorageMetadata;
this.objectToBlobMetadata = objectToBlobMetadata;
[39/50] jclouds git commit: JCLOUDS-1028: Configure idempotent methods
Posted by ga...@apache.org.
JCLOUDS-1028: Configure idempotent methods
Enable for GCS.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/230448a4
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/230448a4
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/230448a4
Branch: refs/heads/master
Commit: 230448a454f1be583f70af48846b7a9c1c6b58c0
Parents: 5baa49d
Author: Andrew Gaul <ga...@apache.org>
Authored: Wed Jun 15 16:38:53 2016 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Wed Jun 15 16:38:53 2016 -0700
----------------------------------------------------------------------
.../jclouds/googlecloudstorage/GoogleCloudStorageApiMetadata.java | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/230448a4/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/GoogleCloudStorageApiMetadata.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/GoogleCloudStorageApiMetadata.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/GoogleCloudStorageApiMetadata.java
index 401b617..884edd2 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/GoogleCloudStorageApiMetadata.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/GoogleCloudStorageApiMetadata.java
@@ -16,6 +16,7 @@
*/
package org.jclouds.googlecloudstorage;
+import static org.jclouds.Constants.PROPERTY_IDEMPOTENT_METHODS;
import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL;
import static org.jclouds.googlecloudstorage.reference.GoogleCloudStorageConstants.OPERATION_COMPLETE_INTERVAL;
import static org.jclouds.googlecloudstorage.reference.GoogleCloudStorageConstants.OPERATION_COMPLETE_TIMEOUT;
@@ -60,6 +61,7 @@ public class GoogleCloudStorageApiMetadata extends BaseHttpApiMetadata<GoogleClo
properties.put(PROPERTY_SESSION_INTERVAL, 3600);
properties.put(OPERATION_COMPLETE_INTERVAL, 2000);
properties.put(OPERATION_COMPLETE_TIMEOUT, 600000);
+ properties.setProperty(PROPERTY_IDEMPOTENT_METHODS, "DELETE,GET,HEAD,OPTIONS,POST,PUT");
return properties;
}
[16/50] jclouds git commit: Move the skipped tests.
Posted by ga...@apache.org.
Move the skipped tests.
Since the delimiter and prefix tests were moved to
BaseContainerIntegrationTest (from BaseContainerLiveTest), need to do
the same for google.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/428d9095
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/428d9095
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/428d9095
Branch: refs/heads/master
Commit: 428d909562af035206fc4ce168bafb4b2835903e
Parents: e492ba6
Author: Timur Alperovich <ti...@gmail.com>
Authored: Tue Jul 14 15:06:16 2015 -0700
Committer: Timur Alperovich <ti...@gmail.com>
Committed: Tue Jul 14 15:06:16 2015 -0700
----------------------------------------------------------------------
.../GoogleCloudStorageContainerIntegrationLiveTest.java | 10 ++++++++++
.../integration/GoogleCloudStorageContainerLiveTest.java | 11 -----------
2 files changed, 10 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/428d9095/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
index c129ae8..d4f5fb8 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
@@ -105,4 +105,14 @@ public class GoogleCloudStorageContainerIntegrationLiveTest extends BaseContaine
public void testListMarkerAfterLastKey() throws Exception {
throw new SkipException("cannot specify arbitrary markers");
}
+
+ @Override
+ public void testContainerListWithPrefix() {
+ throw new SkipException("Prefix option has not been plumbed down to GCS");
+ }
+
+ @Override
+ public void testDelimiterList() {
+ throw new SkipException("Prefix option has not been plumbed down to GCS");
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/428d9095/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java
index 490ee35..559713b 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java
@@ -20,7 +20,6 @@ import java.util.Properties;
import org.jclouds.blobstore.integration.internal.BaseContainerLiveTest;
import org.jclouds.googlecloud.internal.TestProperties;
-import org.testng.SkipException;
import org.testng.annotations.Test;
@Test(groups = { "live" })
@@ -34,14 +33,4 @@ public class GoogleCloudStorageContainerLiveTest extends BaseContainerLiveTest {
TestProperties.setGoogleCredentialsFromJson(provider);
return TestProperties.apply(provider, super.setupProperties());
}
-
- @Override
- public void testContainerListWithPrefix() {
- throw new SkipException("Prefix option has not been plumbed down to GCS");
- }
-
- @Override
- public void testDelimiterList() {
- throw new SkipException("Prefix option has not been plumbed down to GCS");
- }
}
[06/50] jclouds git commit: Fix
DefaultObjectAccessControlsApiLiveTest, ResumableUploadApiLiveTest,
ObjectApiLiveTest
Posted by ga...@apache.org.
Fix DefaultObjectAccessControlsApiLiveTest, ResumableUploadApiLiveTest, ObjectApiLiveTest
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/3d9258f7
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/3d9258f7
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/3d9258f7
Branch: refs/heads/master
Commit: 3d9258f75adf8f0b8258c14c88c1a73316f7dad3
Parents: 2585624
Author: Daniel Broudy <br...@google.com>
Authored: Mon Jun 1 17:18:33 2015 -0700
Committer: Daniel Broudy <br...@google.com>
Committed: Mon Jun 1 17:31:45 2015 -0700
----------------------------------------------------------------------
.../features/DefaultObjectAccessControlsApiLiveTest.java | 2 +-
.../googlecloudstorage/features/ObjectApiLiveTest.java | 8 +-------
.../features/ResumableUploadApiLiveTest.java | 2 +-
3 files changed, 3 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/3d9258f7/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
index 55c45bf..d2697d4 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
@@ -32,7 +32,7 @@ import org.testng.annotations.Test;
public class DefaultObjectAccessControlsApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
- protected static final String BUCKET_NAME = "jcloudstestbucketdefaultoacl" + UUID.randomUUID();
+ protected static final String BUCKET_NAME = "jcloudsdefaultoacltest" + UUID.randomUUID();
private DefaultObjectAccessControlsApi api() {
return api.getDefaultObjectAccessControlsApi();
http://git-wip-us.apache.org/repos/asf/jclouds/blob/3d9258f7/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
index a5728f8..3cef893 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
@@ -63,7 +63,6 @@ import com.beust.jcommander.internal.Lists;
import com.google.common.collect.ImmutableMap;
import com.google.common.hash.Hashing;
import com.google.common.io.ByteSource;
-import com.google.common.primitives.Bytes;
public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
@@ -435,6 +434,7 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
assertTrue(api().deleteObject(BUCKET_NAME2, COMPOSED_OBJECT2));
assertTrue(api().deleteObject(BUCKET_NAME2, COMPOSED_OBJECT));
assertTrue(api().deleteObject(BUCKET_NAME2, COPIED_OBJECT_NAME));
+ assertTrue(api().deleteObject(BUCKET_NAME2, COPIED_OBJECT_NAME2));
assertFalse(api().deleteObject(BUCKET_NAME, UPLOAD_OBJECT_NAME));
assertTrue(api().deleteObject(BUCKET_NAME, UPLOAD_OBJECT_NAME2));
assertTrue(api().deleteObject(BUCKET_NAME, MULTIPART_UPLOAD_OBJECT));
@@ -453,10 +453,4 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
api.getBucketApi().deleteBucket(BUCKET_NAME);
api.getBucketApi().deleteBucket(BUCKET_NAME2);
}
-
- private static byte[] reverse(byte[] b) {
- List<Byte> hashByte = Bytes.asList(b);
- List<Byte> reversedList = com.google.common.collect.Lists.reverse(hashByte);
- return Bytes.toArray(reversedList);
- }
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/3d9258f7/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java
index 7718281..441c255 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ResumableUploadApiLiveTest.java
@@ -136,7 +136,7 @@ public class ResumableUploadApiLiveTest extends BaseGoogleCloudStorageApiLiveTes
// Uploading First chunk
ByteSourcePayload payload = Payloads.newByteSourcePayload(byteSource.slice(offset, chunkSize));
long length = byteSource.slice(offset, chunkSize).size();
- String Content_Range = generateContentRange(0L, length, totalSize);
+ String Content_Range = generateContentRange(0L, length - 1, totalSize);
ResumableUpload uploadResponse = api().chunkUpload(BUCKET_NAME, uploadId, "application/pdf", length,
Content_Range, payload);
[47/50] jclouds git commit: Use a random UUID for fake upload ID
Posted by ga...@apache.org.
Use a random UUID for fake upload ID
This matches the Azure provider.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/a1af4f7f
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/a1af4f7f
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/a1af4f7f
Branch: refs/heads/master
Commit: a1af4f7fec88d7f28ee25c94f72b9c59cdd62c6f
Parents: ca75641
Author: Andrew Gaul <ga...@apache.org>
Authored: Thu Apr 13 12:57:09 2017 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Thu Apr 13 13:00:50 2017 -0700
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/a1af4f7f/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 25d27f2..c86dcc8 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
@@ -22,6 +22,7 @@ import static org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Obj
import java.util.List;
import java.util.Set;
+import java.util.UUID;
import javax.inject.Inject;
@@ -368,7 +369,7 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
@Override
public MultipartUpload initiateMultipartUpload(String container, BlobMetadata blobMetadata, PutOptions options) {
- String uploadId = blobMetadata.getName();
+ String uploadId = UUID.randomUUID().toString();
return MultipartUpload.create(container, blobMetadata.getName(), uploadId, blobMetadata, options);
}
@@ -430,7 +431,7 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
public List<MultipartPart> listMultipartUpload(MultipartUpload mpu) {
ImmutableList.Builder<MultipartPart> parts = ImmutableList.builder();
PageSet<? extends StorageMetadata> pageSet = list(mpu.containerName(),
- new ListContainerOptions().prefix(mpu.blobName() + "_"));
+ new ListContainerOptions().prefix(mpu.id() + "_"));
// TODO: pagination
for (StorageMetadata sm : pageSet) {
int lastUnderscore = sm.getName().lastIndexOf('_');
[34/50] jclouds git commit: JCLOUDS-912: Remove GCS simpleUpload
UploadBinder
Posted by ga...@apache.org.
JCLOUDS-912: Remove GCS simpleUpload UploadBinder
This is not necessary; jclouds binds the Payload automatically;
jclouds binds the Payload automatically.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/5d437312
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/5d437312
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/5d437312
Branch: refs/heads/master
Commit: 5d437312bfe20e654b4400fe24e5d91db6b3e5e8
Parents: 2b02db4
Author: Andrew Gaul <ga...@apache.org>
Authored: Thu Jun 2 22:33:54 2016 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Thu Jun 2 22:35:54 2016 -0700
----------------------------------------------------------------------
.../java/org/jclouds/googlecloudstorage/features/ObjectApi.java | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/5d437312/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
index ab8cab6..b750406 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
@@ -33,7 +33,6 @@ import javax.ws.rs.Produces;
import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.googlecloudstorage.binders.MultipartUploadBinder;
-import org.jclouds.googlecloudstorage.binders.UploadBinder;
import org.jclouds.googlecloudstorage.domain.GoogleCloudStorageObject;
import org.jclouds.googlecloudstorage.domain.ListPageWithPrefixes;
import org.jclouds.googlecloudstorage.domain.RewriteResponse;
@@ -187,10 +186,9 @@ public interface ObjectApi {
@QueryParams(keys = "uploadType", values = "media")
@Consumes(APPLICATION_JSON)
@Path("/upload/storage/v1/b/{bucket}/o")
- @MapBinder(UploadBinder.class)
GoogleCloudStorageObject simpleUpload(@PathParam("bucket") String bucketName, @HeaderParam("Content-Type") String contentType,
@HeaderParam("Content-Length") Long contentLength, @PayloadParam("payload") Payload payload,
- InsertObjectOptions Options);
+ InsertObjectOptions options);
/**
* Deletes an object and its metadata. Deletions are permanent if versioning is not enabled.
[19/50] jclouds git commit: Update comment for the failing test.
Posted by ga...@apache.org.
Update comment for the failing test.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/e2225678
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/e2225678
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/e2225678
Branch: refs/heads/master
Commit: e22256782123590686f2358677b9fd8f49812dab
Parents: 25cb06c
Author: Timur Alperovich <ti...@gmail.com>
Authored: Thu Aug 20 17:31:28 2015 -0700
Committer: Timur Alperovich <ti...@gmail.com>
Committed: Thu Aug 20 17:55:55 2015 -0700
----------------------------------------------------------------------
.../GoogleCloudStorageContainerIntegrationLiveTest.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/e2225678/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
index c129ae8..0850cd7 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
@@ -97,7 +97,8 @@ public class GoogleCloudStorageContainerIntegrationLiveTest extends BaseContaine
@Override
public void testDirectory() throws InterruptedException {
- // GoogleCloudStorage does not support directories, rather it supports prefixes which look like directories.
+ // TODO: testDirectory fails when querying blob with name "directory/directory"; querying "directory%2Fdirectory"
+ // succeeds, however. I believe this is an escaping issue that should be addressed.
throw new SkipException("directories are not supported in GoogleCloudStorage");
}
[11/50] jclouds git commit: Update ComposeObjectTemplate and update
MockTests
Posted by ga...@apache.org.
Update ComposeObjectTemplate and update MockTests
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/15a5dadc
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/15a5dadc
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/15a5dadc
Branch: refs/heads/master
Commit: 15a5dadc1af4c52430e653a4dc115ec3e2a1f692
Parents: 7213acb
Author: Daniel Broudy <br...@google.com>
Authored: Mon Jun 8 17:29:21 2015 -0700
Committer: Daniel Broudy <br...@google.com>
Committed: Mon Jun 22 09:37:42 2015 -0700
----------------------------------------------------------------------
.../SequentialMultipartUploadStrategy.java | 4 +-
.../domain/templates/ComposeObjectTemplate.java | 93 +++++++++++++++++++-
.../features/ObjectApiLiveTest.java | 11 ++-
.../features/ObjectApiMockTest.java | 10 ++-
.../test/resources/object_compose_request.json | 45 ++--------
5 files changed, 113 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/15a5dadc/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java
index 065f002..83b3823 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java
@@ -87,7 +87,9 @@ public final class SequentialMultipartUploadStrategy extends MultipartUploadStra
sourceList.add(object);
}
- ComposeObjectTemplate template = ComposeObjectTemplate.create(sourceList, destination);
+ ComposeObjectTemplate template = ComposeObjectTemplate.builder().fromGoogleCloudStorageObject(sourceList)
+ .destination(destination).build();
+
return api.getObjectApi().composeObjects(container, key, template).etag();
} else {
return api.getObjectApi()
http://git-wip-us.apache.org/repos/asf/jclouds/blob/15a5dadc/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java
index 669a8f1..4ad8d5e 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java
@@ -14,25 +14,110 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.jclouds.googlecloudstorage.domain.templates;
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import org.jclouds.googlecloudstorage.domain.GoogleCloudStorageObject;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
import com.google.auto.value.AutoValue;
+import com.google.common.collect.ImmutableList;
@AutoValue
public abstract class ComposeObjectTemplate {
- private final String kind = "storage/composeRequest";
+ @AutoValue
+ public abstract static class SourceObject {
+
+ @AutoValue
+ public abstract static class ObjectPreconditions {
+ @Nullable public abstract long ifGenerationMatch();
+
+ @SerializedNames({"ifGenerationMatch"})
+ public static ObjectPreconditions create(long ifGenerationMatch){
+ return new AutoValue_ComposeObjectTemplate_SourceObject_ObjectPreconditions(ifGenerationMatch);
+ }
+
+ ObjectPreconditions(){
+ }
+ }
+
+ public abstract String name();
+ @Nullable public abstract Long generation();
+ @Nullable public abstract ObjectPreconditions objectPreconditions();
- public abstract List<GoogleCloudStorageObject> sourceObjects();
+ public static SourceObject nameOnly(String name){
+ return create(name, null, null);
+ }
+ public static SourceObject createWithPrecondition(String name, Long generation, Long objectPreconditions){
+ return create(name, generation, ObjectPreconditions.create(objectPreconditions));
+ }
+
+ @SerializedNames({ "name", "generation", "objectPreconditions"})
+ public static SourceObject create(String name, @Nullable Long generation,
+ @Nullable ObjectPreconditions objectPreconditions) {
+ return new AutoValue_ComposeObjectTemplate_SourceObject(name, generation, objectPreconditions);
+ }
+
+ SourceObject(){
+ }
+ }
+
+ public abstract List<SourceObject> sourceObjects();
public abstract ObjectTemplate destination();
- public static ComposeObjectTemplate create(List<GoogleCloudStorageObject> sourceObjects, ObjectTemplate destination) {
+ @SerializedNames({"sourceObjects", "destination"})
+ public static ComposeObjectTemplate create(List<SourceObject> sourceObjects, ObjectTemplate destination) {
return new AutoValue_ComposeObjectTemplate(sourceObjects, destination);
}
+
+ public static Builder builder(){
+ return new Builder();
+ }
+
+ ComposeObjectTemplate() {
+ }
+
+ public static class Builder {
+ private ImmutableList<SourceObject> sourceObjects;
+ private ObjectTemplate destination;
+
+ Builder() {
+ }
+
+ public Builder fromGoogleCloudStorageObject(Collection<GoogleCloudStorageObject> objects) {
+ ImmutableList.Builder<SourceObject> sourceObjects = new ImmutableList.Builder<ComposeObjectTemplate.SourceObject>();
+ for (GoogleCloudStorageObject obj : objects) {
+ sourceObjects.add(SourceObject.createWithPrecondition(obj.name(), obj.generation(), obj.generation()));
+ }
+ this.sourceObjects = sourceObjects.build();
+ return this;
+ }
+
+ public Builder fromNames(List<String> SourceObjectNames) {
+ ArrayList<SourceObject> sourceObjects = new ArrayList<SourceObject>();
+ for (String name : SourceObjectNames) {
+ sourceObjects.add(SourceObject.nameOnly(name));
+ }
+ this.sourceObjects = ImmutableList.copyOf(sourceObjects);
+ return this;
+ }
+
+ public Builder destination(ObjectTemplate destination) {
+ checkNotNull(destination, "destination");
+ this.destination = destination;
+ return this;
+ }
+
+ public ComposeObjectTemplate build() {
+ return ComposeObjectTemplate.create(sourceObjects, destination);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/15a5dadc/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
index 3cef893..44232a1 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
@@ -255,7 +255,10 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
sourceList.add(api().getObject(BUCKET_NAME2, UPLOAD_OBJECT_NAME));
sourceList.add(api().getObject(BUCKET_NAME2, COPIED_OBJECT_NAME));
- ComposeObjectTemplate requestTemplate = ComposeObjectTemplate.create(sourceList, destination);
+ ComposeObjectTemplate requestTemplate = ComposeObjectTemplate.builder()
+ .fromGoogleCloudStorageObject(sourceList)
+ .destination(destination)
+ .build();
GoogleCloudStorageObject gcsObject = api().composeObjects(BUCKET_NAME2, COMPOSED_OBJECT, requestTemplate);
@@ -273,8 +276,10 @@ public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
sourceList.add(api().getObject(BUCKET_NAME2, UPLOAD_OBJECT_NAME));
sourceList.add(api().getObject(BUCKET_NAME2, COPIED_OBJECT_NAME));
- ComposeObjectTemplate requestTemplate = ComposeObjectTemplate.create(sourceList, destination);
-
+ ComposeObjectTemplate requestTemplate = ComposeObjectTemplate.builder()
+ .fromGoogleCloudStorageObject(sourceList)
+ .destination(destination)
+ .build();
ComposeObjectOptions options = new ComposeObjectOptions().destinationPredefinedAcl(
DestinationPredefinedAcl.BUCKET_OWNER_READ).ifMetagenerationNotMatch(RANDOM_LONG);
http://git-wip-us.apache.org/repos/asf/jclouds/blob/15a5dadc/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
index af224d4..d30deac 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
@@ -176,8 +176,9 @@ public class ObjectApiMockTest extends BaseGoogleCloudStorageApiMockTest {
ObjectTemplate template = new ObjectTemplate().name("file_name").size((long) 1000).crc32c("crc32c");
- ComposeObjectTemplate composeTemplate = ComposeObjectTemplate.create(
- new ParseGoogleCloudStorageObjectListTest().expected(), template);
+ ComposeObjectTemplate composeTemplate = ComposeObjectTemplate.builder()
+ .fromGoogleCloudStorageObject(new ParseGoogleCloudStorageObjectListTest().expected())
+ .destination(template).build();
assertEquals(objectApi().composeObjects("destination_bucket", "destination_object", composeTemplate),
new ParseGoogleCloudStorageObject().expected());
@@ -189,8 +190,9 @@ public class ObjectApiMockTest extends BaseGoogleCloudStorageApiMockTest {
server.enqueue(jsonResponse("/object_get.json"));
ObjectTemplate template = new ObjectTemplate().name("file_name").size((long) 1000).crc32c("crc32c");
- ComposeObjectTemplate composeTemplate = ComposeObjectTemplate.create(
- new ParseGoogleCloudStorageObjectListTest().expected(), template);
+ ComposeObjectTemplate composeTemplate = ComposeObjectTemplate.builder()
+ .fromGoogleCloudStorageObject(new ParseGoogleCloudStorageObjectListTest().expected())
+ .destination(template).build();
ComposeObjectOptions options = new ComposeObjectOptions()
.destinationPredefinedAcl(DestinationPredefinedAcl.BUCKET_OWNER_FULLCONTROL)
http://git-wip-us.apache.org/repos/asf/jclouds/blob/15a5dadc/providers/google-cloud-storage/src/test/resources/object_compose_request.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/object_compose_request.json b/providers/google-cloud-storage/src/test/resources/object_compose_request.json
index 93cbfc7..0ac4803 100644
--- a/providers/google-cloud-storage/src/test/resources/object_compose_request.json
+++ b/providers/google-cloud-storage/src/test/resources/object_compose_request.json
@@ -1,54 +1,23 @@
{
"sourceObjects": [
{
- "id": "test/file_name/1000",
- "selfLink": "https://www.googleapis.com/storage/v1/b/test/o/file_name",
- "etag": "etag",
"name": "file_name",
- "bucket": "test",
"generation": 1000,
- "metageneration": 8,
- "contentType": "application/x-tar",
- "updated": "2014-09-27T00:01:44.819Z",
- "storageClass": "STANDARD",
- "size": 1000,
- "md5Hash": "md5Hash",
- "mediaLink": "https://www.googleapis.com/download/storage/v1/b/test/o/file_name?generation=1000&alt=media",
- "metadata": {},
- "acl": [],
- "owner": {
- "entity": "entity",
- "entityId": "entityId"
- },
- "crc32c": "crc32c"
+ "objectPreconditions": {
+ "ifGenerationMatch": 1000
+ }
},
{
- "id": "test/file_name2/1000",
- "selfLink": "https://www.googleapis.com/storage/v1/b/test/o/file_name2",
- "etag": "etag",
"name": "file_name2",
- "bucket": "test",
"generation": 1001,
- "metageneration": 9,
- "contentType": "image/png",
- "updated": "2014-09-27T00:01:44.819Z",
- "storageClass": "STANDARD",
- "size": 10,
- "md5Hash": "md5Hash",
- "mediaLink": "https://www.googleapis.com/download/storage/v1/b/test/o/file_name2?generation=1001&alt=media",
- "metadata": {},
- "acl": [],
- "owner": {
- "entity": "entity",
- "entityId": "entityId"
- },
- "crc32c": "crc32c"
+ "objectPreconditions": {
+ "ifGenerationMatch": 1001
+ }
}
],
"destination": {
"name": "file_name",
"size": 1000,
"crc32c": "crc32c"
- },
- "kind": "storage/composeRequest"
+ }
}
\ No newline at end of file
[33/50] jclouds git commit: Add ObjectTemplate.toString
Posted by ga...@apache.org.
Add ObjectTemplate.toString
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/2b02db4f
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/2b02db4f
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/2b02db4f
Branch: refs/heads/master
Commit: 2b02db4f2285f15551ea64f6125e2446a7049721
Parents: f6210d5
Author: Andrew Gaul <ga...@apache.org>
Authored: Thu Jun 2 16:24:13 2016 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Thu Jun 2 16:24:13 2016 -0700
----------------------------------------------------------------------
.../domain/templates/ObjectTemplate.java | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2b02db4f/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java
index b23b7c1..1cd5aaf 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectTemplate.java
@@ -22,6 +22,7 @@ import java.util.Map;
import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
+import com.google.common.base.Objects;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.net.MediaType;
@@ -157,4 +158,21 @@ public class ObjectTemplate {
public List<ObjectAccessControls> acl() {
return acl;
}
+
+ @Override
+ public String toString() {
+ return Objects.toStringHelper(this)
+ .add("name", name)
+ .add("size", size)
+ .add("cacheControl", cacheControl)
+ .add("contentDisposition", contentDisposition)
+ .add("contentEncoding", contentEncoding)
+ .add("contentLanguage", contentLanguage)
+ .add("contentType", contentType)
+ .add("crc32c", crc32c)
+ .add("md5Hash", md5Hash)
+ .add("metadata", metadata)
+ .add("acl", acl)
+ .toString();
+ }
}
[24/50] jclouds git commit: Remove @Nullable from methods returning
primitives
Posted by ga...@apache.org.
Remove @Nullable from methods returning primitives
Found via error-prone.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/639e96d5
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/639e96d5
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/639e96d5
Branch: refs/heads/master
Commit: 639e96d5e7abb7d030dbcff0f10b281ee978143d
Parents: 2385ba9
Author: Andrew Gaul <ga...@apache.org>
Authored: Sat Dec 12 08:21:32 2015 +0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sat Dec 12 08:22:27 2015 +0800
----------------------------------------------------------------------
.../googlecloudstorage/domain/templates/ComposeObjectTemplate.java | 2 +-
.../java/org/jclouds/googlecloudstorage/features/ObjectApi.java | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/639e96d5/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java
index 4ad8d5e..3f333d8 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ComposeObjectTemplate.java
@@ -37,7 +37,7 @@ public abstract class ComposeObjectTemplate {
@AutoValue
public abstract static class ObjectPreconditions {
- @Nullable public abstract long ifGenerationMatch();
+ public abstract long ifGenerationMatch();
@SerializedNames({"ifGenerationMatch"})
public static ObjectPreconditions create(long ifGenerationMatch){
http://git-wip-us.apache.org/repos/asf/jclouds/blob/639e96d5/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
index 4e4f5b9..ab8cab6 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
@@ -85,7 +85,6 @@ public interface ObjectApi {
@GET
@Path("storage/v1/b/{bucket}/o/{object}")
@Fallback(FalseOnNotFoundOr404.class)
- @Nullable
boolean objectExists(@PathParam("bucket") String bucketName, @PathParam("object") @Encoded String objectName);
/**
[45/50] jclouds git commit: Return more metadata from
listMultipartUpload
Posted by ga...@apache.org.
Return more metadata from listMultipartUpload
Include Content-Length and Last-Modified.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/8e50fe69
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/8e50fe69
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/8e50fe69
Branch: refs/heads/master
Commit: 8e50fe69adeec17d84fe0fd32ebf31c6fb4f3bb9
Parents: f4a2be0
Author: Andrew Gaul <ga...@apache.org>
Authored: Wed Mar 8 22:15:14 2017 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Wed Mar 8 22:15:41 2017 -0800
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/8e50fe69/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 63406d9..25d27f2 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
@@ -423,7 +423,7 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
InsertObjectOptions insertOptions = new InsertObjectOptions().name(partName);
GoogleCloudStorageObject object = api.getObjectApi().simpleUpload(mpu.containerName(),
mpu.blobMetadata().getContentMetadata().getContentType(), partSize, payload, insertOptions);
- return MultipartPart.create(partNumber, partSize, object.etag());
+ return MultipartPart.create(partNumber, partSize, object.etag(), object.updated());
}
@Override
@@ -435,7 +435,7 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
for (StorageMetadata sm : pageSet) {
int lastUnderscore = sm.getName().lastIndexOf('_');
int partNumber = Integer.parseInt(sm.getName().substring(lastUnderscore + 1));
- parts.add(MultipartPart.create(partNumber, sm.getSize(), sm.getETag()));
+ parts.add(MultipartPart.create(partNumber, sm.getSize(), sm.getETag(), sm.getLastModified()));
}
return parts.build();
}
[46/50] jclouds git commit: JCLOUDS-1259: Add GCS multi-regional and
coldline
Posted by ga...@apache.org.
JCLOUDS-1259: Add GCS multi-regional and coldline
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/ca75641f
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/ca75641f
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/ca75641f
Branch: refs/heads/master
Commit: ca75641fc0c990aa4592d0ee195ae34593dead2b
Parents: 8e50fe6
Author: Andrew Gaul <ga...@apache.org>
Authored: Mon Mar 20 18:04:03 2017 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Mon Mar 20 18:42:32 2017 -0700
----------------------------------------------------------------------
.../domain/DomainResourceReferences.java | 6 +++-
.../features/BucketApiLiveTest.java | 38 ++++++++++++++++++++
2 files changed, 43 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/ca75641f/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainResourceReferences.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainResourceReferences.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainResourceReferences.java
index 36ab418..cc3b9dc 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainResourceReferences.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DomainResourceReferences.java
@@ -45,7 +45,11 @@ public final class DomainResourceReferences {
}
public enum StorageClass {
- STANDARD, DURABLE_REDUCED_AVAILABILITY, NEARLINE;
+ COLDLINE,
+ DURABLE_REDUCED_AVAILABILITY,
+ MULTI_REGIONAL,
+ NEARLINE,
+ STANDARD;
}
public enum Projection {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/ca75641f/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
index 12226dc..c59a82f 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
@@ -58,6 +58,10 @@ public class BucketApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
private static final String BUCKET_NAME_STANDARD = "jcloudstestbucketstandard" + (int) (Math.random() * 10000);
+ private static final String BUCKET_NAME_COLDLINE = "jcloudstestbucketcoldline" + (int) (Math.random() * 10000);
+
+ private static final String BUCKET_NAME_MULTI_REGIONAL = "jcloudstestbucketmultiregional" + (int) (Math.random() * 10000);
+
private static final String BUCKET_NAME_NEARLINE = "jcloudstestbucketnearline" + (int) (Math.random() * 10000);
private static final String BUCKET_NAME_WITHOPTIONS = "jcloudstestbucketoptions" + (int) (Math.random() * 10000);
@@ -121,6 +125,40 @@ public class BucketApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
}
@Test(groups = "live")
+ public void testCreateBucketColdline() {
+ BucketTemplate template = new BucketTemplate()
+ .name(BUCKET_NAME_COLDLINE)
+ .location(Location.US)
+ .storageClass(StorageClass.COLDLINE);
+
+ Bucket response = api().createBucket(PROJECT_NUMBER, template);
+
+ assertNotNull(response);
+ assertEquals(response.name(), BUCKET_NAME_COLDLINE);
+ assertEquals(response.location(), Location.US);
+ assertThat(response.storageClass()).isEqualTo(StorageClass.COLDLINE);
+
+ api().deleteBucket(BUCKET_NAME_COLDLINE);
+ }
+
+ @Test(groups = "live")
+ public void testCreateBucketMultiregional() {
+ BucketTemplate template = new BucketTemplate()
+ .name(BUCKET_NAME_MULTI_REGIONAL)
+ .location(Location.US)
+ .storageClass(StorageClass.MULTI_REGIONAL);
+
+ Bucket response = api().createBucket(PROJECT_NUMBER, template);
+
+ assertNotNull(response);
+ assertEquals(response.name(), BUCKET_NAME_MULTI_REGIONAL);
+ assertEquals(response.location(), Location.US);
+ assertThat(response.storageClass()).isEqualTo(StorageClass.MULTI_REGIONAL);
+
+ api().deleteBucket(BUCKET_NAME_NEARLINE);
+ }
+
+ @Test(groups = "live")
public void testCreateBucketNearline() {
BucketTemplate template = new BucketTemplate()
.name(BUCKET_NAME_NEARLINE)
[26/50] jclouds git commit: JCLOUDS-943: JCLOUDS-1056: Configure OSGi
packaging
Posted by ga...@apache.org.
JCLOUDS-943: JCLOUDS-1056: Configure OSGi packaging
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/10318ed7
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/10318ed7
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/10318ed7
Branch: refs/heads/master
Commit: 10318ed7773b177987baa14c3274895a590c9752
Parents: 57d162c
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Jan 22 16:10:57 2016 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Jan 22 16:10:57 2016 -0800
----------------------------------------------------------------------
providers/google-cloud-storage/pom.xml | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/10318ed7/providers/google-cloud-storage/pom.xml
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/pom.xml b/providers/google-cloud-storage/pom.xml
index 1b08640..98b38ce 100644
--- a/providers/google-cloud-storage/pom.xml
+++ b/providers/google-cloud-storage/pom.xml
@@ -31,6 +31,7 @@
<artifactId>google-cloud-storage</artifactId>
<name>jclouds Google Cloud Storage provider</name>
<description>jclouds components to access Google Cloud Storage</description>
+ <packaging>bundle</packaging>
<properties>
<test.google-cloud-storage.identity>client_email which usually looks like project_id@developer.gserviceaccount.com</test.google-cloud-storage.identity>
@@ -40,6 +41,8 @@
<test.jclouds.oauth.credential-type>p12PrivateKeyCredentials</test.jclouds.oauth.credential-type>
<test.google-cloud-storage.api-version>v1</test.google-cloud-storage.api-version>
<test.google-cloud-storage.build-version/>
+ <jclouds.osgi.export>org.jclouds.googlecloudstorage*;version="${project.version}"</jclouds.osgi.export>
+ <jclouds.osgi.import>org.jclouds*;version="${project.version}",*</jclouds.osgi.import>
</properties>
<dependencies>
[23/50] jclouds git commit: JCLOUDS-1008: Use @Encoded with GCS.
Posted by ga...@apache.org.
JCLOUDS-1008: Use @Encoded with GCS.
Google cloud storage should use the @Encoded annotation with the
object names to make sure that the object is percent-encoded prior to
being submitted in the path of the request. This was previously broken
because the default path encoding ignores "/" and encodes the entire
string. The @Encoded annotation instructs jclouds annotation processor
to not encode the parameters to which it is attached and not to encode
the entire request path. Parameters that are not annotated with
@Encoded are URL encoded prior to being add to the path.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/2385ba90
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/2385ba90
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/2385ba90
Branch: refs/heads/master
Commit: 2385ba901e98d89e6cabd2b32028e1b3cac3992e
Parents: 0612579
Author: Timur Alperovich <ti...@gmail.com>
Authored: Sat Sep 26 15:16:13 2015 -0700
Committer: Ignasi Barrera <na...@apache.org>
Committed: Wed Oct 21 10:40:04 2015 +0200
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 47 +++++--------
.../features/ObjectAccessControlsApi.java | 32 ++++-----
.../googlecloudstorage/features/ObjectApi.java | 74 +++++++++++---------
...ogleCloudStorageBlobIntegrationLiveTest.java | 1 +
.../features/ObjectApiMockTest.java | 16 +++++
.../src/test/resources/object_encoded_get.json | 21 ++++++
6 files changed, 114 insertions(+), 77 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2385ba90/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 e852704..5dbb7cd 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
@@ -20,8 +20,6 @@ import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.io.BaseEncoding.base64;
import static org.jclouds.googlecloudstorage.domain.DomainResourceReferences.ObjectRole.READER;
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
import java.util.List;
import java.util.Set;
@@ -41,11 +39,11 @@ import org.jclouds.blobstore.domain.internal.BlobImpl;
import org.jclouds.blobstore.domain.internal.PageSetImpl;
import org.jclouds.blobstore.functions.BlobToHttpGetOptions;
import org.jclouds.blobstore.internal.BaseBlobStore;
+import org.jclouds.blobstore.options.CopyOptions;
import org.jclouds.blobstore.options.CreateContainerOptions;
import org.jclouds.blobstore.options.GetOptions;
import org.jclouds.blobstore.options.ListContainerOptions;
import org.jclouds.blobstore.options.PutOptions;
-import org.jclouds.blobstore.options.CopyOptions;
import org.jclouds.blobstore.strategy.internal.FetchBlobMetadata;
import org.jclouds.blobstore.util.BlobUtils;
import org.jclouds.collect.Memoized;
@@ -73,11 +71,10 @@ import org.jclouds.http.HttpResponseException;
import org.jclouds.io.ContentMetadata;
import org.jclouds.io.Payload;
import org.jclouds.io.PayloadSlicer;
+import org.jclouds.util.Strings2;
-import com.google.common.base.Charsets;
import com.google.common.base.Function;
import com.google.common.base.Supplier;
-import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.hash.HashCode;
@@ -204,12 +201,7 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
*/
@Override
public boolean blobExists(String container, String name) {
- try {
- String urlName = name.contains("/") ? URLEncoder.encode(name, Charsets.UTF_8.toString()) : name;
- return api.getObjectApi().objectExists(container, urlName);
- } catch (UnsupportedEncodingException e) {
- throw Throwables.propagate(e);
- }
+ return api.getObjectApi().objectExists(container, Strings2.urlEncode(name));
}
/**
@@ -239,12 +231,12 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
@Override
public BlobMetadata blobMetadata(String container, String name) {
- return objectToBlobMetadata.apply(api.getObjectApi().getObject(container, name));
+ return objectToBlobMetadata.apply(api.getObjectApi().getObject(container, Strings2.urlEncode(name)));
}
@Override
public Blob getBlob(String container, String name, GetOptions options) {
- GoogleCloudStorageObject gcsObject = api.getObjectApi().getObject(container, name);
+ GoogleCloudStorageObject gcsObject = api.getObjectApi().getObject(container, Strings2.urlEncode(name));
if (gcsObject == null) {
return null;
}
@@ -252,7 +244,7 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
MutableBlobMetadata metadata = objectToBlobMetadata.apply(gcsObject);
Blob blob = new BlobImpl(metadata);
// TODO: Does getObject not get the payload?!
- Payload payload = api.getObjectApi().download(container, name, httpOptions).getPayload();
+ Payload payload = api.getObjectApi().download(container, Strings2.urlEncode(name), httpOptions).getPayload();
payload.setContentMetadata(metadata.getContentMetadata()); // Doing this first retains it on setPayload.
blob.setPayload(payload);
return blob;
@@ -260,18 +252,13 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
@Override
public void removeBlob(String container, String name) {
- String urlName;
- try {
- urlName = name.contains("/") ? URLEncoder.encode(name, Charsets.UTF_8.toString()) : name;
- } catch (UnsupportedEncodingException uee) {
- throw Throwables.propagate(uee);
- }
- api.getObjectApi().deleteObject(container, urlName);
+ api.getObjectApi().deleteObject(container, Strings2.urlEncode(name));
}
@Override
public BlobAccess getBlobAccess(String container, String name) {
- ObjectAccessControls controls = api.getObjectAccessControlsApi().getObjectAccessControls(container, name, "allUsers");
+ ObjectAccessControls controls = api.getObjectAccessControlsApi().getObjectAccessControls(container,
+ Strings2.urlEncode(name), "allUsers");
if (controls != null && controls.role() == DomainResourceReferences.ObjectRole.READER) {
return BlobAccess.PUBLIC_READ;
} else {
@@ -287,9 +274,9 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
.bucket(container)
.role(READER)
.build();
- api.getObjectApi().patchObject(container, name, new ObjectTemplate().addAcl(controls));
+ api.getObjectApi().patchObject(container, Strings2.urlEncode(name), new ObjectTemplate().addAcl(controls));
} else {
- api.getObjectAccessControlsApi().deleteObjectAccessControls(container, name, "allUsers");
+ api.getObjectAccessControlsApi().deleteObjectAccessControls(container, Strings2.urlEncode(name), "allUsers");
}
}
@@ -312,7 +299,8 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
public String copyBlob(String fromContainer, String fromName, String toContainer, String toName,
CopyOptions options) {
if (!options.getContentMetadata().isPresent() && !options.getUserMetadata().isPresent()) {
- return api.getObjectApi().copyObject(toContainer, toName, fromContainer, fromName).etag();
+ return api.getObjectApi().copyObject(toContainer, Strings2.urlEncode(toName), fromContainer,
+ Strings2.urlEncode(fromName)).etag();
}
ObjectTemplate template = new ObjectTemplate();
@@ -349,7 +337,8 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
template.customMetadata(options.getUserMetadata().get());
}
- return api.getObjectApi().copyObject(toContainer, toName, fromContainer, fromName, template).etag();
+ return api.getObjectApi().copyObject(toContainer, Strings2.urlEncode(toName), fromContainer,
+ Strings2.urlEncode(fromName), template).etag();
}
@Override
@@ -372,12 +361,14 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) {
ImmutableList.Builder<GoogleCloudStorageObject> builder = ImmutableList.builder();
for (MultipartPart part : parts) {
- builder.add(api.getObjectApi().getObject(mpu.containerName(), getMPUPartName(mpu, part.partNumber())));
+ builder.add(api.getObjectApi().getObject(mpu.containerName(),
+ Strings2.urlEncode(getMPUPartName(mpu, part.partNumber()))));
}
ObjectTemplate destination = blobMetadataToObjectTemplate.apply(mpu.blobMetadata());
ComposeObjectTemplate template = ComposeObjectTemplate.builder().fromGoogleCloudStorageObject(builder.build())
.destination(destination).build();
- return api.getObjectApi().composeObjects(mpu.containerName(), mpu.blobName(), template).etag();
+ return api.getObjectApi().composeObjects(mpu.containerName(), Strings2.urlEncode(mpu.blobName()), template)
+ .etag();
// TODO: delete components?
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2385ba90/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
index ce31029..32b5e7c 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
@@ -23,6 +23,7 @@ import java.util.List;
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
+import javax.ws.rs.Encoded;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
@@ -41,7 +42,6 @@ import org.jclouds.rest.annotations.Fallback;
import org.jclouds.rest.annotations.PATCH;
import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.binders.BindToJsonPayload;
/**
@@ -49,7 +49,6 @@ import org.jclouds.rest.binders.BindToJsonPayload;
*
* @see <a href = " https://developers.google.com/storage/docs/json_api/v1/objectAccessControls "/>
*/
-@SkipEncoding({ '/', '=' })
@RequestFilters(OAuthFilter.class)
@Consumes(APPLICATION_JSON)
public interface ObjectAccessControlsApi {
@@ -74,7 +73,7 @@ public interface ObjectAccessControlsApi {
@Fallback(NullOnNotFoundOr404.class)
@Nullable
ObjectAccessControls getObjectAccessControls(@PathParam("bucket") String bucketName,
- @PathParam("object") String objectName, @PathParam("entity") String entity);
+ @PathParam("object") @Encoded String objectName, @PathParam("entity") String entity);
/**
* Returns the acl entry for the specified entity on the specified object.
@@ -97,7 +96,7 @@ public interface ObjectAccessControlsApi {
@Fallback(NullOnNotFoundOr404.class)
@Nullable
ObjectAccessControls getObjectAccessControls(@PathParam("bucket") String bucketName,
- @PathParam("object") String objectName, @PathParam("entity") String entity,
+ @PathParam("object") @Encoded String objectName, @PathParam("entity") String entity,
@QueryParam("generation") Long generation);
/**
@@ -116,7 +115,7 @@ public interface ObjectAccessControlsApi {
@Produces(APPLICATION_JSON)
@Path("/b/{bucket}/o/{object}/acl")
ObjectAccessControls createObjectAccessControls(@PathParam("bucket") String bucketName,
- @PathParam("object") String objectName,
+ @PathParam("object") @Encoded String objectName,
@BinderParam(BindToJsonPayload.class) ObjectAccessControlsTemplate template);
/**
@@ -137,7 +136,7 @@ public interface ObjectAccessControlsApi {
@Produces(APPLICATION_JSON)
@Path("/b/{bucket}/o/{object}/acl")
ObjectAccessControls createObjectAccessControls(@PathParam("bucket") String bucketName,
- @PathParam("object") String objectName,
+ @PathParam("object") @Encoded String objectName,
@BinderParam(BindToJsonPayload.class) ObjectAccessControlsTemplate template,
@QueryParam("generation") Long generation);
@@ -155,8 +154,8 @@ public interface ObjectAccessControlsApi {
@Named("ObjectAccessControls:delete")
@DELETE
@Path("/b/{bucket}/o/{object}/acl/{entity}")
- void deleteObjectAccessControls(@PathParam("bucket") String bucketName, @PathParam("object") String objectName,
- @PathParam("entity") String entity);
+ void deleteObjectAccessControls(@PathParam("bucket") String bucketName,
+ @PathParam("object") @Encoded String objectName, @PathParam("entity") String entity);
/**
* Permanently deletes the acl entry for the specified entity on the specified bucket.
@@ -174,8 +173,9 @@ public interface ObjectAccessControlsApi {
@Named("ObjectAccessControls:delete")
@DELETE
@Path("/b/{bucket}/o/{object}/acl/{entity}")
- void deleteObjectAccessControls(@PathParam("bucket") String bucketName, @PathParam("object") String objectName,
- @PathParam("entity") String entity, @QueryParam("generation") Long generation);
+ void deleteObjectAccessControls(@PathParam("bucket") String bucketName,
+ @PathParam("object") @Encoded String objectName, @PathParam("entity") String entity,
+ @QueryParam("generation") Long generation);
/**
* Retrieves acl entries on a specified object
@@ -193,7 +193,7 @@ public interface ObjectAccessControlsApi {
@Fallback(NullOnNotFoundOr404.class)
@Nullable
List<ObjectAccessControls> listObjectAccessControls(@PathParam("bucket") String bucketName,
- @PathParam("object") String objectName);
+ @PathParam("object") @Encoded String objectName);
/**
* Retrieves acl entries on a specified object
@@ -214,7 +214,7 @@ public interface ObjectAccessControlsApi {
@Fallback(NullOnNotFoundOr404.class)
@Nullable
List<ObjectAccessControls> listObjectAccessControls(@PathParam("bucket") String bucketName,
- @PathParam("object") String objectName, @QueryParam("generation") Long generation);
+ @PathParam("object") @Encoded String objectName, @QueryParam("generation") Long generation);
/**
* Updates an acl entry on the specified object
@@ -237,7 +237,7 @@ public interface ObjectAccessControlsApi {
@Produces(APPLICATION_JSON)
@Path("/b/{bucket}/o/{object}/acl/{entity}")
ObjectAccessControls updateObjectAccessControls(@PathParam("bucket") String bucketName,
- @PathParam("object") String objectName, @PathParam("entity") String entity,
+ @PathParam("object") @Encoded String objectName, @PathParam("entity") String entity,
@BinderParam(BindToJsonPayload.class) ObjectAccessControlsTemplate template);
/**
@@ -262,7 +262,7 @@ public interface ObjectAccessControlsApi {
@Produces(APPLICATION_JSON)
@Path("/b/{bucket}/o/{object}/acl/{entity}")
ObjectAccessControls updateObjectAccessControls(@PathParam("bucket") String bucketName,
- @PathParam("object") String objectName, @PathParam("entity") String entity,
+ @PathParam("object") @Encoded String objectName, @PathParam("entity") String entity,
@BinderParam(BindToJsonPayload.class) ObjectAccessControlsTemplate template,
@QueryParam("generation") Long generation);
@@ -286,7 +286,7 @@ public interface ObjectAccessControlsApi {
@Produces(APPLICATION_JSON)
@Path("/b/{bucket}/o/{object}/acl/{entity}")
ObjectAccessControls patchObjectAccessControls(@PathParam("bucket") String bucketName,
- @PathParam("object") String objectName, @PathParam("entity") String entity,
+ @PathParam("object") @Encoded String objectName, @PathParam("entity") String entity,
@BinderParam(BindToJsonPayload.class) ObjectAccessControlsTemplate template);
/**
@@ -311,7 +311,7 @@ public interface ObjectAccessControlsApi {
@Produces(APPLICATION_JSON)
@Path("/b/{bucket}/o/{object}/acl/{entity}")
ObjectAccessControls patchObjectAccessControls(@PathParam("bucket") String bucketName,
- @PathParam("object") String objectName, @PathParam("entity") String entity,
+ @PathParam("object") @Encoded String objectName, @PathParam("entity") String entity,
@BinderParam(BindToJsonPayload.class) ObjectAccessControlsTemplate template,
@QueryParam("generation") Long generation);
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2385ba90/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
index ff8dfde..4e4f5b9 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
@@ -21,6 +21,7 @@ import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import javax.inject.Named;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
+import javax.ws.rs.Encoded;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
@@ -60,7 +61,6 @@ import org.jclouds.rest.annotations.PayloadParam;
import org.jclouds.rest.annotations.QueryParams;
import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.SkipEncoding;
import org.jclouds.rest.binders.BindToJsonPayload;
/**
@@ -68,7 +68,6 @@ import org.jclouds.rest.binders.BindToJsonPayload;
*
* @see <a href="https://developers.google.com/storage/docs/json_api/v1/objects"/>
*/
-@SkipEncoding({ '/', '=' })
@RequestFilters(OAuthFilter.class)
public interface ObjectApi {
@@ -87,7 +86,7 @@ public interface ObjectApi {
@Path("storage/v1/b/{bucket}/o/{object}")
@Fallback(FalseOnNotFoundOr404.class)
@Nullable
- boolean objectExists(@PathParam("bucket") String bucketName, @PathParam("object") String objectName);
+ boolean objectExists(@PathParam("bucket") String bucketName, @PathParam("object") @Encoded String objectName);
/**
* Retrieve an object metadata
@@ -105,7 +104,8 @@ public interface ObjectApi {
@Consumes(APPLICATION_JSON)
@Fallback(NullOnNotFoundOr404.class)
@Nullable
- GoogleCloudStorageObject getObject(@PathParam("bucket") String bucketName, @PathParam("object") String objectName);
+ GoogleCloudStorageObject getObject(@PathParam("bucket") String bucketName,
+ @PathParam("object") @Encoded String objectName);
/**
* Retrieves objects metadata
@@ -126,8 +126,8 @@ public interface ObjectApi {
@Consumes(APPLICATION_JSON)
@Fallback(NullOnNotFoundOr404.class)
@Nullable
- GoogleCloudStorageObject getObject(@PathParam("bucket") String bucketName, @PathParam("object") String objectName,
- HttpRequestOptions options);
+ GoogleCloudStorageObject getObject(@PathParam("bucket") String bucketName,
+ @PathParam("object") @Encoded String objectName, HttpRequestOptions options);
/**
* Retrieve an object or their metadata
@@ -146,7 +146,7 @@ public interface ObjectApi {
@ResponseParser(ParseToPayloadEnclosing.class)
@Fallback(NullOnNotFoundOr404.class)
@Nullable
- PayloadEnclosing download(@PathParam("bucket") String bucketName, @PathParam("object") String objectName);
+ PayloadEnclosing download(@PathParam("bucket") String bucketName, @PathParam("object") @Encoded String objectName);
/**
* Retrieves objects
@@ -167,7 +167,8 @@ public interface ObjectApi {
@Path("storage/v1/b/{bucket}/o/{object}")
@ResponseParser(ParseToPayloadEnclosing.class)
@Fallback(NullOnNotFoundOr404.class)
- @Nullable PayloadEnclosing download(@PathParam("bucket") String bucketName, @PathParam("object") String objectName,
+ @Nullable
+ PayloadEnclosing download(@PathParam("bucket") String bucketName, @PathParam("object") @Encoded String objectName,
HttpRequestOptions options);
/**
@@ -204,7 +205,7 @@ public interface ObjectApi {
@DELETE
@Path("storage/v1/b/{bucket}/o/{object}")
@Fallback(FalseOnNotFoundOr404.class)
- boolean deleteObject(@PathParam("bucket") String bucketName, @PathParam("object") String objectName);
+ boolean deleteObject(@PathParam("bucket") String bucketName, @PathParam("object") @Encoded String objectName);
/**
* Deletes an object and its metadata. Deletions are permanent if versioning is not enabled for the bucket, or if the
@@ -221,7 +222,7 @@ public interface ObjectApi {
@DELETE
@Path("storage/v1/b/{bucket}/o/{object}")
@Fallback(FalseOnNotFoundOr404.class)
- boolean deleteObject(@PathParam("bucket") String bucketName, @PathParam("object") String objectName,
+ boolean deleteObject(@PathParam("bucket") String bucketName, @PathParam("object") @Encoded String objectName,
DeleteObjectOptions options);
/**
@@ -271,8 +272,9 @@ public interface ObjectApi {
@Produces(APPLICATION_JSON)
@Path("storage/v1/b/{bucket}/o/{object}")
@Fallback(NullOnNotFoundOr404.class)
- GoogleCloudStorageObject updateObject(@PathParam("bucket") String bucketName, @PathParam("object") String objectName,
- @BinderParam(BindToJsonPayload.class) ObjectTemplate objectTemplate);
+ GoogleCloudStorageObject updateObject(@PathParam("bucket") String bucketName,
+ @PathParam("object") @Encoded String objectName,
+ @BinderParam(BindToJsonPayload.class) ObjectTemplate objectTemplate);
/**
* Updates an object
@@ -294,8 +296,9 @@ public interface ObjectApi {
@Produces(APPLICATION_JSON)
@Path("storage/v1/b/{bucket}/o/{object}")
@Fallback(NullOnNotFoundOr404.class)
- GoogleCloudStorageObject updateObject(@PathParam("bucket") String bucketName, @PathParam("object") String objectName,
- @BinderParam(BindToJsonPayload.class) ObjectTemplate objectTemplate, UpdateObjectOptions options);
+ GoogleCloudStorageObject updateObject(@PathParam("bucket") String bucketName,
+ @PathParam("object") @Encoded String objectName,
+ @BinderParam(BindToJsonPayload.class) ObjectTemplate objectTemplate, UpdateObjectOptions options);
/**
* Updates an object according to patch semantics
@@ -315,8 +318,9 @@ public interface ObjectApi {
@Produces(APPLICATION_JSON)
@Path("storage/v1/b/{bucket}/o/{object}")
@Fallback(NullOnNotFoundOr404.class)
- GoogleCloudStorageObject patchObject(@PathParam("bucket") String bucketName, @PathParam("object") String objectName,
- @BinderParam(BindToJsonPayload.class) ObjectTemplate objectTemplate);
+ GoogleCloudStorageObject patchObject(@PathParam("bucket") String bucketName,
+ @PathParam("object") @Encoded String objectName,
+ @BinderParam(BindToJsonPayload.class) ObjectTemplate objectTemplate);
/**
* Updates an object according to patch semantics
@@ -338,8 +342,9 @@ public interface ObjectApi {
@Produces(APPLICATION_JSON)
@Path("storage/v1/b/{bucket}/o/{object}")
@Fallback(NullOnNotFoundOr404.class)
- GoogleCloudStorageObject patchObject(@PathParam("bucket") String bucketName, @PathParam("object") String objectName,
- @BinderParam(BindToJsonPayload.class) ObjectTemplate objectTemplate, UpdateObjectOptions options);
+ GoogleCloudStorageObject patchObject(@PathParam("bucket") String bucketName,
+ @PathParam("object") @Encoded String objectName,
+ @BinderParam(BindToJsonPayload.class) ObjectTemplate objectTemplate, UpdateObjectOptions options);
/**
* Concatenates a list of existing objects into a new object in the same bucket.
@@ -358,7 +363,7 @@ public interface ObjectApi {
@Consumes(APPLICATION_JSON)
@Path("storage/v1/b/{destinationBucket}/o/{destinationObject}/compose")
GoogleCloudStorageObject composeObjects(@PathParam("destinationBucket") String destinationBucket,
- @PathParam("destinationObject") String destinationObject,
+ @PathParam("destinationObject") @Encoded String destinationObject,
@BinderParam(BindToJsonPayload.class) ComposeObjectTemplate composeObjectTemplate);
/**
@@ -380,7 +385,7 @@ public interface ObjectApi {
@Consumes(APPLICATION_JSON)
@Path("storage/v1/b/{destinationBucket}/o/{destinationObject}/compose")
GoogleCloudStorageObject composeObjects(@PathParam("destinationBucket") String destinationBucket,
- @PathParam("destinationObject") String destinationObject,
+ @PathParam("destinationObject") @Encoded String destinationObject,
@BinderParam(BindToJsonPayload.class) ComposeObjectTemplate composeObjectTemplate,
ComposeObjectOptions options);
@@ -403,8 +408,9 @@ public interface ObjectApi {
@Consumes(APPLICATION_JSON)
@Path("/storage/v1/b/{sourceBucket}/o/{sourceObject}/copyTo/b/{destinationBucket}/o/{destinationObject}")
GoogleCloudStorageObject copyObject(@PathParam("destinationBucket") String destinationBucket,
- @PathParam("destinationObject") String destinationObject, @PathParam("sourceBucket") String sourceBucket,
- @PathParam("sourceObject") String sourceObject);
+ @PathParam("destinationObject") @Encoded String destinationObject,
+ @PathParam("sourceBucket") String sourceBucket,
+ @PathParam("sourceObject") @Encoded String sourceObject);
/**
* Copies an object to a specified location with updated metadata.
@@ -427,8 +433,10 @@ public interface ObjectApi {
@Consumes(APPLICATION_JSON)
@Path("/storage/v1/b/{sourceBucket}/o/{sourceObject}/copyTo/b/{destinationBucket}/o/{destinationObject}")
GoogleCloudStorageObject copyObject(@PathParam("destinationBucket") String destinationBucket,
- @PathParam("destinationObject") String destinationObject, @PathParam("sourceBucket") String sourceBucket,
- @PathParam("sourceObject") String sourceObject, @BinderParam(BindToJsonPayload.class) ObjectTemplate template);
+ @PathParam("destinationObject") @Encoded String destinationObject,
+ @PathParam("sourceBucket") String sourceBucket,
+ @PathParam("sourceObject") @Encoded String sourceObject,
+ @BinderParam(BindToJsonPayload.class) ObjectTemplate template);
/**
* Copies an object to a specified location. Optionally overrides metadata.
@@ -451,8 +459,9 @@ public interface ObjectApi {
@Consumes(APPLICATION_JSON)
@Path("/storage/v1/b/{sourceBucket}/o/{sourceObject}/copyTo/b/{destinationBucket}/o/{destinationObject}")
GoogleCloudStorageObject copyObject(@PathParam("destinationBucket") String destinationBucket,
- @PathParam("destinationObject") String destinationObject, @PathParam("sourceBucket") String sourceBucket,
- @PathParam("sourceObject") String sourceObject, CopyObjectOptions options);
+ @PathParam("destinationObject") @Encoded String destinationObject,
+ @PathParam("sourceBucket") String sourceBucket,
+ @PathParam("sourceObject") @Encoded String sourceObject, CopyObjectOptions options);
/**
* Stores a new object with metadata.
@@ -495,9 +504,8 @@ public interface ObjectApi {
@Consumes(APPLICATION_JSON)
@Path("/storage/v1/b/{sourceBucket}/o/{sourceObject}/rewriteTo/b/{destinationBucket}/o/{destinationObject}")
RewriteResponse rewriteObjects(@PathParam("destinationBucket") String destinationBucket,
- @PathParam("destinationObject") String destinationObject,
- @PathParam("sourceBucket") String sourceBucket,
- @PathParam("sourceObject") String sourceObject);
+ @PathParam("destinationObject") @Encoded String destinationObject,
+ @PathParam("sourceBucket") String sourceBucket, @PathParam("sourceObject") @Encoded String sourceObject);
/**
* Rewrites a source object to a destination object.
@@ -520,8 +528,8 @@ public interface ObjectApi {
@Consumes(APPLICATION_JSON)
@Path("/storage/v1/b/{sourceBucket}/o/{sourceObject}/rewriteTo/b/{destinationBucket}/o/{destinationObject}")
RewriteResponse rewriteObjects(@PathParam("destinationBucket") String destinationBucket,
- @PathParam("destinationObject") String destinationObject,
- @PathParam("sourceBucket") String sourceBucket,
- @PathParam("sourceObject") String sourceObject,
- RewriteObjectOptions options);
+ @PathParam("destinationObject") @Encoded String destinationObject,
+ @PathParam("sourceBucket") String sourceBucket,
+ @PathParam("sourceObject") @Encoded String sourceObject,
+ RewriteObjectOptions options);
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2385ba90/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 162c45a..db1bcd8 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
@@ -143,6 +143,7 @@ public class GoogleCloudStorageBlobIntegrationLiveTest extends BaseBlobIntegrati
return new Object[][] { { "file.xml", "text/xml", file, realObject },
{ "string.xml", "text/xml", realObject, realObject },
+ { "stringwith/slash.xml", "text/xml", realObject, realObject },
{ "bytes.xml", "application/octet-stream", realObject.getBytes(), realObject } };
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2385ba90/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
index 9906a90..35e9827 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
@@ -40,6 +40,7 @@ import org.jclouds.googlecloudstorage.parse.ParseGoogleCloudStorageObjectListTes
import org.jclouds.googlecloudstorage.parse.ParseObjectRewriteResponse;
import org.jclouds.http.internal.PayloadEnclosingImpl;
import org.jclouds.io.PayloadEnclosing;
+import org.jclouds.util.Strings2;
import org.testng.annotations.Test;
import com.google.common.net.MediaType;
@@ -57,6 +58,13 @@ public class ObjectApiMockTest extends BaseGoogleCloudStorageApiMockTest {
assertSent(server, "GET", "/storage/v1/b/test/o/file_name", null);
}
+ public void existsEncoded() throws Exception {
+ server.enqueue(jsonResponse("/object_encoded_get.json"));
+
+ assertTrue(objectApi().objectExists("test", Strings2.urlEncode("dir/file name")));
+ assertSent(server, "GET", "/storage/v1/b/test/o/dir%2Ffile%20name", null);
+ }
+
public void exists_4xx() throws Exception {
server.enqueue(response404());
@@ -120,6 +128,14 @@ public class ObjectApiMockTest extends BaseGoogleCloudStorageApiMockTest {
assertSent(server, "DELETE", "/storage/v1/b/test/o/object_name", null);
}
+ public void delete_encoded() throws Exception {
+ server.enqueue(new MockResponse());
+
+ // TODO: Should this be returning True on not found?
+ assertTrue(objectApi().deleteObject("test", Strings2.urlEncode("dir/object name")));
+ assertSent(server, "DELETE", "/storage/v1/b/test/o/dir%2Fobject%20name", null);
+ }
+
public void list() throws Exception {
server.enqueue(jsonResponse("/object_list.json"));
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2385ba90/providers/google-cloud-storage/src/test/resources/object_encoded_get.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/object_encoded_get.json b/providers/google-cloud-storage/src/test/resources/object_encoded_get.json
new file mode 100644
index 0000000..7fdb843
--- /dev/null
+++ b/providers/google-cloud-storage/src/test/resources/object_encoded_get.json
@@ -0,0 +1,21 @@
+{
+ "kind": "storage#object",
+ "id": "test/dir%2Ffile%20name/1000",
+ "selfLink": "https://www.googleapis.com/storage/v1/b/test/o/dir%2Ffile%20name",
+ "name": "dir%2Ffile%20name",
+ "bucket": "test",
+ "generation": "1000",
+ "metageneration": "8",
+ "contentType": "application/x-tar",
+ "updated": "2014-09-27T00:01:44.819",
+ "storageClass": "STANDARD",
+ "size": "1000",
+ "md5Hash": "md5Hash",
+ "mediaLink": "https://www.googleapis.com/download/storage/v1/b/test/o/dir%2Ffile%20name?generation=1000&alt=media",
+ "owner": {
+ "entity": "entity",
+ "entityId": "entityId"
+ },
+ "crc32c": "crc32c",
+ "etag": "etag"
+}
[20/50] jclouds git commit: Simplify list handling.
Posted by ga...@apache.org.
Simplify list handling.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/25cb06c9
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/25cb06c9
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/25cb06c9
Branch: refs/heads/master
Commit: 25cb06c9fe453496a84c4679d5c9a5bcf4f7d40c
Parents: 834b3d5
Author: Timur Alperovich <ti...@gmail.com>
Authored: Thu Aug 20 17:14:00 2015 -0700
Committer: Timur Alperovich <ti...@gmail.com>
Committed: Thu Aug 20 17:55:55 2015 -0700
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 16 +++++-----------
1 file changed, 5 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/25cb06c9/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 7fd3643..924fad3 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
@@ -187,21 +187,15 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
/** Returns list of of all the objects */
@Override
public PageSet<? extends StorageMetadata> list(String container) {
- ListPageWithPrefixes<GoogleCloudStorageObject> gcsList = api.getObjectApi().listObjects(container);
- PageSet<? extends StorageMetadata> list = objectListToStorageMetadata.apply(gcsList);
- return list;
+ return list(container, ListContainerOptions.NONE);
}
@Override
public PageSet<? extends StorageMetadata> list(String container, ListContainerOptions options) {
- if (options != null && options != ListContainerOptions.NONE) {
- ListObjectOptions listOptions = listContainerOptionsToListObjectOptions.apply(options);
- ListPageWithPrefixes<GoogleCloudStorageObject> gcsList = api.getObjectApi().listObjects(container, listOptions);
- PageSet<? extends StorageMetadata> list = objectListToStorageMetadata.apply(gcsList);
- return options.isDetailed() ? fetchBlobMetadataProvider.get().setContainerName(container).apply(list) : list;
- } else {
- return list(container);
- }
+ ListObjectOptions listOptions = listContainerOptionsToListObjectOptions.apply(options);
+ ListPageWithPrefixes<GoogleCloudStorageObject> gcsList = api.getObjectApi().listObjects(container, listOptions);
+ PageSet<? extends StorageMetadata> list = objectListToStorageMetadata.apply(gcsList);
+ return options.isDetailed() ? fetchBlobMetadataProvider.get().setContainerName(container).apply(list) : list;
}
/**
[21/50] jclouds git commit: JCLOUDS-894: Add portable multipart
upload for GCS
Posted by ga...@apache.org.
JCLOUDS-894: Add portable multipart upload for GCS
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/2e1e109a
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/2e1e109a
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/2e1e109a
Branch: refs/heads/master
Commit: 2e1e109a0c18b6b7375f0f8da2ee345518131902
Parents: e222567
Author: Andrew Gaul <ga...@apache.org>
Authored: Wed Aug 26 12:48:44 2015 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Wed Aug 26 14:08:10 2015 -0700
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 59 ++++++--
.../internal/MultipartNamingStrategy.java | 30 ----
.../strategy/internal/MultipartUpload.java | 36 -----
.../MultipartUploadSlicingAlgorithm.java | 139 -------------------
.../internal/MultipartUploadStrategy.java | 26 ----
.../SequentialMultipartUploadStrategy.java | 100 -------------
...ogleCloudStorageBlobIntegrationLiveTest.java | 24 +---
7 files changed, 47 insertions(+), 367 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2e1e109a/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 924fad3..e852704 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
@@ -58,15 +58,16 @@ import org.jclouds.googlecloudstorage.blobstore.functions.BlobStoreListContainer
import org.jclouds.googlecloudstorage.blobstore.functions.BucketToStorageMetadata;
import org.jclouds.googlecloudstorage.blobstore.functions.ObjectListToStorageMetadata;
import org.jclouds.googlecloudstorage.blobstore.functions.ObjectToBlobMetadata;
-import org.jclouds.googlecloudstorage.blobstore.strategy.internal.MultipartUploadStrategy;
import org.jclouds.googlecloudstorage.domain.Bucket;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences;
import org.jclouds.googlecloudstorage.domain.GoogleCloudStorageObject;
import org.jclouds.googlecloudstorage.domain.ListPageWithPrefixes;
import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
+import org.jclouds.googlecloudstorage.domain.templates.ComposeObjectTemplate;
import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate;
+import org.jclouds.googlecloudstorage.options.InsertObjectOptions;
import org.jclouds.googlecloudstorage.options.ListObjectOptions;
import org.jclouds.http.HttpResponseException;
import org.jclouds.io.ContentMetadata;
@@ -77,6 +78,7 @@ import com.google.common.base.Charsets;
import com.google.common.base.Function;
import com.google.common.base.Supplier;
import com.google.common.base.Throwables;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.hash.HashCode;
import com.google.inject.Provider;
@@ -90,7 +92,6 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
private final Provider<FetchBlobMetadata> fetchBlobMetadataProvider;
private final BlobMetadataToObjectTemplate blobMetadataToObjectTemplate;
private final BlobStoreListContainerOptionsToListObjectOptions listContainerOptionsToListObjectOptions;
- private final Provider<MultipartUploadStrategy> multipartUploadStrategy;
private final Supplier<String> projectId;
private final BlobToHttpGetOptions blob2ObjectGetOptions;
@@ -101,7 +102,7 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
Provider<FetchBlobMetadata> fetchBlobMetadataProvider,
BlobMetadataToObjectTemplate blobMetadataToObjectTemplate,
BlobStoreListContainerOptionsToListObjectOptions listContainerOptionsToListObjectOptions,
- Provider<MultipartUploadStrategy> multipartUploadStrategy, @CurrentProject Supplier<String> projectId,
+ @CurrentProject Supplier<String> projectId,
BlobToHttpGetOptions blob2ObjectGetOptions) {
super(context, blobUtils, defaultLocation, locations, slicer);
this.api = api;
@@ -112,7 +113,6 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
this.blobMetadataToObjectTemplate = blobMetadataToObjectTemplate;
this.listContainerOptionsToListObjectOptions = listContainerOptionsToListObjectOptions;
this.projectId = projectId;
- this.multipartUploadStrategy = multipartUploadStrategy;
this.blob2ObjectGetOptions = checkNotNull(blob2ObjectGetOptions, "blob2ObjectGetOptions");
}
@@ -231,7 +231,7 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
@Override
public String putBlob(String container, Blob blob, PutOptions options) {
if (options.isMultipart()) {
- return multipartUploadStrategy.get().execute(container, blob);
+ return putMultipartBlob(container, blob, options);
} else {
return putBlob(container, blob);
}
@@ -354,41 +354,74 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
@Override
public MultipartUpload initiateMultipartUpload(String container, BlobMetadata blobMetadata) {
- throw new UnsupportedOperationException("not yet implemented");
+ String uploadId = blobMetadata.getName();
+ return MultipartUpload.create(container, blobMetadata.getName(), uploadId, blobMetadata);
}
@Override
public void abortMultipartUpload(MultipartUpload mpu) {
- throw new UnsupportedOperationException("not yet implemented");
+ ImmutableList.Builder<String> builder = ImmutableList.builder();
+ List<MultipartPart> parts = listMultipartUpload(mpu);
+ for (MultipartPart part : parts) {
+ builder.add(getMPUPartName(mpu, part.partNumber()));
+ }
+ removeBlobs(mpu.containerName(), builder.build());
}
@Override
public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) {
- throw new UnsupportedOperationException("not yet implemented");
+ ImmutableList.Builder<GoogleCloudStorageObject> builder = ImmutableList.builder();
+ for (MultipartPart part : parts) {
+ builder.add(api.getObjectApi().getObject(mpu.containerName(), getMPUPartName(mpu, part.partNumber())));
+ }
+ ObjectTemplate destination = blobMetadataToObjectTemplate.apply(mpu.blobMetadata());
+ ComposeObjectTemplate template = ComposeObjectTemplate.builder().fromGoogleCloudStorageObject(builder.build())
+ .destination(destination).build();
+ return api.getObjectApi().composeObjects(mpu.containerName(), mpu.blobName(), template).etag();
+ // TODO: delete components?
}
@Override
public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) {
- throw new UnsupportedOperationException("not yet implemented");
+ String partName = getMPUPartName(mpu, partNumber);
+ long partSize = payload.getContentMetadata().getContentLength();
+ InsertObjectOptions insertOptions = new InsertObjectOptions().name(partName);
+ GoogleCloudStorageObject object = api.getObjectApi().simpleUpload(mpu.containerName(),
+ mpu.blobMetadata().getContentMetadata().getContentType(), partSize, payload, insertOptions);
+ return MultipartPart.create(partNumber, partSize, object.etag());
}
@Override
public List<MultipartPart> listMultipartUpload(MultipartUpload mpu) {
- throw new UnsupportedOperationException("not yet implemented");
+ ImmutableList.Builder<MultipartPart> parts = ImmutableList.builder();
+ PageSet<? extends StorageMetadata> pageSet = list(mpu.containerName(),
+ new ListContainerOptions().prefix(mpu.blobName() + "_"));
+ // TODO: pagination
+ for (StorageMetadata sm : pageSet) {
+ int lastUnderscore = sm.getName().lastIndexOf('_');
+ int partNumber = Integer.parseInt(sm.getName().substring(lastUnderscore + 1));
+ parts.add(MultipartPart.create(partNumber, sm.getSize(), sm.getETag()));
+ }
+ return parts.build();
}
@Override
public long getMinimumMultipartPartSize() {
- throw new UnsupportedOperationException("not yet implemented");
+ return 5L * 1024L * 1024L;
}
@Override
public long getMaximumMultipartPartSize() {
- throw new UnsupportedOperationException("not yet implemented");
+ return 5L * 1024L * 1024L * 1024L;
}
@Override
public int getMaximumNumberOfParts() {
- throw new UnsupportedOperationException("not yet implemented");
+ // TODO: should this be 32? See: https://cloud.google.com/storage/docs/composite-objects
+ return 10 * 1000;
+ }
+
+ private static String getMPUPartName(MultipartUpload mpu, int partNumber) {
+ return String.format("%s_%08d", mpu.id(), partNumber);
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2e1e109a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartNamingStrategy.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartNamingStrategy.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartNamingStrategy.java
deleted file mode 100644
index 89e76a3..0000000
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartNamingStrategy.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.blobstore.strategy.internal;
-
-import javax.inject.Singleton;
-
-@Singleton
-public class MultipartNamingStrategy {
-
- private static final String PART_SEPARATOR = "_";
-
- protected String getPartName(String key, int partNumber, int totalParts) {
- int base = (int) Math.log10(totalParts) + 1;
- return String.format("%s%s%0" + base + "d", key, PART_SEPARATOR, partNumber);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2e1e109a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartUpload.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartUpload.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartUpload.java
deleted file mode 100644
index 2edc6c5..0000000
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartUpload.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.blobstore.strategy.internal;
-
-public final class MultipartUpload {
-
- private MultipartUpload() {
- }
-
- /* Maximum number of parts per upload */
- public static final int MAX_NUMBER_OF_PARTS = 10000;
- /* Maximum number of parts returned for a list parts request */
- public static final int MAX_LIST_PARTS_RETURNED = 1000;
- /* Maximum number of multipart uploads returned in a list multipart uploads request */
- public static final int MAX_LIST_MPU_RETURNED = 1000;
-
- /**
- * part size 5 MB to 5 GB, last part can be < 5 MB
- */
- public static final long MIN_PART_SIZE = 5L * 1024L * 1024L;
- public static final long MAX_PART_SIZE = 5L * 1024L * 1024L * 1024L;
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2e1e109a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartUploadSlicingAlgorithm.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartUploadSlicingAlgorithm.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartUploadSlicingAlgorithm.java
deleted file mode 100644
index dd8c5ab..0000000
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartUploadSlicingAlgorithm.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.blobstore.strategy.internal;
-
-import javax.annotation.Resource;
-import javax.inject.Named;
-
-import org.jclouds.blobstore.reference.BlobStoreConstants;
-import org.jclouds.logging.Logger;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.inject.Inject;
-
-public class MultipartUploadSlicingAlgorithm {
-
- @Resource
- @Named(BlobStoreConstants.BLOBSTORE_LOGGER)
- protected Logger logger = Logger.NULL;
-
- @VisibleForTesting
- static final long DEFAULT_PART_SIZE = 32 * 1024 * 1024;
-
- @VisibleForTesting
- static final int DEFAULT_MAGNITUDE_BASE = 100;
-
- @Inject(optional = true)
- @Named("jclouds.mpu.parts.size")
- @VisibleForTesting
- long defaultPartSize = DEFAULT_PART_SIZE;
-
- @Inject(optional = true)
- @Named("jclouds.mpu.parts.magnitude")
- @VisibleForTesting
- int magnitudeBase = DEFAULT_MAGNITUDE_BASE;
-
- // calculated only once, but not from the constructor
- private volatile int parts; // required number of parts with chunkSize
- private volatile long chunkSize;
- private volatile long remaining; // number of bytes remained for the last part
-
- // sequentially updated values
- private volatile int part;
- private volatile long chunkOffset;
- private volatile long copied;
-
- @VisibleForTesting
- protected long calculateChunkSize(long length) {
- long unitPartSize = defaultPartSize; // first try with default part size
- int parts = (int) (length / unitPartSize);
- long partSize = unitPartSize;
- int magnitude = parts / magnitudeBase;
- if (magnitude > 0) {
- partSize = magnitude * unitPartSize;
- if (partSize > MultipartUpload.MAX_PART_SIZE) {
- partSize = MultipartUpload.MAX_PART_SIZE;
- unitPartSize = MultipartUpload.MAX_PART_SIZE;
- }
- parts = (int) (length / partSize);
- if (parts * partSize < length) {
- partSize = (magnitude + 1) * unitPartSize;
- if (partSize > MultipartUpload.MAX_PART_SIZE) {
- partSize = MultipartUpload.MAX_PART_SIZE;
- unitPartSize = MultipartUpload.MAX_PART_SIZE;
- }
- parts = (int) (length / partSize);
- }
- }
- if (parts > MultipartUpload.MAX_NUMBER_OF_PARTS) { // if splits in too many parts or
- // cannot be split
- unitPartSize = MultipartUpload.MIN_PART_SIZE; // take the minimum part size
- parts = (int) (length / unitPartSize);
- }
- if (parts > MultipartUpload.MAX_NUMBER_OF_PARTS) { // if still splits in too many parts
- parts = MultipartUpload.MAX_NUMBER_OF_PARTS - 1; // limit them. do not care about not
- // covering
- }
- long remainder = length % unitPartSize;
- if (remainder == 0 && parts > 0) {
- parts -= 1;
- }
- this.chunkSize = partSize;
- this.parts = parts;
- this.remaining = length - partSize * parts;
- logger.debug(" %d bytes partitioned in %d parts of part size: %d, remaining: %d%s", length, parts, chunkSize,
- remaining, remaining > MultipartUpload.MAX_PART_SIZE ? " overflow!" : "");
- return this.chunkSize;
- }
-
- public long getCopied() {
- return copied;
- }
-
- public void setCopied(long copied) {
- this.copied = copied;
- }
-
- @VisibleForTesting
- protected int getParts() {
- return parts;
- }
-
- protected int getNextPart() {
- return ++part;
- }
-
- protected void addCopied(long copied) {
- this.copied += copied;
- }
-
- protected long getNextChunkOffset() {
- long next = chunkOffset;
- chunkOffset += getChunkSize();
- return next;
- }
-
- @VisibleForTesting
- protected long getChunkSize() {
- return chunkSize;
- }
-
- @VisibleForTesting
- protected long getRemaining() {
- return remaining;
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2e1e109a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartUploadStrategy.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartUploadStrategy.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartUploadStrategy.java
deleted file mode 100644
index 89c4879..0000000
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/MultipartUploadStrategy.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.blobstore.strategy.internal;
-
-import org.jclouds.blobstore.domain.Blob;
-
-import com.google.inject.ImplementedBy;
-
-@ImplementedBy(SequentialMultipartUploadStrategy.class)
-public abstract class MultipartUploadStrategy {
- public abstract String execute(String container, Blob blob);
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2e1e109a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java
deleted file mode 100644
index 83b3823..0000000
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.blobstore.strategy.internal;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.List;
-
-import javax.inject.Provider;
-
-import org.jclouds.blobstore.domain.Blob;
-import org.jclouds.blobstore.domain.BlobBuilder;
-import org.jclouds.googlecloudstorage.GoogleCloudStorageApi;
-import org.jclouds.googlecloudstorage.blobstore.functions.BlobMetadataToObjectTemplate;
-import org.jclouds.googlecloudstorage.domain.GoogleCloudStorageObject;
-import org.jclouds.googlecloudstorage.domain.templates.ComposeObjectTemplate;
-import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate;
-import org.jclouds.googlecloudstorage.options.InsertObjectOptions;
-import org.jclouds.io.Payload;
-import org.jclouds.io.PayloadSlicer;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-
-public final class SequentialMultipartUploadStrategy extends MultipartUploadStrategy {
-
- private final GoogleCloudStorageApi api;
- private final Provider<BlobBuilder> blobBuilders;
- private final BlobMetadataToObjectTemplate blob2ObjectTemplate;
- private final MultipartUploadSlicingAlgorithm algorithm;
- private final PayloadSlicer slicer;
- private final MultipartNamingStrategy namingStrategy;
-
- @Inject SequentialMultipartUploadStrategy(GoogleCloudStorageApi api, Provider<BlobBuilder> blobBuilders,
- BlobMetadataToObjectTemplate blob2ObjectTemplate, MultipartUploadSlicingAlgorithm algorithm,
- PayloadSlicer slicer, MultipartNamingStrategy namingStrategy) {
- this.api = api;
- this.blobBuilders = blobBuilders;
- this.blob2ObjectTemplate = blob2ObjectTemplate;
- this.algorithm = algorithm;
- this.slicer = slicer;
- this.namingStrategy = namingStrategy;
- }
-
- @Override
- public String execute(String container, Blob blob) {
-
- ObjectTemplate destination = blob2ObjectTemplate.apply(blob.getMetadata());
-
- List<GoogleCloudStorageObject> sourceList = Lists.newArrayList();
-
- String key = blob.getMetadata().getName();
- Payload payload = blob.getPayload();
- Long length = payload.getContentMetadata().getContentLength();
- if (length == null) {
- length = blob.getMetadata().getContentMetadata().getContentLength();
- payload.getContentMetadata().setContentLength(length);
- }
- checkNotNull(length,
- "please invoke payload.getContentMetadata().setContentLength(length) prior to multipart upload");
- long chunkSize = algorithm.calculateChunkSize(length);
- int partCount = algorithm.getParts();
- if (partCount > 0) {
- for (Payload part : slicer.slice(payload, chunkSize)) {
- int partNum = algorithm.getNextPart();
- String partName = namingStrategy.getPartName(key, partNum, partCount);
- long partSize = ((partCount + 1) == partNum) ? algorithm.getRemaining() : algorithm.getChunkSize();
-
- InsertObjectOptions insertOptions = new InsertObjectOptions().name(partName);
-
- GoogleCloudStorageObject object = api.getObjectApi().simpleUpload(container,
- blob.getMetadata().getContentMetadata().getContentType(), partSize, part, insertOptions);
-
- sourceList.add(object);
- }
- ComposeObjectTemplate template = ComposeObjectTemplate.builder().fromGoogleCloudStorageObject(sourceList)
- .destination(destination).build();
-
- return api.getObjectApi().composeObjects(container, key, template).etag();
- } else {
- return api.getObjectApi()
- .multipartUpload(container, blob2ObjectTemplate.apply(blob.getMetadata()), blob.getPayload())
- .etag();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2e1e109a/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 783bb07..162c45a 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
@@ -38,7 +38,6 @@ import org.jclouds.blobstore.domain.StorageMetadata;
import org.jclouds.blobstore.integration.internal.BaseBlobIntegrationTest;
import org.jclouds.blobstore.options.PutOptions;
import org.jclouds.googlecloud.internal.TestProperties;
-import org.jclouds.googlecloudstorage.blobstore.strategy.internal.MultipartUpload;
import org.jclouds.io.Payloads;
import org.jclouds.io.payloads.ByteSourcePayload;
import org.jclouds.utils.TestUtils;
@@ -57,7 +56,7 @@ import com.google.common.io.Files;
@Test(groups = { "live", "blobstorelive" })
public class GoogleCloudStorageBlobIntegrationLiveTest extends BaseBlobIntegrationTest {
- private long PART_SIZE = MultipartUpload.MIN_PART_SIZE;
+ private long PART_SIZE = 5L * 1024L * 1024L;
@Override
protected long getMinimumMultipartBlobSize() {
@@ -94,27 +93,6 @@ public class GoogleCloudStorageBlobIntegrationLiveTest extends BaseBlobIntegrati
}
@Override
- @Test(groups = { "integration", "live" })
- public void testMultipartUploadSinglePart() throws SkipException {
- throw new SkipException("Implement MultipartUploads uploads");
- // TODO: Implement MultipartUploads uploads
- }
-
- @Override
- @Test(groups = { "integration", "live" })
- public void testMultipartUploadMultipleParts() throws SkipException {
- throw new SkipException("Implement MultipartUploads uploads");
- // TODO: Implement MultipartUploads uploads
- }
-
- @Override
- @Test(groups = { "integration", "live" })
- public void testMultipartUploadNoPartsAbort() throws SkipException {
- throw new SkipException("Implement MultipartUploads uploads");
- // TODO: Implement MultipartUploads uploads
- }
-
- @Override
@Test(groups = { "integration", "live" }, dataProvider = "gcsPutTest")
public void testPutObject(String name, String type, Object content, Object realObject) throws InterruptedException,
IOException {
[44/50] jclouds git commit: Next development version 2.1.0-SNAPSHOT
Posted by ga...@apache.org.
Next development version 2.1.0-SNAPSHOT
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/f4a2be05
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/f4a2be05
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/f4a2be05
Branch: refs/heads/master
Commit: f4a2be0519f11c4d582b574582fcb0505e622dfc
Parents: 214a5e7
Author: Ignasi Barrera <na...@apache.org>
Authored: Tue Nov 15 01:13:00 2016 +0100
Committer: Ignasi Barrera <na...@apache.org>
Committed: Tue Nov 15 01:13:00 2016 +0100
----------------------------------------------------------------------
providers/google-cloud-storage/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/f4a2be05/providers/google-cloud-storage/pom.xml
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/pom.xml b/providers/google-cloud-storage/pom.xml
index a4351bc..6332b9e 100644
--- a/providers/google-cloud-storage/pom.xml
+++ b/providers/google-cloud-storage/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.jclouds.labs</groupId>
<artifactId>jclouds-labs-google</artifactId>
- <version>2.0.0</version>
+ <version>2.1.0-SNAPSHOT</version>
</parent>
<!-- TODO: when out of labs, switch to org.jclouds.provider -->
[18/50] jclouds git commit: JCLOUDS-929: Plumb delimiter and prefix
to GCS.
Posted by ga...@apache.org.
JCLOUDS-929: Plumb delimiter and prefix to GCS.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/834b3d5d
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/834b3d5d
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/834b3d5d
Branch: refs/heads/master
Commit: 834b3d5d2f1a2b80f611532c5262fedefc50be1a
Parents: efdc715
Author: Timur Alperovich <ti...@gmail.com>
Authored: Thu Aug 20 15:29:41 2015 -0700
Committer: Timur Alperovich <ti...@gmail.com>
Committed: Thu Aug 20 17:55:48 2015 -0700
----------------------------------------------------------------------
...ListContainerOptionsToListObjectOptions.java | 11 ++++++-
.../functions/ObjectListToStorageMetadata.java | 30 ++++++++------------
...loudStorageContainerIntegrationLiveTest.java | 10 -------
3 files changed, 22 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/834b3d5d/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobStoreListContainerOptionsToListObjectOptions.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobStoreListContainerOptionsToListObjectOptions.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobStoreListContainerOptionsToListObjectOptions.java
index 581e9ce..15b5f4f 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobStoreListContainerOptionsToListObjectOptions.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobStoreListContainerOptionsToListObjectOptions.java
@@ -26,18 +26,27 @@ import com.google.common.base.Function;
public class BlobStoreListContainerOptionsToListObjectOptions implements
Function<ListContainerOptions, ListObjectOptions> {
public ListObjectOptions apply(ListContainerOptions from) {
+ if (from.getDir() != null && (from.getPrefix() != null || from.getDelimiter() != null)) {
+ throw new IllegalArgumentException("Cannot pass both directory and prefix/delimiter");
+ }
checkNotNull(from, "set options to instance NONE instead of passing null");
ListObjectOptions httpOptions = new ListObjectOptions();
- if (!from.isRecursive()) {
+ if (!from.isRecursive() && from.getDelimiter() == null) {
httpOptions = httpOptions.delimiter("/");
}
+ if (from.getDelimiter() != null) {
+ httpOptions = httpOptions.delimiter(from.getDelimiter());
+ }
if (from.getDir() != null) {
String path = from.getDir();
if (!path.endsWith("/"))
path += "/";
httpOptions = httpOptions.prefix(path);
}
+ if (from.getPrefix() != null) {
+ httpOptions.prefix(from.getPrefix());
+ }
if (from.getMarker() != null) {
httpOptions = httpOptions.pageToken(from.getMarker());
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/834b3d5d/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectListToStorageMetadata.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectListToStorageMetadata.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectListToStorageMetadata.java
index 22f00da..4f7f1d0 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectListToStorageMetadata.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectListToStorageMetadata.java
@@ -16,22 +16,22 @@
*/
package org.jclouds.googlecloudstorage.blobstore.functions;
-import java.util.Map;
+import java.util.SortedSet;
import javax.inject.Inject;
-import org.jclouds.blobstore.domain.BlobMetadata;
+import org.jclouds.blobstore.domain.MutableStorageMetadata;
import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
import org.jclouds.blobstore.domain.StorageType;
+import org.jclouds.blobstore.domain.internal.MutableStorageMetadataImpl;
import org.jclouds.blobstore.domain.internal.PageSetImpl;
-import org.jclouds.blobstore.domain.internal.StorageMetadataImpl;
import org.jclouds.googlecloudstorage.domain.GoogleCloudStorageObject;
import org.jclouds.googlecloudstorage.domain.ListPageWithPrefixes;
import com.google.common.base.Function;
-import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
+import com.google.common.collect.Sets;
public class ObjectListToStorageMetadata
implements Function<ListPageWithPrefixes<GoogleCloudStorageObject>, PageSet<? extends StorageMetadata>> {
@@ -46,19 +46,13 @@ public class ObjectListToStorageMetadata
from = ListPageWithPrefixes.create(null, null, null);
}
- return new PageSetImpl<StorageMetadata>(Iterables.transform(Iterables.transform(from, object2blobMd),
- new Function<BlobMetadata, StorageMetadata>() {
- public StorageMetadata apply(BlobMetadata input) {
- Map<String, String> userMetaData = (input != null && input.getUserMetadata() != null) ? input
- .getUserMetadata() : ImmutableMap.<String, String> of();
- if (input.getContentMetadata().getContentType().equals("application/directory")) {
- return new StorageMetadataImpl(StorageType.RELATIVE_PATH, input.getProviderId(), input
- .getName(), input.getLocation(), input.getUri(), input.getETag(), input
- .getCreationDate(), input.getLastModified(), userMetaData,
- input.getSize());
- }
- return input;
- }
- }), from.nextPageToken());
+ SortedSet<StorageMetadata> results = Sets.<StorageMetadata> newTreeSet(Iterables.transform(from, object2blobMd));
+ for (String prefix : from.prefixes()) {
+ MutableStorageMetadata metadata = new MutableStorageMetadataImpl();
+ metadata.setType(StorageType.RELATIVE_PATH);
+ metadata.setName(prefix);
+ results.add(metadata);
+ }
+ return new PageSetImpl<StorageMetadata>(results, from.nextPageToken());
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/834b3d5d/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
index d4f5fb8..c129ae8 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
@@ -105,14 +105,4 @@ public class GoogleCloudStorageContainerIntegrationLiveTest extends BaseContaine
public void testListMarkerAfterLastKey() throws Exception {
throw new SkipException("cannot specify arbitrary markers");
}
-
- @Override
- public void testContainerListWithPrefix() {
- throw new SkipException("Prefix option has not been plumbed down to GCS");
- }
-
- @Override
- public void testDelimiterList() {
- throw new SkipException("Prefix option has not been plumbed down to GCS");
- }
}
[31/50] jclouds git commit: Depend on OAuth test jar for tests
Posted by ga...@apache.org.
Depend on OAuth test jar for tests
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/a780cdad
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/a780cdad
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/a780cdad
Branch: refs/heads/master
Commit: a780cdad59a8329d511cb07267c4db03a7a5d73d
Parents: 28f10f9
Author: Ignasi Barrera <na...@apache.org>
Authored: Thu Apr 7 11:56:45 2016 +0200
Committer: Ignasi Barrera <na...@apache.org>
Committed: Thu Apr 7 11:56:45 2016 +0200
----------------------------------------------------------------------
providers/google-cloud-storage/pom.xml | 7 +++++++
.../internal/BaseGoogleCloudStorageExpectTest.java | 3 ++-
2 files changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/a780cdad/providers/google-cloud-storage/pom.xml
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/pom.xml b/providers/google-cloud-storage/pom.xml
index 98b38ce..aaa9ae5 100644
--- a/providers/google-cloud-storage/pom.xml
+++ b/providers/google-cloud-storage/pom.xml
@@ -65,6 +65,13 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.apache.jclouds.api</groupId>
+ <artifactId>oauth</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-blobstore</artifactId>
<version>${jclouds.version}</version>
http://git-wip-us.apache.org/repos/asf/jclouds/blob/a780cdad/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageExpectTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageExpectTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageExpectTest.java
index d7c0daa..4246512 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageExpectTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageExpectTest.java
@@ -51,6 +51,7 @@ import org.jclouds.http.HttpResponse;
import org.jclouds.io.Payload;
import org.jclouds.io.payloads.ByteSourcePayload;
import org.jclouds.oauth.v2.filters.JWTBearerTokenFlow;
+import org.jclouds.oauth.v2.filters.TestJWTBearerTokenFlow;
import org.jclouds.providers.ProviderMetadata;
import org.jclouds.rest.internal.BaseRestApiExpectTest;
@@ -91,7 +92,7 @@ public class BaseGoogleCloudStorageExpectTest<T> extends BaseRestApiExpectTest<T
@Override
public void configure(Binder binder) {
// Predictable time
- binder.bind(JWTBearerTokenFlow.class).to(JWTBearerTokenFlow.TestJWTBearerTokenFlow.class);
+ binder.bind(JWTBearerTokenFlow.class).to(TestJWTBearerTokenFlow.class);
try {
KeyFactory keyfactory = KeyFactory.getInstance("RSA");
PrivateKey privateKey = keyfactory.generatePrivate(privateKeySpec(ByteSource.wrap(PRIVATE_KEY
[50/50] jclouds git commit: JCLOUDS-944: Promote Google Cloud Storage
to core
Posted by ga...@apache.org.
JCLOUDS-944: Promote Google Cloud Storage to core
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/9ea76ebe
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/9ea76ebe
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/9ea76ebe
Branch: refs/heads/master
Commit: 9ea76ebe4b9e843829e39e3f2d09bb1fb3a3b963
Parents: 6efc894
Author: Andrew Gaul <an...@gaul.org>
Authored: Sat May 6 19:35:44 2017 -0700
Committer: Andrew Gaul <an...@gaul.org>
Committed: Sat May 6 19:35:44 2017 -0700
----------------------------------------------------------------------
allblobstore/pom.xml | 5 +++++
providers/google-cloud-storage/pom.xml | 18 +++++++++---------
providers/pom.xml | 1 +
3 files changed, 15 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9ea76ebe/allblobstore/pom.xml
----------------------------------------------------------------------
diff --git a/allblobstore/pom.xml b/allblobstore/pom.xml
index 63127b4..d457b94 100644
--- a/allblobstore/pom.xml
+++ b/allblobstore/pom.xml
@@ -49,6 +49,11 @@
<version>${project.version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.jclouds.provider</groupId>
+ <artifactId>google-cloud-storage</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>openstack-swift</artifactId>
<version>${project.version}</version>
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9ea76ebe/providers/google-cloud-storage/pom.xml
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/pom.xml b/providers/google-cloud-storage/pom.xml
index 6332b9e..f452e28 100644
--- a/providers/google-cloud-storage/pom.xml
+++ b/providers/google-cloud-storage/pom.xml
@@ -21,13 +21,13 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.jclouds.labs</groupId>
- <artifactId>jclouds-labs-google</artifactId>
+ <groupId>org.apache.jclouds</groupId>
+ <artifactId>jclouds-project</artifactId>
<version>2.1.0-SNAPSHOT</version>
+ <relativePath>../../project/pom.xml</relativePath>
</parent>
- <!-- TODO: when out of labs, switch to org.jclouds.provider -->
- <groupId>org.apache.jclouds.labs</groupId>
+ <groupId>org.apache.jclouds.provider</groupId>
<artifactId>google-cloud-storage</artifactId>
<name>jclouds Google Cloud Storage provider</name>
<description>jclouds components to access Google Cloud Storage</description>
@@ -49,7 +49,7 @@
<dependency>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-core</artifactId>
- <version>${jclouds.version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.common</groupId>
@@ -74,7 +74,7 @@
<dependency>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-blobstore</artifactId>
- <version>${jclouds.version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.google.auto.service</groupId>
@@ -89,21 +89,21 @@
<dependency>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-blobstore</artifactId>
- <version>${jclouds.version}</version>
+ <version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-core</artifactId>
- <version>${jclouds.version}</version>
+ <version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jclouds.driver</groupId>
<artifactId>jclouds-slf4j</artifactId>
- <version>${jclouds.version}</version>
+ <version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9ea76ebe/providers/pom.xml
----------------------------------------------------------------------
diff --git a/providers/pom.xml b/providers/pom.xml
index 0739624..afd6beb 100644
--- a/providers/pom.xml
+++ b/providers/pom.xml
@@ -52,6 +52,7 @@
<module>serverlove-z1-man</module>
<module>skalicloud-sdg-my</module>
<module>go2cloud-jhb1</module>
+ <module>google-cloud-storage</module>
<module>google-compute-engine</module>
<module>softlayer</module>
<module>rackspace-cloudfiles-us</module>
[09/50] jclouds git commit: Update ObjectApi and getBlob,
fix testGetRangeOutOfRange
Posted by ga...@apache.org.
Update ObjectApi and getBlob, fix testGetRangeOutOfRange
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/c0190dd0
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/c0190dd0
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/c0190dd0
Branch: refs/heads/master
Commit: c0190dd03e56e66a7f1987ce05d81eb0c03f6c6c
Parents: bb62abf
Author: Daniel Broudy <br...@google.com>
Authored: Tue Jun 9 12:52:00 2015 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Jun 12 16:11:53 2015 -0700
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 9 +++++++--
.../org/jclouds/googlecloudstorage/features/ObjectApi.java | 5 +++--
.../googlecloudstorage/options/GetObjectOptions.java | 4 ++--
.../googlecloudstorage/features/ObjectApiMockTest.java | 4 +++-
4 files changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c0190dd0/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 4ccc8f2..7fd3643 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
@@ -39,6 +39,7 @@ import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
import org.jclouds.blobstore.domain.internal.BlobImpl;
import org.jclouds.blobstore.domain.internal.PageSetImpl;
+import org.jclouds.blobstore.functions.BlobToHttpGetOptions;
import org.jclouds.blobstore.internal.BaseBlobStore;
import org.jclouds.blobstore.options.CreateContainerOptions;
import org.jclouds.blobstore.options.GetOptions;
@@ -91,6 +92,7 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
private final BlobStoreListContainerOptionsToListObjectOptions listContainerOptionsToListObjectOptions;
private final Provider<MultipartUploadStrategy> multipartUploadStrategy;
private final Supplier<String> projectId;
+ private final BlobToHttpGetOptions blob2ObjectGetOptions;
@Inject GoogleCloudStorageBlobStore(BlobStoreContext context, BlobUtils blobUtils, Supplier<Location> defaultLocation,
@Memoized Supplier<Set<? extends Location>> locations, PayloadSlicer slicer, GoogleCloudStorageApi api,
@@ -99,7 +101,8 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
Provider<FetchBlobMetadata> fetchBlobMetadataProvider,
BlobMetadataToObjectTemplate blobMetadataToObjectTemplate,
BlobStoreListContainerOptionsToListObjectOptions listContainerOptionsToListObjectOptions,
- Provider<MultipartUploadStrategy> multipartUploadStrategy, @CurrentProject Supplier<String> projectId) {
+ Provider<MultipartUploadStrategy> multipartUploadStrategy, @CurrentProject Supplier<String> projectId,
+ BlobToHttpGetOptions blob2ObjectGetOptions) {
super(context, blobUtils, defaultLocation, locations, slicer);
this.api = api;
this.bucketToStorageMetadata = bucketToStorageMetadata;
@@ -110,6 +113,7 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
this.listContainerOptionsToListObjectOptions = listContainerOptionsToListObjectOptions;
this.projectId = projectId;
this.multipartUploadStrategy = multipartUploadStrategy;
+ this.blob2ObjectGetOptions = checkNotNull(blob2ObjectGetOptions, "blob2ObjectGetOptions");
}
@Override
@@ -250,10 +254,11 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
if (gcsObject == null) {
return null;
}
+ org.jclouds.http.options.GetOptions httpOptions = blob2ObjectGetOptions.apply(options);
MutableBlobMetadata metadata = objectToBlobMetadata.apply(gcsObject);
Blob blob = new BlobImpl(metadata);
// TODO: Does getObject not get the payload?!
- Payload payload = api.getObjectApi().download(container, name).getPayload();
+ Payload payload = api.getObjectApi().download(container, name, httpOptions).getPayload();
payload.setContentMetadata(metadata.getContentMetadata()); // Doing this first retains it on setPayload.
blob.setPayload(payload);
return blob;
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c0190dd0/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
index 29bbd57..119aece 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
@@ -45,6 +45,7 @@ import org.jclouds.googlecloudstorage.options.InsertObjectOptions;
import org.jclouds.googlecloudstorage.options.ListObjectOptions;
import org.jclouds.googlecloudstorage.options.UpdateObjectOptions;
import org.jclouds.googlecloudstorage.parser.ParseToPayloadEnclosing;
+import org.jclouds.http.options.HttpRequestOptions;
import org.jclouds.io.Payload;
import org.jclouds.io.PayloadEnclosing;
import org.jclouds.javax.annotation.Nullable;
@@ -123,7 +124,7 @@ public interface ObjectApi {
@Fallback(NullOnNotFoundOr404.class)
@Nullable
GoogleCloudStorageObject getObject(@PathParam("bucket") String bucketName, @PathParam("object") String objectName,
- GetObjectOptions options);
+ HttpRequestOptions options);
/**
* Retrieve an object or their metadata
@@ -163,7 +164,7 @@ public interface ObjectApi {
@ResponseParser(ParseToPayloadEnclosing.class)
@Fallback(NullOnNotFoundOr404.class)
@Nullable PayloadEnclosing download(@PathParam("bucket") String bucketName, @PathParam("object") String objectName,
- GetObjectOptions options);
+ HttpRequestOptions options);
/**
* Stores a new object. Object metadata setting is not supported with simple uploads
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c0190dd0/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/GetObjectOptions.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/GetObjectOptions.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/GetObjectOptions.java
index a4446e6..2d307bc 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/GetObjectOptions.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/GetObjectOptions.java
@@ -19,12 +19,12 @@ package org.jclouds.googlecloudstorage.options;
import static com.google.common.base.Preconditions.checkNotNull;
import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Projection;
-import org.jclouds.http.options.BaseHttpRequestOptions;
+import org.jclouds.http.options.GetOptions;
/**
* Allows to optionally specify generation,ifGenerationMatch,ifGenerationNotMatch, ifMetagenerationMatch,ifMetagenerationNotMatch and projection which used in Bucket
*/
-public class GetObjectOptions extends BaseHttpRequestOptions {
+public class GetObjectOptions extends GetOptions {
public GetObjectOptions ifGenerationMatch(Long ifGenerationMatch) {
this.queryParameters.put("ifGenerationMatch", checkNotNull(ifGenerationMatch, "ifGenerationMatch") + "");
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c0190dd0/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
index d95b078..af224d4 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
@@ -81,10 +81,12 @@ public class ObjectApiMockTest extends BaseGoogleCloudStorageApiMockTest {
server.enqueue(jsonResponse("/object_get.json"));
GetObjectOptions options = new GetObjectOptions().ifGenerationMatch((long) 1000);
+ options.range(0, 1023);
assertEquals(objectApi().getObject("test", "file_name", options),
new ParseGoogleCloudStorageObject().expected());
- assertSent(server, "GET", "/storage/v1/b/test/o/file_name?ifGenerationMatch=1000");
+ RecordedRequest request = assertSent(server, "GET", "/storage/v1/b/test/o/file_name?ifGenerationMatch=1000");
+ assertEquals(request.getHeader("Range"), "bytes=0-1023");
}
public void simpleUpload() throws Exception {
[30/50] jclouds git commit: Use correct payload length in GCS test
Posted by ga...@apache.org.
Use correct payload length in GCS test
This avoids MWS unexpected end of stream errors. Regression from
b9322c583d6aa0cae91d2c5724dfa528a0168385.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/28f10f90
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/28f10f90
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/28f10f90
Branch: refs/heads/master
Commit: 28f10f90b8019619ccb7eb97318b791dce4f745d
Parents: 2499cb0
Author: Andrew Gaul <ga...@apache.org>
Authored: Wed Mar 23 19:32:51 2016 -0400
Committer: Andrew Gaul <ga...@apache.org>
Committed: Wed Mar 23 19:35:41 2016 -0400
----------------------------------------------------------------------
.../org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/28f10f90/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
index 35e9827..863581b 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiMockTest.java
@@ -265,7 +265,7 @@ public class ObjectApiMockTest extends BaseGoogleCloudStorageApiMockTest {
String testPayload = "this is a test payload for upload!";
p.setPayload(testPayload.getBytes());
- ObjectTemplate template = new ObjectTemplate().name("file_name").size((long) 1000).crc32c("crc32c").contentType(MediaType.ANY_TEXT_TYPE);
+ ObjectTemplate template = new ObjectTemplate().name("file_name").size((long) testPayload.length()).crc32c("crc32c").contentType(MediaType.ANY_TEXT_TYPE);
assertEquals(objectApi().multipartUpload("bucket_name", template, p.getPayload()),
new ParseGoogleCloudStorageObject().expected());
[43/50] jclouds git commit: Apache jclouds 2.0.0-rc3 release
Posted by ga...@apache.org.
Apache jclouds 2.0.0-rc3 release
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/214a5e78
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/214a5e78
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/214a5e78
Branch: refs/heads/master
Commit: 214a5e781085bda22bbcc19634cd23ae5bd4d209
Parents: a600a12
Author: Ignasi Barrera <na...@apache.org>
Authored: Wed Nov 9 22:48:47 2016 +0100
Committer: Ignasi Barrera <na...@apache.org>
Committed: Wed Nov 9 22:48:47 2016 +0100
----------------------------------------------------------------------
providers/google-cloud-storage/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/214a5e78/providers/google-cloud-storage/pom.xml
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/pom.xml b/providers/google-cloud-storage/pom.xml
index aaa9ae5..a4351bc 100644
--- a/providers/google-cloud-storage/pom.xml
+++ b/providers/google-cloud-storage/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.jclouds.labs</groupId>
<artifactId>jclouds-labs-google</artifactId>
- <version>2.0.0-SNAPSHOT</version>
+ <version>2.0.0</version>
</parent>
<!-- TODO: when out of labs, switch to org.jclouds.provider -->
[07/50] jclouds git commit: Allow GCS object nullable owner
Posted by ga...@apache.org.
Allow GCS object nullable owner
This addresses a NullPointerException seen while listing a bucket:
{statusCode=200, message=OK, headers={X-Frame-Options=[SAMEORIGIN], Server=[GSE], Cache-Control=[private, max-age=0, must-revalidate, no-transform], X-Content-Type-Options=[nosniff], Vary=[X-Origin, Origin], X-XSS-Protection=[1; mode=block], Date=[Fri, 29 May 2015 21:43:51 GMT], Alternate-Protocol=[443:quic,p=1]}, payload=[content=true, contentMetadata=[contentDisposition=null, contentEncoding=null, contentLanguage=null, contentLength=760, contentMD5=null, contentType=application/json; charset=UTF-8, expires=Fri May 29 14:43:51 PDT 2015], written=false]}
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/fb4c6514
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/fb4c6514
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/fb4c6514
Branch: refs/heads/master
Commit: fb4c65141ef13f1c199078cf866875d0854750f3
Parents: 3d9258f
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri May 29 14:45:13 2015 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sun Jun 7 22:05:44 2015 -0700
----------------------------------------------------------------------
.../googlecloudstorage/domain/GoogleCloudStorageObject.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/fb4c6514/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GoogleCloudStorageObject.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GoogleCloudStorageObject.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GoogleCloudStorageObject.java
index f8bd84b..d639710 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GoogleCloudStorageObject.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GoogleCloudStorageObject.java
@@ -59,7 +59,7 @@ public abstract class GoogleCloudStorageObject {
@Nullable public abstract String contentLanguage();
@Nullable public abstract String cacheControl();
public abstract List<ObjectAccessControls> acl();
- public abstract Owner owner();
+ @Nullable public abstract Owner owner();
@Nullable public abstract String crc32c();
@Nullable public abstract Integer componentCount();
[48/50] jclouds git commit: JCLOUDS-902: Google Cloud Storage signed
URLs
Posted by ga...@apache.org.
JCLOUDS-902: Google Cloud Storage signed URLs
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/b671d2c0
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/b671d2c0
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/b671d2c0
Branch: refs/heads/master
Commit: b671d2c0d262d418060016752c631e4128e9c80a
Parents: a1af4f7
Author: Andrew Gaul <ga...@apache.org>
Authored: Wed Apr 19 19:36:41 2017 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Thu Apr 20 01:14:07 2017 -0700
----------------------------------------------------------------------
.../GoogleCloudStorageBlobRequestSigner.java | 153 +++++++++++++++++++
...oogleCloudStorageBlobStoreContextModule.java | 11 ++
.../domain/GoogleCloudStorageObject.java | 2 +-
.../GoogleCloudStorageErrorHandler.java | 5 +
.../GoogleCloudStorageBlobSignerLiveTest.java | 66 --------
5 files changed, 170 insertions(+), 67 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/b671d2c0/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobRequestSigner.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobRequestSigner.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobRequestSigner.java
new file mode 100644
index 0000000..390ada1
--- /dev/null
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobRequestSigner.java
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.googlecloudstorage.blobstore;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.net.URI;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivateKey;
+import java.security.Signature;
+import java.security.SignatureException;
+
+import javax.annotation.Resource;
+import javax.inject.Provider;
+
+import org.jclouds.Constants;
+import org.jclouds.blobstore.BlobRequestSigner;
+import org.jclouds.blobstore.domain.Blob;
+import org.jclouds.blobstore.functions.BlobToHttpGetOptions;
+import org.jclouds.date.TimeStamp;
+import org.jclouds.domain.Credentials;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.http.HttpUtils;
+import org.jclouds.http.Uris;
+import org.jclouds.http.options.GetOptions;
+import org.jclouds.logging.Logger;
+import org.jclouds.oauth.v2.config.Authorization;
+
+import com.google.common.base.Charsets;
+import com.google.common.base.Strings;
+import com.google.common.base.Supplier;
+import com.google.common.io.BaseEncoding;
+import com.google.common.net.HttpHeaders;
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
+public final class GoogleCloudStorageBlobRequestSigner implements BlobRequestSigner {
+ private static final int DEFAULT_EXPIRY_SECONDS = 15 * 60;
+ private static final URI STORAGE_URL = URI.create("http://storage.googleapis.com/");
+
+ private final Supplier<Credentials> creds;
+ private final Supplier<PrivateKey> privateKey;
+ private final Provider<Long> timestamp;
+ private final HttpUtils utils;
+
+ private final BlobToHttpGetOptions toGetOptions = new BlobToHttpGetOptions();
+
+ @Resource
+ @Named(Constants.LOGGER_SIGNATURE)
+ protected Logger signatureLog = Logger.NULL;
+
+ @Inject
+ protected GoogleCloudStorageBlobRequestSigner(@org.jclouds.location.Provider Supplier<Credentials> creds,
+ @Authorization Supplier<PrivateKey> privateKey, @TimeStamp Provider<Long> timestamp, HttpUtils utils) {
+ this.creds = creds;
+ this.privateKey = privateKey;
+ this.timestamp = timestamp;
+ this.utils = utils;
+ }
+
+ @Override
+ public HttpRequest signGetBlob(String container, String name) {
+ return signGetBlob(container, name, DEFAULT_EXPIRY_SECONDS);
+ }
+
+ @Override
+ public HttpRequest signGetBlob(String container, String name, long timeInSeconds) {
+ return sign("GET", container, name, GetOptions.NONE, timestamp.get() + timeInSeconds, null);
+ }
+
+ @Override
+ public HttpRequest signGetBlob(String container, String name, org.jclouds.blobstore.options.GetOptions options) {
+ return sign("GET", container, name, toGetOptions.apply(options), timestamp.get() + DEFAULT_EXPIRY_SECONDS, null);
+ }
+
+ @Override
+ public HttpRequest signPutBlob(String container, Blob blob) {
+ return signPutBlob(container, blob, DEFAULT_EXPIRY_SECONDS);
+ }
+
+ @Override
+ public HttpRequest signPutBlob(String container, Blob blob, long timeInSeconds) {
+ return sign("PUT", container, blob.getMetadata().getName(), GetOptions.NONE, timestamp.get() + timeInSeconds, null);
+ }
+
+ @Deprecated
+ @Override
+ public HttpRequest signRemoveBlob(String container, String name) {
+ throw new UnsupportedOperationException();
+ }
+
+ private HttpRequest sign(String method, String container, String name, GetOptions options, long expires, String contentType) {
+ checkNotNull(container, "container");
+ checkNotNull(name, "name");
+
+ HttpRequest.Builder request = HttpRequest.builder()
+ .method(method)
+ .endpoint(Uris.uriBuilder(STORAGE_URL).appendPath(container).appendPath(name).build());
+ if (contentType != null) {
+ request.replaceHeader(HttpHeaders.CONTENT_TYPE, contentType);
+ }
+
+ String stringToSign = createStringToSign(request.build(), expires);
+ byte[] rawSignature;
+ try {
+ Signature signer = Signature.getInstance("SHA256withRSA");
+ signer.initSign(privateKey.get());
+ signer.update(stringToSign.getBytes(Charsets.UTF_8));
+ rawSignature = signer.sign();
+ } catch (InvalidKeyException ike) {
+ throw new RuntimeException(ike);
+ } catch (NoSuchAlgorithmException nsae) {
+ throw new RuntimeException(nsae);
+ } catch (SignatureException se) {
+ throw new RuntimeException(se);
+ }
+ String signature = BaseEncoding.base64().encode(rawSignature);
+
+ return (HttpRequest) request
+ .addQueryParam("Expires", String.valueOf(expires))
+ .addQueryParam("GoogleAccessId", creds.get().identity)
+ .addQueryParam("Signature", signature)
+ .headers(options.buildRequestHeaders())
+ .build();
+ }
+
+ private String createStringToSign(HttpRequest request, long expires) {
+ utils.logRequest(signatureLog, request, ">>");
+ StringBuilder buffer = new StringBuilder();
+ buffer.append(request.getMethod()).append("\n");
+ buffer.append(Strings.nullToEmpty(request.getFirstHeaderOrNull(HttpHeaders.CONTENT_MD5))).append("\n");
+ buffer.append(Strings.nullToEmpty(request.getFirstHeaderOrNull(HttpHeaders.CONTENT_TYPE))).append("\n");
+ buffer.append(String.valueOf(expires)).append("\n");
+ // TODO: extension headers
+ buffer.append(request.getEndpoint().getPath());
+ return buffer.toString();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/b671d2c0/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/config/GoogleCloudStorageBlobStoreContextModule.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/config/GoogleCloudStorageBlobStoreContextModule.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/config/GoogleCloudStorageBlobStoreContextModule.java
index 3d2bcd7..1392d3f 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/config/GoogleCloudStorageBlobStoreContextModule.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/config/GoogleCloudStorageBlobStoreContextModule.java
@@ -16,11 +16,15 @@
*/
package org.jclouds.googlecloudstorage.blobstore.config;
+import org.jclouds.blobstore.BlobRequestSigner;
import org.jclouds.blobstore.BlobStore;
import org.jclouds.blobstore.attr.ConsistencyModel;
+import org.jclouds.date.TimeStamp;
+import org.jclouds.googlecloudstorage.blobstore.GoogleCloudStorageBlobRequestSigner;
import org.jclouds.googlecloudstorage.blobstore.GoogleCloudStorageBlobStore;
import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
import com.google.inject.Scopes;
public class GoogleCloudStorageBlobStoreContextModule extends AbstractModule {
@@ -29,5 +33,12 @@ public class GoogleCloudStorageBlobStoreContextModule extends AbstractModule {
protected void configure() {
bind(ConsistencyModel.class).toInstance(ConsistencyModel.EVENTUAL);
bind(BlobStore.class).to(GoogleCloudStorageBlobStore.class).in(Scopes.SINGLETON);
+ bind(BlobRequestSigner.class).to(GoogleCloudStorageBlobRequestSigner.class);
+ }
+
+ @Provides
+ @TimeStamp
+ protected final Long unixEpochTimestamp() {
+ return System.currentTimeMillis() / 1000;
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/b671d2c0/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GoogleCloudStorageObject.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GoogleCloudStorageObject.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GoogleCloudStorageObject.java
index d639710..ce48e4f 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GoogleCloudStorageObject.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/GoogleCloudStorageObject.java
@@ -46,7 +46,7 @@ public abstract class GoogleCloudStorageObject {
public abstract String bucket();
public abstract long generation();
public abstract long metageneration();
- public abstract String contentType();
+ @Nullable public abstract String contentType();
public abstract Date updated();
@Nullable public abstract Date timeDeleted();
public abstract StorageClass storageClass();
http://git-wip-us.apache.org/repos/asf/jclouds/blob/b671d2c0/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/GoogleCloudStorageErrorHandler.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/GoogleCloudStorageErrorHandler.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/GoogleCloudStorageErrorHandler.java
index 9c6840e..d330146 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/GoogleCloudStorageErrorHandler.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/GoogleCloudStorageErrorHandler.java
@@ -48,6 +48,11 @@ public class GoogleCloudStorageErrorHandler implements HttpErrorHandler {
switch (response.getStatusCode()) {
case 308:
return;
+ case 400:
+ if (message.indexOf("<Code>ExpiredToken</Code>") != -1) {
+ exception = new AuthorizationException(message, exception);
+ }
+ break;
case 401:
case 403:
exception = new AuthorizationException(message, exception);
http://git-wip-us.apache.org/repos/asf/jclouds/blob/b671d2c0/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobSignerLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobSignerLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobSignerLiveTest.java
index 7e7dd52..2f76490 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobSignerLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobSignerLiveTest.java
@@ -16,8 +16,6 @@
*/
package org.jclouds.googlecloudstorage.blobstore.integration;
-import java.io.IOException;
-
import org.jclouds.blobstore.integration.internal.BaseBlobSignerLiveTest;
import org.testng.SkipException;
import org.testng.annotations.Test;
@@ -28,70 +26,6 @@ public class GoogleCloudStorageBlobSignerLiveTest extends BaseBlobSignerLiveTest
provider = "google-cloud-storage";
}
- @Test
- public void testSignGetUrl() throws Exception {
- try {
- super.testSignGetUrl();
- } catch (UnsupportedOperationException uoe) {
- throw new SkipException("not yet implemented in GCS", uoe);
- }
- }
-
- @Test
- public void testSignGetUrlOptions() throws Exception {
- try {
- super.testSignGetUrlOptions();
- } catch (UnsupportedOperationException uoe) {
- throw new SkipException("not yet implemented in GCS", uoe);
- }
- }
-
- @Test
- public void testSignGetUrlWithTime() throws InterruptedException, IOException {
- try {
- super.testSignGetUrlWithTime();
- } catch (UnsupportedOperationException uoe) {
- throw new SkipException("not yet implemented in GCS", uoe);
- }
- }
-
- @Test
- public void testSignGetUrlWithTimeExpired() throws InterruptedException, IOException {
- try {
- super.testSignGetUrlWithTimeExpired();
- } catch (UnsupportedOperationException uoe) {
- throw new SkipException("not yet implemented in GCS", uoe);
- }
- }
-
- @Test
- public void testSignPutUrl() throws Exception {
- try {
- super.testSignPutUrl();
- } catch (UnsupportedOperationException uoe) {
- throw new SkipException("not yet implemented in GCS", uoe);
- }
- }
-
- @Test
- public void testSignPutUrlWithTime() throws Exception {
- try {
- super.testSignPutUrlWithTime();
- } catch (UnsupportedOperationException uoe) {
- throw new SkipException("not yet implemented in GCS", uoe);
- }
- }
-
- @Test
- public void testSignPutUrlWithTimeExpired() throws Exception {
- try {
- super.testSignPutUrlWithTimeExpired();
- } catch (UnsupportedOperationException uoe) {
- throw new SkipException("not yet implemented in GCS", uoe);
- }
- }
-
- @Test
public void testSignRemoveUrl() throws Exception {
try {
super.testSignRemoveUrl();
[02/50] jclouds git commit: JCLOUDS-894: Expose GCS multipart
operations
Posted by ga...@apache.org.
JCLOUDS-894: Expose GCS multipart operations
Not yet implemented
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/119d2f48
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/119d2f48
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/119d2f48
Branch: refs/heads/master
Commit: 119d2f487fe41d3966f61a8da53d52b3c03b7e16
Parents: 8431670
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri May 1 13:23:28 2015 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri May 1 13:30:27 2015 -0700
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 43 ++++++++++++++++++++
1 file changed, 43 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/119d2f48/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 dcc1d5a..80a3c83 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
@@ -22,6 +22,7 @@ import static org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Obj
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
+import java.util.List;
import java.util.Set;
import javax.inject.Inject;
@@ -31,6 +32,8 @@ import org.jclouds.blobstore.domain.Blob;
import org.jclouds.blobstore.domain.BlobAccess;
import org.jclouds.blobstore.domain.BlobMetadata;
import org.jclouds.blobstore.domain.ContainerAccess;
+import org.jclouds.blobstore.domain.MultipartPart;
+import org.jclouds.blobstore.domain.MultipartUpload;
import org.jclouds.blobstore.domain.MutableBlobMetadata;
import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
@@ -348,4 +351,44 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
return api.getObjectApi().copyObject(toContainer, toName, fromContainer, fromName, template).etag();
}
+
+ @Override
+ public MultipartUpload initiateMultipartUpload(String container, BlobMetadata blobMetadata) {
+ throw new UnsupportedOperationException("not yet implemented");
+ }
+
+ @Override
+ public void abortMultipartUpload(MultipartUpload mpu) {
+ throw new UnsupportedOperationException("not yet implemented");
+ }
+
+ @Override
+ public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) {
+ throw new UnsupportedOperationException("not yet implemented");
+ }
+
+ @Override
+ public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) {
+ throw new UnsupportedOperationException("not yet implemented");
+ }
+
+ @Override
+ public List<MultipartPart> listMultipartUpload(MultipartUpload mpu) {
+ throw new UnsupportedOperationException("not yet implemented");
+ }
+
+ @Override
+ public long getMinimumMultipartPartSize() {
+ throw new UnsupportedOperationException("not yet implemented");
+ }
+
+ @Override
+ public long getMaximumMultipartPartSize() {
+ throw new UnsupportedOperationException("not yet implemented");
+ }
+
+ @Override
+ public int getMaximumNumberOfParts() {
+ throw new UnsupportedOperationException("not yet implemented");
+ }
}
[03/50] jclouds git commit: Name test buckets jclouds instead of
jcloud
Posted by ga...@apache.org.
Name test buckets jclouds instead of jcloud
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/9d3a7bdd
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/9d3a7bdd
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/9d3a7bdd
Branch: refs/heads/master
Commit: 9d3a7bdd4dbdb5b06f50662ceb9728bbd67562e9
Parents: 119d2f4
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri May 29 13:44:51 2015 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri May 29 14:07:40 2015 -0700
----------------------------------------------------------------------
.../BucketAccessControlsApiExpectTest.java | 18 ++++++++--------
.../features/BucketApiExpectTest.java | 4 ++--
.../features/BucketApiLiveTest.java | 2 +-
...efaultObjectAccessControlsApiExpectTest.java | 18 ++++++++--------
.../DefaultObjectAccessControlsApiLiveTest.java | 2 +-
.../ObjectAccessControlsApiExpectTest.java | 22 ++++++++++----------
.../features/ObjectApiLiveTest.java | 2 +-
.../parse/BucketAclGetTest.java | 4 ++--
.../parse/BucketAclInsertTest.java | 4 ++--
.../parse/BucketAclListTest.java | 8 +++----
.../parse/BucketAclUpdateTest.java | 4 ++--
.../parse/FullBucketGetTest.java | 8 +++----
.../parse/ObjectAclGetTest.java | 4 ++--
.../parse/ObjectAclInsertTest.java | 2 +-
.../parse/ObjectAclListTest.java | 4 ++--
.../parse/ObjectAclUpdateTest.java | 2 +-
.../src/test/resources/bucket_acl_get.json | 6 +++---
.../resources/bucket_acl_insert_response.json | 6 +++---
.../src/test/resources/bucket_acl_list.json | 12 +++++------
.../resources/bucket_acl_update_response.json | 6 +++---
.../src/test/resources/full_bucket_get.json | 12 +++++------
.../resources/list_bucket_with_options.json | 8 +++----
.../src/test/resources/object_acl_get.json | 6 +++---
.../resources/object_acl_insert_response.json | 4 ++--
.../src/test/resources/object_acl_list.json | 6 +++---
.../resources/object_acl_update_initial.json | 4 ++--
.../resources/object_acl_update_response.json | 4 ++--
27 files changed, 91 insertions(+), 91 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
index ab6484f..79f96f6 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiExpectTest.java
@@ -36,10 +36,10 @@ import org.testng.annotations.Test;
@Test(groups = "unit", testName = "BucketAccessControlsApiExpectTest")
public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApiExpectTest {
- private static final String EXPECTED_TEST_BUCKET = "jcloudtestbucket";
+ private static final String EXPECTED_TEST_BUCKET = "jcloudstestbucket";
public static final HttpRequest GET_BUCKETACL_REQUEST = HttpRequest.builder().method("GET")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/acl/allUsers")
.addHeader("Accept", "application/json").addHeader("Authorization", "Bearer " + TOKEN).build();
private final HttpResponse GET_BUCKETACL_RESPONSE = HttpResponse.builder().statusCode(200)
@@ -49,7 +49,7 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
.payload(staticPayloadFromResource("/bucket_acl_insert_response.json")).build();
private final HttpRequest LIST_BUCKETACL_REQUEST = HttpRequest.builder().method("GET")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/acl")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/acl")
.addHeader("Accept", "application/json").addHeader("Authorization", "Bearer " + TOKEN).build();
private final HttpResponse LIST_BUCKETACL_RESPONSE = HttpResponse.builder().statusCode(200)
@@ -91,7 +91,7 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
BucketAccessControlsApi api = requestsSendResponses(requestForScopes(STORAGE_FULLCONTROL_SCOPE), TOKEN_RESPONSE,
LIST_BUCKETACL_REQUEST, listResponse).getBucketAccessControlsApi();
- assertNull(api.listBucketAccessControls("jcloudtestbucket"));
+ assertNull(api.listBucketAccessControls("jcloudstestbucket"));
}
// Test insertBucketAccessControls
@@ -99,7 +99,7 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
HttpRequest insertRequest = HttpRequest
.builder()
.method("POST")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/acl")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/acl")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.payload(payloadFromResourceWithContentType("/bucket_acl_insert_initial.json",
@@ -116,7 +116,7 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
// Test deleteBucketAccessControls
public void testDeleteBucketAclResponseIs2xx() throws Exception {
HttpRequest delete = HttpRequest.builder().method("DELETE")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allAuthenticatedUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/acl/allAuthenticatedUsers")
.addHeader("Accept", "application/json").addHeader("Authorization", "Bearer " + TOKEN).build();
HttpResponse deleteResponse = HttpResponse.builder().statusCode(204).build();
@@ -129,7 +129,7 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
public void testDeleteBucketAclResponseIs4xx() throws Exception {
HttpRequest delete = HttpRequest.builder().method("DELETE")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allAuthenticatedUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/acl/allAuthenticatedUsers")
.addHeader("Accept", "application/json").addHeader("Authorization", "Bearer " + TOKEN).build();
HttpResponse deleteResponse = HttpResponse.builder().statusCode(404).build();
@@ -145,7 +145,7 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
HttpRequest update = HttpRequest
.builder()
.method("PUT")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/acl/allUsers")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.payload(payloadFromResourceWithContentType("/bucket_acl_update_initial.json",
@@ -168,7 +168,7 @@ public class BucketAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
HttpRequest patchRequest = HttpRequest
.builder()
.method("PATCH")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/acl/allUsers")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.payload(payloadFromResourceWithContentType("/bucket_acl_update_initial.json",
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
index 4970b19..5c42617 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
@@ -61,7 +61,7 @@ public class BucketApiExpectTest extends BaseGoogleCloudStorageApiExpectTest {
public static final HttpRequest LIST_BUCKET_REQUEST_WITHOPTIONS = HttpRequest.builder().method("GET")
.endpoint("https://www.googleapis.com/storage/v1/b").addQueryParam("project", EXPECTED_TEST_PROJECT_NUMBER)
- .addQueryParam("maxResults", "2").addQueryParam("pageToken", "jcloudtestbucket500")
+ .addQueryParam("maxResults", "2").addQueryParam("pageToken", "jcloudstestbucket500")
.addHeader("Accept", "application/json").addHeader("Authorization", "Bearer " + TOKEN).build();
private final HttpResponse LIST_BUCKET_RESPONSE = HttpResponse.builder().statusCode(200)
@@ -112,7 +112,7 @@ public class BucketApiExpectTest extends BaseGoogleCloudStorageApiExpectTest {
BucketApi api = requestsSendResponses(requestForScopes(STORAGE_READONLY_SCOPE), TOKEN_RESPONSE,
LIST_BUCKET_REQUEST_WITHOPTIONS, LIST_BUCKET_RESPONSE).getBucketApi();
- ListOptions options = new ListOptions().maxResults(2).pageToken("jcloudtestbucket500");
+ ListOptions options = new ListOptions().maxResults(2).pageToken("jcloudstestbucket500");
assertEquals(api.listBucket(EXPECTED_TEST_PROJECT_NUMBER, options), new NoAclBucketListTest().expected());
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
index 762e7f2..9c81aa5 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
@@ -60,7 +60,7 @@ public class BucketApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
private static final String BUCKET_NAME_NEARLINE = "jcloudstestbucketnearline" + (int) (Math.random() * 10000);
- private static final String BUCKET_NAME_WITHOPTIONS = "jcloudtestbucketoptions" + (int) (Math.random() * 10000);
+ private static final String BUCKET_NAME_WITHOPTIONS = "jcloudstestbucketoptions" + (int) (Math.random() * 10000);
private static final String LOG_BUCKET_NAME = "jcloudslogbucket" + (int) (Math.random() * 10000);
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
index acc7093..42804be 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
@@ -36,14 +36,14 @@ import org.testng.annotations.Test;
@Test(groups = "unit", testName = "DefaultObjectAccessControlsApiExpectTest")
public class DefaultObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApiExpectTest {
- private static final String EXPECTED_TEST_BUCKET = "jcloudtestbucket";
+ private static final String EXPECTED_TEST_BUCKET = "jcloudstestbucket";
private static final String EXPECTED_TEST_GROUP_ENTITY = "group-00b4903a971ec6cff233284d6d24f5bf5cba904c4ade4d43ebd6a5d33800e68b";
private static final HttpRequest GET_DEFAULT_OBJECT_ACL_REQUEST = HttpRequest
.builder()
.method("GET")
.endpoint(
- "https://www.googleapis.com/storage/v1/b/jcloudtestbucket/defaultObjectAcl/group-00b4903a971ec6cff233284d6d24f5bf5cba904c4ade4d43ebd6a5d33800e68b")
+ "https://www.googleapis.com/storage/v1/b/jcloudstestbucket/defaultObjectAcl/group-00b4903a971ec6cff233284d6d24f5bf5cba904c4ade4d43ebd6a5d33800e68b")
.addHeader("Accept", "application/json").addHeader("Authorization", "Bearer " + TOKEN).build();
private final HttpResponse GET_DEFAULT_OBJECT_ACL_RESPONSE = HttpResponse.builder().statusCode(200)
@@ -53,7 +53,7 @@ public class DefaultObjectAccessControlsApiExpectTest extends BaseGoogleCloudSto
.payload(staticPayloadFromResource("/default_object_acl_insert_response.json")).build();
public final HttpRequest LIST_DEFAULT_OBJECT_ACL_REQUEST = HttpRequest.builder().method("GET")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/defaultObjectAcl")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/defaultObjectAcl")
.addHeader("Accept", "application/json").addHeader("Authorization", "Bearer " + TOKEN).build();
private final HttpResponse LIST_DEFAULT_OBJECT_ACL_RESPONSE = HttpResponse.builder().statusCode(200)
@@ -105,7 +105,7 @@ public class DefaultObjectAccessControlsApiExpectTest extends BaseGoogleCloudSto
HttpRequest insertRequest = HttpRequest
.builder()
.method("POST")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/defaultObjectAcl")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/defaultObjectAcl")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.payload(payloadFromResourceWithContentType("/default_object_acl_insert_request_payload.json",
@@ -123,7 +123,7 @@ public class DefaultObjectAccessControlsApiExpectTest extends BaseGoogleCloudSto
// Test deleteDefaultObjectAccessControls
public void testDeleteDefaultObjectAclResponseIs2xx() throws Exception {
HttpRequest delete = HttpRequest.builder().method("DELETE")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/defaultObjectAcl/allUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/defaultObjectAcl/allUsers")
.addHeader("Accept", "application/json").addHeader("Authorization", "Bearer " + TOKEN).build();
HttpResponse deleteResponse = HttpResponse.builder().statusCode(204).build();
@@ -136,7 +136,7 @@ public class DefaultObjectAccessControlsApiExpectTest extends BaseGoogleCloudSto
public void testDeleteObjectAclResponseIs4xx() throws Exception {
HttpRequest delete = HttpRequest.builder().method("DELETE")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/defaultObjectAcl/allUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/defaultObjectAcl/allUsers")
.addHeader("Accept", "application/json").addHeader("Authorization", "Bearer " + TOKEN).build();
HttpResponse deleteResponse = HttpResponse.builder().statusCode(404).build();
@@ -152,7 +152,7 @@ public class DefaultObjectAccessControlsApiExpectTest extends BaseGoogleCloudSto
HttpRequest update = HttpRequest
.builder()
.method("PUT")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/defaultObjectAcl/allUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/defaultObjectAcl/allUsers")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.payload(payloadFromResourceWithContentType("/default_object_acl_update_request_payload.json",
@@ -175,7 +175,7 @@ public class DefaultObjectAccessControlsApiExpectTest extends BaseGoogleCloudSto
HttpRequest update = HttpRequest
.builder()
.method("PUT")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/defaultObjectAcl/allUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/defaultObjectAcl/allUsers")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.addQueryParam("role", ObjectRole.OWNER.toString())
@@ -199,7 +199,7 @@ public class DefaultObjectAccessControlsApiExpectTest extends BaseGoogleCloudSto
HttpRequest update = HttpRequest
.builder()
.method("PATCH")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/defaultObjectAcl/allUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/defaultObjectAcl/allUsers")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.payload(payloadFromResourceWithContentType("/default_object_acl_update_request_payload.json",
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
index d15391e..55c45bf 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
@@ -32,7 +32,7 @@ import org.testng.annotations.Test;
public class DefaultObjectAccessControlsApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
- protected static final String BUCKET_NAME = "jcloudtestbucketdefaultoacl" + UUID.randomUUID();
+ protected static final String BUCKET_NAME = "jcloudstestbucketdefaultoacl" + UUID.randomUUID();
private DefaultObjectAccessControlsApi api() {
return api.getDefaultObjectAccessControlsApi();
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
index 2a6e5cf..abf6010 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
@@ -36,7 +36,7 @@ import org.testng.annotations.Test;
@Test(groups = "unit", testName = "ObjectAccessControlsApiExpectTest")
public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApiExpectTest {
- private static final String EXPECTED_TEST_BUCKET = "jcloudtestbucket";
+ private static final String EXPECTED_TEST_BUCKET = "jcloudstestbucket";
private static final String EXPECTED_TEST_OBJECT = "foo.txt";
private static final String EXPECTED_TEST_GROUP_ENTITY = "group-00b4903a971ec6cff233284d6d24f5bf5cba904c4ade4d43ebd6a5d33800e68b";
private static final String EXPECTED_TEST_USER_ENTITY = "user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d";
@@ -45,14 +45,14 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
.builder()
.method("GET")
.endpoint(
- "https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/group-00b4903a971ec6cff233284d6d24f5bf5cba904c4ade4d43ebd6a5d33800e68b")
+ "https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl/group-00b4903a971ec6cff233284d6d24f5bf5cba904c4ade4d43ebd6a5d33800e68b")
.addHeader("Accept", "application/json").addHeader("Authorization", "Bearer " + TOKEN).build();
public static final HttpRequest GET_OBJECT_ACL_REQUEST_WITHOPTIONS = HttpRequest
.builder()
.method("GET")
.endpoint(
- "https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/group-00b4903a971ec6cff233284d6d24f5bf5cba904c4ade4d43ebd6a5d33800e68b")
+ "https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl/group-00b4903a971ec6cff233284d6d24f5bf5cba904c4ade4d43ebd6a5d33800e68b")
.addQueryParam("generation", "100").addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -63,11 +63,11 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
.payload(staticPayloadFromResource("/object_acl_insert_response.json")).build();
public final HttpRequest LIST_OBJECT_ACL_REQUEST = HttpRequest.builder().method("GET")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl")
.addHeader("Accept", "application/json").addHeader("Authorization", "Bearer " + TOKEN).build();
public final HttpRequest LIST_OBJECT_ACL_REQUEST_WITHOPTIONS = HttpRequest.builder().method("GET")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl")
.addQueryParam("generation", "100").addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -141,7 +141,7 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
HttpRequest insertRequest = HttpRequest
.builder()
.method("POST")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.payload(payloadFromResourceWithContentType("/object_acl_insert_request_payload.json",
@@ -161,7 +161,7 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
HttpRequest insertRequest = HttpRequest
.builder()
.method("POST")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.addQueryParam("generation", "100")
@@ -185,7 +185,7 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
HttpRequest update = HttpRequest
.builder()
.method("PUT")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/allUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl/allUsers")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.payload(payloadFromResourceWithContentType("/object_acl_request_payload.json",
@@ -207,7 +207,7 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
HttpRequest update = HttpRequest
.builder()
.method("PUT")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/allUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl/allUsers")
.addQueryParam("generation", "100")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
@@ -232,7 +232,7 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
HttpRequest patchRequest = HttpRequest
.builder()
.method("PATCH")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/allUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl/allUsers")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
.payload(payloadFromResourceWithContentType("/object_acl_request_payload.json",
@@ -254,7 +254,7 @@ public class ObjectAccessControlsApiExpectTest extends BaseGoogleCloudStorageApi
HttpRequest patchRequest = HttpRequest
.builder()
.method("PATCH")
- .endpoint("https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/allUsers")
+ .endpoint("https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl/allUsers")
.addQueryParam("generation", "100")
.addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer " + TOKEN)
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
index aa35d22..a5728f8 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectApiLiveTest.java
@@ -68,7 +68,7 @@ import com.google.common.primitives.Bytes;
public class ObjectApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
private static final String BUCKET_NAME = "jcloudsobjectoperations" + UUID.randomUUID();
- private static final String BUCKET_NAME2 = "jcloudobjectdestination" + UUID.randomUUID();
+ private static final String BUCKET_NAME2 = "jcloudsobjectdestination" + UUID.randomUUID();
private static final String UPLOAD_OBJECT_NAME = "objectOperation.txt";
private static final String UPLOAD_OBJECT_NAME2 = "jcloudslogo.jpg";
private static final String MULTIPART_UPLOAD_OBJECT = "multipart_related.jpg";
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java
index 21494f0..4544128 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclGetTest.java
@@ -33,7 +33,7 @@ public class BucketAclGetTest extends BaseGoogleCloudStorageParseTest<BucketAcce
@Override
@Consumes(MediaType.APPLICATION_JSON)
public BucketAccessControls expected() {
- return BucketAccessControls.builder().bucket("jcloudtestbucket").entity("allUsers").role(Role.READER)
- .id("jcloudtestbucket/allUsers").build();
+ return BucketAccessControls.builder().bucket("jcloudstestbucket").entity("allUsers").role(Role.READER)
+ .id("jcloudstestbucket/allUsers").build();
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclInsertTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclInsertTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclInsertTest.java
index b38ce42..d7cac85 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclInsertTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclInsertTest.java
@@ -35,8 +35,8 @@ public class BucketAclInsertTest extends BaseGoogleCloudStorageParseTest<BucketA
public BucketAccessControls expected() {
return BucketAccessControls
.builder()
- .id("jcloudtestbucket/allAuthenticatedUsers")
- .bucket("jcloudtestbucket").entity("allAuthenticatedUsers").role(Role.WRITER).build();
+ .id("jcloudstestbucket/allAuthenticatedUsers")
+ .bucket("jcloudstestbucket").entity("allAuthenticatedUsers").role(Role.WRITER).build();
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclListTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclListTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclListTest.java
index 077eb46..3f6a0d4 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclListTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclListTest.java
@@ -32,14 +32,14 @@ import com.google.common.collect.ImmutableList;
public class BucketAclListTest extends BaseGoogleCloudStorageParseTest<List<BucketAccessControls>> {
- private BucketAccessControls item_1 = BucketAccessControls.builder().id("jcloudtestbucket/allUsers")
- .bucket("jcloudtestbucket").entity("allUsers").role(Role.READER).build();
+ private BucketAccessControls item_1 = BucketAccessControls.builder().id("jcloudstestbucket/allUsers")
+ .bucket("jcloudstestbucket").entity("allUsers").role(Role.READER).build();
private BucketAccessControls item_2 = BucketAccessControls
.builder()
- .id("jcloudtestbucket/project-owners-1082289308625")
+ .id("jcloudstestbucket/project-owners-1082289308625")
.projectTeam(ProjectTeam.create("1082289308625", Team.OWNERS))
- .bucket("jcloudtestbucket").entity("project-owners-1082289308625").role(Role.OWNER).build();
+ .bucket("jcloudstestbucket").entity("project-owners-1082289308625").role(Role.OWNER).build();
@Override
public String resource() {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclUpdateTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclUpdateTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclUpdateTest.java
index bfba5e1..b3548f2 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclUpdateTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketAclUpdateTest.java
@@ -33,7 +33,7 @@ public class BucketAclUpdateTest extends BaseGoogleCloudStorageParseTest<BucketA
@Override
@Consumes(MediaType.APPLICATION_JSON)
public BucketAccessControls expected() {
- return BucketAccessControls.builder().id("jcloudtestbucket/allUsers")
- .bucket("jcloudtestbucket").entity("allUsers").role(Role.OWNER).build();
+ return BucketAccessControls.builder().id("jcloudstestbucket/allUsers")
+ .bucket("jcloudstestbucket").entity("allUsers").role(Role.OWNER).build();
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java
index 3f2759b..60ef7fd 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java
@@ -39,8 +39,8 @@ public class FullBucketGetTest extends BaseGoogleCloudStorageParseTest<Bucket> {
private final BucketAccessControls acl1 = BucketAccessControls
.builder()
- .id("jcloudtestbucket3500/project-owners-1082289308625")
- .bucket("jcloudtestbucket3500").entity("project-owners-1082289308625").role(Role.OWNER)
+ .id("jcloudstestbucket3500/project-owners-1082289308625")
+ .bucket("jcloudstestbucket3500").entity("project-owners-1082289308625").role(Role.OWNER)
.projectTeam(ProjectTeam.create("1082289308625", Team.OWNERS))
.build();
@@ -60,8 +60,8 @@ public class FullBucketGetTest extends BaseGoogleCloudStorageParseTest<Bucket> {
@Consumes(MediaType.APPLICATION_JSON)
public Bucket expected() {
return Bucket.create(
- "jcloudtestbucket3500", // id
- "jcloudtestbucket3500", // name
+ "jcloudstestbucket3500", // id
+ "jcloudstestbucket3500", // name
1082289308625l, // projectNumber
new SimpleDateFormatDateService().iso8601DateParse("2014-06-19T14:03:22.345Z"), // timeCreated
10l, // metageneration
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclGetTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclGetTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclGetTest.java
index d50c284..0cef68e 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclGetTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclGetTest.java
@@ -37,13 +37,13 @@ public class ObjectAclGetTest extends BaseGoogleCloudStorageParseTest<ObjectAcce
public ObjectAccessControls expected() {
return ObjectAccessControls
.builder()
- .bucket("jcloudtestbucket")
+ .bucket("jcloudstestbucket")
.object("foo.txt")
.generation(1394121608485000L)
.entity("project-owners-1082289308625")
.role(ObjectRole.OWNER)
.projectTeam(ProjectTeam.create("1082289308625", Team.OWNERS))
- .id("jcloudtestbucket/foo.txt/1394121608485000/project-owners-1082289308625").build();
+ .id("jcloudstestbucket/foo.txt/1394121608485000/project-owners-1082289308625").build();
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclInsertTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclInsertTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclInsertTest.java
index 595687b..b4ccfa2 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclInsertTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclInsertTest.java
@@ -35,7 +35,7 @@ public class ObjectAclInsertTest extends BaseGoogleCloudStorageParseTest<ObjectA
public ObjectAccessControls expected() {
return ObjectAccessControls
.builder()
- .bucket("jcloudtestbucket").object("foo.txt")
+ .bucket("jcloudstestbucket").object("foo.txt")
.entity("user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d")
.entityId("00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d").role(ObjectRole.OWNER)
.build();
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclListTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclListTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclListTest.java
index 7e7c4ed..426da0d 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclListTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclListTest.java
@@ -31,8 +31,8 @@ public class ObjectAclListTest extends BaseGoogleCloudStorageParseTest<List<Obje
private ObjectAccessControls item1 = ObjectAccessControls
.builder()
- .id("jcloudtestbucket/foo.txt/1394121608485000/user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d")
- .bucket("jcloudtestbucket").object("foo.txt").generation(Long.valueOf("1394121608485000"))
+ .id("jcloudstestbucket/foo.txt/1394121608485000/user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d")
+ .bucket("jcloudstestbucket").object("foo.txt").generation(Long.valueOf("1394121608485000"))
.entity("user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d")
.entityId("00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d").role(ObjectRole.OWNER)
.build();
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclUpdateTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclUpdateTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclUpdateTest.java
index 5b5cd60..205622e 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclUpdateTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/ObjectAclUpdateTest.java
@@ -34,7 +34,7 @@ public class ObjectAclUpdateTest extends BaseGoogleCloudStorageParseTest<ObjectA
@Consumes(MediaType.APPLICATION_JSON)
public ObjectAccessControls expected() {
return ObjectAccessControls.builder()
- .bucket("jcloudtestbucket").object("foo.txt").entity("allUsers").role(ObjectRole.OWNER).build();
+ .bucket("jcloudstestbucket").object("foo.txt").entity("allUsers").role(ObjectRole.OWNER).build();
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/resources/bucket_acl_get.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/bucket_acl_get.json b/providers/google-cloud-storage/src/test/resources/bucket_acl_get.json
index 1df3d84..27f3d3f 100644
--- a/providers/google-cloud-storage/src/test/resources/bucket_acl_get.json
+++ b/providers/google-cloud-storage/src/test/resources/bucket_acl_get.json
@@ -1,8 +1,8 @@
{
"kind": "storage#bucketAccessControl",
- "id": "jcloudtestbucket/allUsers",
- "selfLink": "https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers",
- "bucket": "jcloudtestbucket",
+ "id": "jcloudstestbucket/allUsers",
+ "selfLink": "https://content.googleapis.com/storage/v1/b/jcloudstestbucket/acl/allUsers",
+ "bucket": "jcloudstestbucket",
"entity": "allUsers",
"role": "READER",
"etag": "CAM="
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/resources/bucket_acl_insert_response.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/bucket_acl_insert_response.json b/providers/google-cloud-storage/src/test/resources/bucket_acl_insert_response.json
index f03dae2..144aa32 100644
--- a/providers/google-cloud-storage/src/test/resources/bucket_acl_insert_response.json
+++ b/providers/google-cloud-storage/src/test/resources/bucket_acl_insert_response.json
@@ -1,8 +1,8 @@
{
"kind": "storage#bucketAccessControl",
- "id": "jcloudtestbucket/allAuthenticatedUsers",
- "selfLink": "https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allAuthenticatedUsers",
- "bucket": "jcloudtestbucket",
+ "id": "jcloudstestbucket/allAuthenticatedUsers",
+ "selfLink": "https://content.googleapis.com/storage/v1/b/jcloudstestbucket/acl/allAuthenticatedUsers",
+ "bucket": "jcloudstestbucket",
"entity": "allAuthenticatedUsers",
"role": "WRITER",
"etag": "CAQ="
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/resources/bucket_acl_list.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/bucket_acl_list.json b/providers/google-cloud-storage/src/test/resources/bucket_acl_list.json
index e0ed5a4..dd8ca03 100644
--- a/providers/google-cloud-storage/src/test/resources/bucket_acl_list.json
+++ b/providers/google-cloud-storage/src/test/resources/bucket_acl_list.json
@@ -3,18 +3,18 @@
"items": [
{
"kind": "storage#bucketAccessControl",
- "id": "jcloudtestbucket/allUsers",
- "selfLink": "https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers",
- "bucket": "jcloudtestbucket",
+ "id": "jcloudstestbucket/allUsers",
+ "selfLink": "https://content.googleapis.com/storage/v1/b/jcloudstestbucket/acl/allUsers",
+ "bucket": "jcloudstestbucket",
"entity": "allUsers",
"role": "READER",
"etag": "CAc="
},
{
"kind": "storage#bucketAccessControl",
- "id": "jcloudtestbucket/project-owners-1082289308625",
- "selfLink": "https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/project-owners-1082289308625",
- "bucket": "jcloudtestbucket",
+ "id": "jcloudstestbucket/project-owners-1082289308625",
+ "selfLink": "https://content.googleapis.com/storage/v1/b/jcloudstestbucket/acl/project-owners-1082289308625",
+ "bucket": "jcloudstestbucket",
"entity": "project-owners-1082289308625",
"role": "OWNER",
"projectTeam": {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/resources/bucket_acl_update_response.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/bucket_acl_update_response.json b/providers/google-cloud-storage/src/test/resources/bucket_acl_update_response.json
index f16f7a4..5859e13 100644
--- a/providers/google-cloud-storage/src/test/resources/bucket_acl_update_response.json
+++ b/providers/google-cloud-storage/src/test/resources/bucket_acl_update_response.json
@@ -1,8 +1,8 @@
{
"kind": "storage#bucketAccessControl",
- "id": "jcloudtestbucket/allUsers",
- "selfLink": "https://content.googleapis.com/storage/v1/b/jcloudtestbucket/acl/allUsers",
- "bucket": "jcloudtestbucket",
+ "id": "jcloudstestbucket/allUsers",
+ "selfLink": "https://content.googleapis.com/storage/v1/b/jcloudstestbucket/acl/allUsers",
+ "bucket": "jcloudstestbucket",
"entity": "allUsers",
"role": "OWNER",
"etag": "CAg="
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/resources/full_bucket_get.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/full_bucket_get.json b/providers/google-cloud-storage/src/test/resources/full_bucket_get.json
index 3cea72e..42e2cf4 100644
--- a/providers/google-cloud-storage/src/test/resources/full_bucket_get.json
+++ b/providers/google-cloud-storage/src/test/resources/full_bucket_get.json
@@ -1,17 +1,17 @@
{
"kind": "storage#bucket",
- "id": "jcloudtestbucket3500",
- "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudtestbucket3500",
+ "id": "jcloudstestbucket3500",
+ "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudstestbucket3500",
"projectNumber": "1082289308625",
- "name": "jcloudtestbucket3500",
+ "name": "jcloudstestbucket3500",
"timeCreated": "2014-06-19T14:03:22.345Z",
"metageneration": "10",
"acl": [
{
"kind": "storage#bucketAccessControl",
- "id": "jcloudtestbucket3500/project-owners-1082289308625",
- "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudtestbucket3500/acl/project-owners-1082289308625",
- "bucket": "jcloudtestbucket3500",
+ "id": "jcloudstestbucket3500/project-owners-1082289308625",
+ "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudstestbucket3500/acl/project-owners-1082289308625",
+ "bucket": "jcloudstestbucket3500",
"entity": "project-owners-1082289308625",
"role": "OWNER",
"projectTeam": {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/resources/list_bucket_with_options.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/list_bucket_with_options.json b/providers/google-cloud-storage/src/test/resources/list_bucket_with_options.json
index bceb735..ad28c1b 100644
--- a/providers/google-cloud-storage/src/test/resources/list_bucket_with_options.json
+++ b/providers/google-cloud-storage/src/test/resources/list_bucket_with_options.json
@@ -1,13 +1,13 @@
{
"kind": "storage#buckets",
- "nextPageToken": "jcloudtestbucket500",
+ "nextPageToken": "jcloudstestbucket500",
"items": [
{
"kind": "storage#bucket",
- "id": "jcloudtestbucket500",
- "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudtestbucket500",
+ "id": "jcloudstestbucket500",
+ "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudstestbucket500",
"projectNumber": "1082289308625",
- "name": "jcloudtestbucket500",
+ "name": "jcloudstestbucket500",
"timeCreated": "2014-06-17T14:17:50.155Z",
"metageneration": "1",
"owner": {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/resources/object_acl_get.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/object_acl_get.json b/providers/google-cloud-storage/src/test/resources/object_acl_get.json
index dd2417d..6b09d42 100644
--- a/providers/google-cloud-storage/src/test/resources/object_acl_get.json
+++ b/providers/google-cloud-storage/src/test/resources/object_acl_get.json
@@ -1,8 +1,8 @@
{
"kind": "storage#objectAccessControl",
- "id": "jcloudtestbucket/foo.txt/1394121608485000/project-owners-1082289308625",
- "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/project-owners-1082289308625",
- "bucket": "jcloudtestbucket",
+ "id": "jcloudstestbucket/foo.txt/1394121608485000/project-owners-1082289308625",
+ "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl/project-owners-1082289308625",
+ "bucket": "jcloudstestbucket",
"object": "foo.txt",
"generation": "1394121608485000",
"entity": "project-owners-1082289308625",
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/resources/object_acl_insert_response.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/object_acl_insert_response.json b/providers/google-cloud-storage/src/test/resources/object_acl_insert_response.json
index 1a477b8..4197a6c 100644
--- a/providers/google-cloud-storage/src/test/resources/object_acl_insert_response.json
+++ b/providers/google-cloud-storage/src/test/resources/object_acl_insert_response.json
@@ -1,7 +1,7 @@
{
"kind": "storage#objectAccessControl",
- "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d",
- "bucket": "jcloudtestbucket",
+ "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl/user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d",
+ "bucket": "jcloudstestbucket",
"object": "foo.txt",
"entity": "user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d",
"role": "OWNER",
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/resources/object_acl_list.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/object_acl_list.json b/providers/google-cloud-storage/src/test/resources/object_acl_list.json
index 9a7a677..dd8883a 100644
--- a/providers/google-cloud-storage/src/test/resources/object_acl_list.json
+++ b/providers/google-cloud-storage/src/test/resources/object_acl_list.json
@@ -3,9 +3,9 @@
"items": [
{
"kind": "storage#objectAccessControl",
- "id": "jcloudtestbucket/foo.txt/1394121608485000/user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d",
- "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d",
- "bucket": "jcloudtestbucket",
+ "id": "jcloudstestbucket/foo.txt/1394121608485000/user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d",
+ "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl/user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d",
+ "bucket": "jcloudstestbucket",
"object": "foo.txt",
"generation": "1394121608485000",
"entity": "user-00b4903a97adfde729f0650133a7379693099d8d85d6b1b18255ca70bf89e31d",
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/resources/object_acl_update_initial.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/object_acl_update_initial.json b/providers/google-cloud-storage/src/test/resources/object_acl_update_initial.json
index c3ee980..b888ed4 100644
--- a/providers/google-cloud-storage/src/test/resources/object_acl_update_initial.json
+++ b/providers/google-cloud-storage/src/test/resources/object_acl_update_initial.json
@@ -1,7 +1,7 @@
{
"kind": "storage#objectAccessControl",
- "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/allUsers",
- "bucket": "jcloudtestbucket",
+ "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl/allUsers",
+ "bucket": "jcloudstestbucket",
"object": "foo.txt",
"entity": "allUsers",
"role": "OWNER",
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9d3a7bdd/providers/google-cloud-storage/src/test/resources/object_acl_update_response.json
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/resources/object_acl_update_response.json b/providers/google-cloud-storage/src/test/resources/object_acl_update_response.json
index c3ee980..b888ed4 100644
--- a/providers/google-cloud-storage/src/test/resources/object_acl_update_response.json
+++ b/providers/google-cloud-storage/src/test/resources/object_acl_update_response.json
@@ -1,7 +1,7 @@
{
"kind": "storage#objectAccessControl",
- "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudtestbucket/o/foo.txt/acl/allUsers",
- "bucket": "jcloudtestbucket",
+ "selfLink": "https://www.googleapis.com/storage/v1/b/jcloudstestbucket/o/foo.txt/acl/allUsers",
+ "bucket": "jcloudstestbucket",
"object": "foo.txt",
"entity": "allUsers",
"role": "OWNER",
[05/50] jclouds git commit: JCLOUDS-894: Disable MultipartUploads
tests
Posted by ga...@apache.org.
JCLOUDS-894: Disable MultipartUploads tests
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/2585624d
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/2585624d
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/2585624d
Branch: refs/heads/master
Commit: 2585624d44c531acb8a73877b0de16f07be026ed
Parents: ff2d150
Author: Daniel Broudy <br...@google.com>
Authored: Fri May 29 16:36:08 2015 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Mon Jun 1 15:52:53 2015 -0700
----------------------------------------------------------------------
...ogleCloudStorageBlobIntegrationLiveTest.java | 21 ++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2585624d/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 c878e52..783bb07 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
@@ -94,15 +94,24 @@ public class GoogleCloudStorageBlobIntegrationLiveTest extends BaseBlobIntegrati
}
@Override
- @Test(enabled = false)
- public void testFileGetParallel() throws SkipException {
- // Implement Parallel uploads
+ @Test(groups = { "integration", "live" })
+ public void testMultipartUploadSinglePart() throws SkipException {
+ throw new SkipException("Implement MultipartUploads uploads");
+ // TODO: Implement MultipartUploads uploads
}
@Override
- @Test(enabled = false)
- public void testPutFileParallel() throws SkipException {
- // Implement Parallel uploads
+ @Test(groups = { "integration", "live" })
+ public void testMultipartUploadMultipleParts() throws SkipException {
+ throw new SkipException("Implement MultipartUploads uploads");
+ // TODO: Implement MultipartUploads uploads
+ }
+
+ @Override
+ @Test(groups = { "integration", "live" })
+ public void testMultipartUploadNoPartsAbort() throws SkipException {
+ throw new SkipException("Implement MultipartUploads uploads");
+ // TODO: Implement MultipartUploads uploads
}
@Override
[04/50] jclouds git commit: Remove bucket litter during integration
tests
Posted by ga...@apache.org.
Remove bucket litter during integration tests
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/ff2d150d
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/ff2d150d
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/ff2d150d
Branch: refs/heads/master
Commit: ff2d150d7db73c9742e8b5aad1a86e2535974a8c
Parents: 9d3a7bd
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri May 29 14:11:51 2015 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri May 29 14:11:51 2015 -0700
----------------------------------------------------------------------
.../jclouds/googlecloudstorage/features/BucketApiLiveTest.java | 4 ++++
1 file changed, 4 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/ff2d150d/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
index 9c81aa5..12226dc 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
@@ -116,6 +116,8 @@ public class BucketApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
assertEquals(response.name(), BUCKET_NAME_STANDARD);
assertEquals(response.location(), Location.US);
assertThat(response.storageClass()).isEqualTo(StorageClass.STANDARD);
+
+ api().deleteBucket(BUCKET_NAME_STANDARD);
}
@Test(groups = "live")
@@ -131,6 +133,8 @@ public class BucketApiLiveTest extends BaseGoogleCloudStorageApiLiveTest {
assertEquals(response.name(), BUCKET_NAME_NEARLINE);
assertEquals(response.location(), Location.US);
assertThat(response.storageClass()).isEqualTo(StorageClass.NEARLINE);
+
+ api().deleteBucket(BUCKET_NAME_NEARLINE);
}
@Test(groups = "live", dependsOnMethods = { "testCreateBucket" })
[27/50] jclouds git commit: Skip ACL tests on GCS
Posted by ga...@apache.org.
Skip ACL tests on GCS
These tests use request signing which GCS does not currently support.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/9c05604e
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/9c05604e
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/9c05604e
Branch: refs/heads/master
Commit: 9c05604e994867695bb6418c3b34ec9c6ec8bf83
Parents: 10318ed
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Jan 22 21:09:54 2016 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Jan 22 21:09:54 2016 -0800
----------------------------------------------------------------------
.../GoogleCloudStorageBlobIntegrationLiveTest.java | 11 +++++++++++
.../GoogleCloudStorageContainerIntegrationLiveTest.java | 11 +++++++++++
2 files changed, 22 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9c05604e/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 db1bcd8..803307f 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
@@ -29,6 +29,7 @@ import java.util.Properties;
import javax.ws.rs.core.MediaType;
+import org.assertj.core.api.Fail;
import org.jclouds.blobstore.BlobStore;
import org.jclouds.blobstore.domain.Blob;
import org.jclouds.blobstore.domain.BlobBuilder.PayloadBlobBuilder;
@@ -257,4 +258,14 @@ public class GoogleCloudStorageBlobIntegrationLiveTest extends BaseBlobIntegrati
public void deleteObject(String name) throws InterruptedException {
super.deleteObject(name);
}
+
+ @Override
+ public void testSetBlobAccess() throws Exception {
+ try {
+ super.testSetBlobAccess();
+ Fail.failBecauseExceptionWasNotThrown(UnsupportedOperationException.class);
+ } catch (UnsupportedOperationException uoe) {
+ throw new SkipException("request signing not supported on GCS", uoe);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9c05604e/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
index 4caac24..bd5afb8 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
@@ -25,6 +25,7 @@ import java.util.Properties;
import javax.ws.rs.core.MediaType;
+import org.assertj.core.api.Fail;
import org.jclouds.blobstore.domain.BlobMetadata;
import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
@@ -87,4 +88,14 @@ public class GoogleCloudStorageContainerIntegrationLiveTest extends BaseContaine
public void testListMarkerAfterLastKey() throws Exception {
throw new SkipException("cannot specify arbitrary markers");
}
+
+ @Override
+ public void testSetContainerAccess() throws Exception {
+ try {
+ super.testSetContainerAccess();
+ Fail.failBecauseExceptionWasNotThrown(UnsupportedOperationException.class);
+ } catch (UnsupportedOperationException uoe) {
+ throw new SkipException("request signing not supported on GCS", uoe);
+ }
+ }
}
[36/50] jclouds git commit: Delete GCS composite object components
Posted by ga...@apache.org.
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);
}
[29/50] jclouds git commit: GCS support for conditional copies
Posted by ga...@apache.org.
GCS support for conditional copies
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/2499cb0a
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/2499cb0a
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/2499cb0a
Branch: refs/heads/master
Commit: 2499cb0ac27b49a6d0b915730dcee13ed72c7a45
Parents: 165e9af
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Feb 12 19:33:10 2016 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Feb 12 20:44:18 2016 -0800
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 13 ++++++
...ogleCloudStorageBlobIntegrationLiveTest.java | 48 ++++++++++++++++++++
2 files changed, 61 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2499cb0a/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 4f2cf3d..10ebfc1 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
@@ -308,6 +308,19 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
@Override
public String copyBlob(String fromContainer, String fromName, String toContainer, String toName,
CopyOptions options) {
+ if (options.ifMatch() != null) {
+ throw new UnsupportedOperationException("GCS does not support ifMatch");
+ }
+ if (options.ifNoneMatch() != null) {
+ throw new UnsupportedOperationException("GCS does not support ifNoneMatch");
+ }
+ if (options.ifModifiedSince() != null) {
+ throw new UnsupportedOperationException("GCS does not support ifModifiedSince");
+ }
+ if (options.ifUnmodifiedSince() != null) {
+ throw new UnsupportedOperationException("GCS does not support ifUnmodifiedSince");
+ }
+
if (options.contentMetadata() == null && options.userMetadata() == null) {
return api.getObjectApi().copyObject(toContainer, Strings2.urlEncode(toName), fromContainer,
Strings2.urlEncode(fromName)).etag();
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2499cb0a/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 803307f..8aa3fe1 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
@@ -268,4 +268,52 @@ public class GoogleCloudStorageBlobIntegrationLiveTest extends BaseBlobIntegrati
throw new SkipException("request signing not supported on GCS", uoe);
}
}
+
+ @Override
+ @Test(expectedExceptions = UnsupportedOperationException.class)
+ public void testCopyIfMatch() throws Exception {
+ super.testCopyIfMatch();
+ }
+
+ @Override
+ @Test(expectedExceptions = UnsupportedOperationException.class)
+ public void testCopyIfMatchNegative() throws Exception {
+ super.testCopyIfMatch();
+ }
+
+ @Override
+ @Test(expectedExceptions = UnsupportedOperationException.class)
+ public void testCopyIfNoneMatch() throws Exception {
+ super.testCopyIfNoneMatch();
+ }
+
+ @Override
+ @Test(expectedExceptions = UnsupportedOperationException.class)
+ public void testCopyIfNoneMatchNegative() throws Exception {
+ super.testCopyIfNoneMatch();
+ }
+
+ @Override
+ @Test(expectedExceptions = UnsupportedOperationException.class)
+ public void testCopyIfModifiedSince() throws Exception {
+ super.testCopyIfModifiedSince();
+ }
+
+ @Override
+ @Test(expectedExceptions = UnsupportedOperationException.class)
+ public void testCopyIfModifiedSinceNegative() throws Exception {
+ super.testCopyIfModifiedSince();
+ }
+
+ @Override
+ @Test(expectedExceptions = UnsupportedOperationException.class)
+ public void testCopyIfUnmodifiedSince() throws Exception {
+ super.testCopyIfUnmodifiedSince();
+ }
+
+ @Override
+ @Test(expectedExceptions = UnsupportedOperationException.class)
+ public void testCopyIfUnmodifiedSinceNegative() throws Exception {
+ super.testCopyIfUnmodifiedSince();
+ }
}
[13/50] jclouds git commit: Remove the graduated GCE provided and
updated Maven coordinates
Posted by ga...@apache.org.
Remove the graduated GCE provided and updated Maven coordinates
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/e76c59fe
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/e76c59fe
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/e76c59fe
Branch: refs/heads/master
Commit: e76c59fef480ee8fd3a018766b724190c24945e9
Parents: 2abac7c
Author: Ignasi Barrera <na...@apache.org>
Authored: Fri Jun 26 14:51:07 2015 +0200
Committer: Ignasi Barrera <na...@apache.org>
Committed: Fri Jun 26 14:51:07 2015 +0200
----------------------------------------------------------------------
providers/google-cloud-storage/pom.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/e76c59fe/providers/google-cloud-storage/pom.xml
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/pom.xml b/providers/google-cloud-storage/pom.xml
index 203bb39..1b08640 100644
--- a/providers/google-cloud-storage/pom.xml
+++ b/providers/google-cloud-storage/pom.xml
@@ -49,13 +49,13 @@
<version>${jclouds.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.jclouds.labs</groupId>
+ <groupId>org.apache.jclouds.common</groupId>
<artifactId>googlecloud</artifactId>
<version>${project.version}</version>
<type>jar</type>
</dependency>
<dependency>
- <groupId>org.apache.jclouds.labs</groupId>
+ <groupId>org.apache.jclouds.common</groupId>
<artifactId>googlecloud</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
[41/50] jclouds git commit: Avoid lower-case l literal suffix
Posted by ga...@apache.org.
Avoid lower-case l literal suffix
Readers can confuse this with 1. Found via error-prone. Fixed via:
find -name \*.java | xargs sed -i 's/\( [0-9][0-9]*\)l/\1L/g'
find -name \*.java | xargs sed -i 's/\(([0-9][0-9]*\)l/\1L/g'
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/89787b4c
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/89787b4c
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/89787b4c
Branch: refs/heads/master
Commit: 89787b4c971144a9e7662666f12e27ad3253c25b
Parents: 11c636b
Author: Andrew Gaul <ga...@apache.org>
Authored: Sun Oct 23 14:15:09 2016 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sun Oct 23 14:15:09 2016 -0700
----------------------------------------------------------------------
.../org/jclouds/googlecloudstorage/parse/BucketUpdateTest.java | 4 ++--
.../org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java | 4 ++--
.../jclouds/googlecloudstorage/parse/NoAclBucketListTest.java | 4 ++--
.../org/jclouds/googlecloudstorage/parse/NoAclBucketTest.java | 4 ++--
4 files changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/89787b4c/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketUpdateTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketUpdateTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketUpdateTest.java
index da57c19..df28169 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketUpdateTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/BucketUpdateTest.java
@@ -39,9 +39,9 @@ public class BucketUpdateTest extends BaseGoogleCloudStorageParseTest<Bucket> {
return Bucket.create(
"bhashbucket", // id
"bhashbucket", // name
- 1082289308625l, // projectNumber
+ 1082289308625L, // projectNumber
new SimpleDateFormatDateService().iso8601DateParse("2014-06-02T19:19:41.112z"), // timeCreated
- 204l, // metageneration
+ 204L, // metageneration
null, // acl
null, // defaultObjectAcl
Owner.create("project-owners-1082289308625", null), // owner
http://git-wip-us.apache.org/repos/asf/jclouds/blob/89787b4c/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java
index 60ef7fd..0f155e3 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/FullBucketGetTest.java
@@ -62,9 +62,9 @@ public class FullBucketGetTest extends BaseGoogleCloudStorageParseTest<Bucket> {
return Bucket.create(
"jcloudstestbucket3500", // id
"jcloudstestbucket3500", // name
- 1082289308625l, // projectNumber
+ 1082289308625L, // projectNumber
new SimpleDateFormatDateService().iso8601DateParse("2014-06-19T14:03:22.345Z"), // timeCreated
- 10l, // metageneration
+ 10L, // metageneration
Arrays.asList(acl1), // acl
Arrays.asList(defObjectAcl), // defaultObjectAcl
Owner.create("project-owners-1082289308625", null), // owner
http://git-wip-us.apache.org/repos/asf/jclouds/blob/89787b4c/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketListTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketListTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketListTest.java
index 91c8074..84d644a 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketListTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketListTest.java
@@ -34,9 +34,9 @@ public class NoAclBucketListTest extends BaseGoogleCloudStorageParseTest<ListPag
private Bucket item1 = Bucket.create("bhashbucket", // id
"bhashbucket", // name
- 1082289308625l, // projectNumber
+ 1082289308625L, // projectNumber
new SimpleDateFormatDateService().iso8601DateParse("2014-06-02T19:19:41.112z"), // timeCreated
- 99l, // metageneration
+ 99L, // metageneration
null, // acl
null, // defaultObjectAcl
Owner.create("project-owners-1082289308625", null), // owner
http://git-wip-us.apache.org/repos/asf/jclouds/blob/89787b4c/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketTest.java
index a2f4091..5e93f4f 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/parse/NoAclBucketTest.java
@@ -39,9 +39,9 @@ public class NoAclBucketTest extends BaseGoogleCloudStorageParseTest<Bucket> {
return Bucket.create(
"bhashbucket", // id
"bhashbucket", // name
- 1082289308625l, // projectNumber
+ 1082289308625L, // projectNumber
new SimpleDateFormatDateService().iso8601DateParse("2014-06-02T19:19:41.112z"), // timeCreated
- 87l, // metageneration
+ 87L, // metageneration
null, // acl
null, // defaultObjectAcl
Owner.create("project-owners-1082289308625", null), // owner
[15/50] jclouds git commit: JCLOUDS-929: Disable delimiter test.
Posted by ga...@apache.org.
JCLOUDS-929: Disable delimiter test.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/e492ba64
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/e492ba64
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/e492ba64
Branch: refs/heads/master
Commit: e492ba641ad7abd78430e19345f5ca2c4152daeb
Parents: 7be0753
Author: Timur Alperovich <ti...@gmail.com>
Authored: Mon Jul 13 14:43:01 2015 -0700
Committer: Timur Alperovich <ti...@gmail.com>
Committed: Mon Jul 13 14:43:01 2015 -0700
----------------------------------------------------------------------
.../integration/GoogleCloudStorageContainerLiveTest.java | 5 +++++
1 file changed, 5 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/e492ba64/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java
index 5aa033e..490ee35 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java
@@ -39,4 +39,9 @@ public class GoogleCloudStorageContainerLiveTest extends BaseContainerLiveTest {
public void testContainerListWithPrefix() {
throw new SkipException("Prefix option has not been plumbed down to GCS");
}
+
+ @Override
+ public void testDelimiterList() {
+ throw new SkipException("Prefix option has not been plumbed down to GCS");
+ }
}
[35/50] jclouds git commit: JCLOUDS-912: GCS upload InputStream work
around
Posted by ga...@apache.org.
JCLOUDS-912: GCS upload InputStream work around
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/c2a22bc3
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/c2a22bc3
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/c2a22bc3
Branch: refs/heads/master
Commit: c2a22bc32ca5e3f82c6cb5fedcb1924bc251b20f
Parents: 5d43731
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Jun 3 12:38:43 2016 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Jun 3 12:38:43 2016 -0700
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c2a22bc3/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 10ebfc1..1cb927e 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
@@ -214,7 +214,9 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
@Override
public String putBlob(String container, Blob blob, PutOptions options) {
- if (options.isMultipart()) {
+ if (options.isMultipart() || !blob.getPayload().isRepeatable()) {
+ // JCLOUDS-912 prevents using single-part uploads with InputStream payloads.
+ // Work around this with multi-part upload which buffers parts in-memory.
return putMultipartBlob(container, blob, options);
} else {
checkNotNull(blob.getPayload().getContentMetadata().getContentLength());
[40/50] jclouds git commit: JCLOUDS-945: ignore marker prefix test on
GCS
Posted by ga...@apache.org.
JCLOUDS-945: ignore marker prefix test on GCS
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/11c636b6
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/11c636b6
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/11c636b6
Branch: refs/heads/master
Commit: 11c636b6b32538e48050476d40b5da9d135c77e8
Parents: 230448a
Author: Andrew Gaul <ga...@apache.org>
Authored: Tue Oct 4 23:03:03 2016 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Tue Oct 4 23:03:03 2016 -0700
----------------------------------------------------------------------
.../GoogleCloudStorageContainerIntegrationLiveTest.java | 5 +++++
1 file changed, 5 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/11c636b6/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
index bd5afb8..ff7f665 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerIntegrationLiveTest.java
@@ -90,6 +90,11 @@ public class GoogleCloudStorageContainerIntegrationLiveTest extends BaseContaine
}
@Override
+ public void testListMarkerPrefix() throws Exception {
+ throw new SkipException("cannot specify arbitrary markers");
+ }
+
+ @Override
public void testSetContainerAccess() throws Exception {
try {
super.testSetContainerAccess();
[37/50] jclouds git commit: JCLOUDS-866: Reduce GCS multipart limit
to 32
Posted by ga...@apache.org.
JCLOUDS-866: Reduce GCS multipart limit to 32
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/ae1f6d0c
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/ae1f6d0c
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/ae1f6d0c
Branch: refs/heads/master
Commit: ae1f6d0c3f18ad733f39be82e13df3c15a02d403
Parents: ed262f7
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Jun 3 23:30:43 2016 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sat Jun 4 00:23:40 2016 -0700
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/ae1f6d0c/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 cce5d3c..fe14fa3 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
@@ -452,8 +452,8 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
@Override
public int getMaximumNumberOfParts() {
- // TODO: should this be 32? See: https://cloud.google.com/storage/docs/composite-objects
- return 10 * 1000;
+ // can raise limit via composite objects of composites
+ return 32;
}
private static String getMPUPartName(MultipartUpload mpu, int partNumber) {
[25/50] jclouds git commit: JCLOUDS-844: GCS putBlob ACLs
Posted by ga...@apache.org.
JCLOUDS-844: GCS putBlob ACLs
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/57d162c6
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/57d162c6
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/57d162c6
Branch: refs/heads/master
Commit: 57d162c646b83ca69da804b95fef987b2ca352f0
Parents: 639e96d
Author: Andrew Gaul <ga...@apache.org>
Authored: Mon Dec 21 23:01:01 2015 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Mon Dec 21 23:25:00 2015 -0800
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 44 ++++++++++++++------
1 file changed, 32 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/57d162c6/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 5dbb7cd..a3b22d1 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
@@ -209,15 +209,7 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
*/
@Override
public String putBlob(String container, Blob blob) {
- checkNotNull(blob.getPayload().getContentMetadata().getContentLength());
- HashCode md5 = blob.getMetadata().getContentMetadata().getContentMD5AsHashCode();
-
- ObjectTemplate template = blobMetadataToObjectTemplate.apply(blob.getMetadata());
-
- if (md5 != null) {
- template.md5Hash(base64().encode(md5.asBytes()));
- }
- return api.getObjectApi().multipartUpload(container, template, blob.getPayload()).etag();
+ return putBlob(container, blob, PutOptions.NONE);
}
@Override
@@ -225,7 +217,25 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
if (options.isMultipart()) {
return putMultipartBlob(container, blob, options);
} else {
- return putBlob(container, blob);
+ checkNotNull(blob.getPayload().getContentMetadata().getContentLength());
+
+ ObjectTemplate template = blobMetadataToObjectTemplate.apply(blob.getMetadata());
+
+ HashCode md5 = blob.getMetadata().getContentMetadata().getContentMD5AsHashCode();
+ if (md5 != null) {
+ template.md5Hash(base64().encode(md5.asBytes()));
+ }
+
+ if (options.getBlobAccess() == BlobAccess.PUBLIC_READ) {
+ ObjectAccessControls controls = ObjectAccessControls.builder()
+ .entity("allUsers")
+ .bucket(container)
+ .role(READER)
+ .build();
+ template.addAcl(controls);
+ }
+
+ return api.getObjectApi().multipartUpload(container, template, blob.getPayload()).etag();
}
}
@@ -342,9 +352,9 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
}
@Override
- public MultipartUpload initiateMultipartUpload(String container, BlobMetadata blobMetadata) {
+ public MultipartUpload initiateMultipartUpload(String container, BlobMetadata blobMetadata, PutOptions options) {
String uploadId = blobMetadata.getName();
- return MultipartUpload.create(container, blobMetadata.getName(), uploadId, blobMetadata);
+ return MultipartUpload.create(container, blobMetadata.getName(), uploadId, blobMetadata, options);
}
@Override
@@ -364,7 +374,17 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
builder.add(api.getObjectApi().getObject(mpu.containerName(),
Strings2.urlEncode(getMPUPartName(mpu, part.partNumber()))));
}
+
ObjectTemplate destination = blobMetadataToObjectTemplate.apply(mpu.blobMetadata());
+ if (mpu.putOptions().getBlobAccess() == BlobAccess.PUBLIC_READ) {
+ ObjectAccessControls controls = ObjectAccessControls.builder()
+ .entity("allUsers")
+ .bucket(mpu.containerName())
+ .role(READER)
+ .build();
+ destination.addAcl(controls);
+ }
+
ComposeObjectTemplate template = ComposeObjectTemplate.builder().fromGoogleCloudStorageObject(builder.build())
.destination(destination).build();
return api.getObjectApi().composeObjects(mpu.containerName(), Strings2.urlEncode(mpu.blobName()), template)
[28/50] jclouds git commit: Convert CopyOptions into an AutoValue
Posted by ga...@apache.org.
Convert CopyOptions into an AutoValue
This commit requires an interface change since AutoValue lacks support
for Optional and uses Nullable annotations instead.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/165e9afd
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/165e9afd
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/165e9afd
Branch: refs/heads/master
Commit: 165e9afd9f4830f55018b2fa4fa8f6dcec609e7d
Parents: 9c05604
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Feb 12 19:29:38 2016 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Feb 12 19:29:38 2016 -0800
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/165e9afd/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 a3b22d1..4f2cf3d 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
@@ -308,15 +308,15 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
@Override
public String copyBlob(String fromContainer, String fromName, String toContainer, String toName,
CopyOptions options) {
- if (!options.getContentMetadata().isPresent() && !options.getUserMetadata().isPresent()) {
+ if (options.contentMetadata() == null && options.userMetadata() == null) {
return api.getObjectApi().copyObject(toContainer, Strings2.urlEncode(toName), fromContainer,
Strings2.urlEncode(fromName)).etag();
}
ObjectTemplate template = new ObjectTemplate();
- if (options.getContentMetadata().isPresent()) {
- ContentMetadata contentMetadata = options.getContentMetadata().get();
+ if (options.contentMetadata() != null) {
+ ContentMetadata contentMetadata = options.contentMetadata();
String contentDisposition = contentMetadata.getContentDisposition();
if (contentDisposition != null) {
@@ -343,8 +343,8 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
}
}
- if (options.getUserMetadata().isPresent()) {
- template.customMetadata(options.getUserMetadata().get());
+ if (options.userMetadata() != null) {
+ template.customMetadata(options.userMetadata());
}
return api.getObjectApi().copyObject(toContainer, Strings2.urlEncode(toName), fromContainer,
[32/50] jclouds git commit: Handle unimplemented signed URL tests in
providers
Posted by ga...@apache.org.
Handle unimplemented signed URL tests in providers
This commit makes it evident in source code which providers do not
support this feature.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/f6210d58
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/f6210d58
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/f6210d58
Branch: refs/heads/master
Commit: f6210d58d3a34ac9261e0dbdffca2d52d5143512
Parents: a780cda
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri May 6 14:38:57 2016 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri May 6 14:38:57 2016 -0700
----------------------------------------------------------------------
.../GoogleCloudStorageBlobSignerLiveTest.java | 102 +++++++++++++++++++
1 file changed, 102 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/f6210d58/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobSignerLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobSignerLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobSignerLiveTest.java
new file mode 100644
index 0000000..7e7dd52
--- /dev/null
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageBlobSignerLiveTest.java
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.googlecloudstorage.blobstore.integration;
+
+import java.io.IOException;
+
+import org.jclouds.blobstore.integration.internal.BaseBlobSignerLiveTest;
+import org.testng.SkipException;
+import org.testng.annotations.Test;
+
+@Test(groups = { "live" })
+public class GoogleCloudStorageBlobSignerLiveTest extends BaseBlobSignerLiveTest {
+ public GoogleCloudStorageBlobSignerLiveTest() {
+ provider = "google-cloud-storage";
+ }
+
+ @Test
+ public void testSignGetUrl() throws Exception {
+ try {
+ super.testSignGetUrl();
+ } catch (UnsupportedOperationException uoe) {
+ throw new SkipException("not yet implemented in GCS", uoe);
+ }
+ }
+
+ @Test
+ public void testSignGetUrlOptions() throws Exception {
+ try {
+ super.testSignGetUrlOptions();
+ } catch (UnsupportedOperationException uoe) {
+ throw new SkipException("not yet implemented in GCS", uoe);
+ }
+ }
+
+ @Test
+ public void testSignGetUrlWithTime() throws InterruptedException, IOException {
+ try {
+ super.testSignGetUrlWithTime();
+ } catch (UnsupportedOperationException uoe) {
+ throw new SkipException("not yet implemented in GCS", uoe);
+ }
+ }
+
+ @Test
+ public void testSignGetUrlWithTimeExpired() throws InterruptedException, IOException {
+ try {
+ super.testSignGetUrlWithTimeExpired();
+ } catch (UnsupportedOperationException uoe) {
+ throw new SkipException("not yet implemented in GCS", uoe);
+ }
+ }
+
+ @Test
+ public void testSignPutUrl() throws Exception {
+ try {
+ super.testSignPutUrl();
+ } catch (UnsupportedOperationException uoe) {
+ throw new SkipException("not yet implemented in GCS", uoe);
+ }
+ }
+
+ @Test
+ public void testSignPutUrlWithTime() throws Exception {
+ try {
+ super.testSignPutUrlWithTime();
+ } catch (UnsupportedOperationException uoe) {
+ throw new SkipException("not yet implemented in GCS", uoe);
+ }
+ }
+
+ @Test
+ public void testSignPutUrlWithTimeExpired() throws Exception {
+ try {
+ super.testSignPutUrlWithTimeExpired();
+ } catch (UnsupportedOperationException uoe) {
+ throw new SkipException("not yet implemented in GCS", uoe);
+ }
+ }
+
+ @Test
+ public void testSignRemoveUrl() throws Exception {
+ try {
+ super.testSignRemoveUrl();
+ } catch (UnsupportedOperationException uoe) {
+ throw new SkipException("not yet implemented in GCS", uoe);
+ }
+ }
+}
[17/50] jclouds git commit: JCLOUDS-992: do not use RELATIVE_PATH for
BLOBs.
Posted by ga...@apache.org.
JCLOUDS-992: do not use RELATIVE_PATH for BLOBs.
Changes the Google storage provider to be inline with the other
providers in not returning RELATIVE_PATH for objects that are BLOBs.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/efdc715b
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/efdc715b
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/efdc715b
Branch: refs/heads/master
Commit: efdc715b88ed3e60d6eb63caf200d2eb6a38ffb6
Parents: 428d909
Author: Timur Alperovich <ti...@gmail.com>
Authored: Thu Aug 20 14:29:20 2015 -0700
Committer: Timur Alperovich <ti...@gmail.com>
Committed: Thu Aug 20 14:30:38 2015 -0700
----------------------------------------------------------------------
.../blobstore/functions/ObjectToBlobMetadata.java | 16 +---------------
1 file changed, 1 insertion(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/efdc715b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectToBlobMetadata.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectToBlobMetadata.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectToBlobMetadata.java
index 93f9959..4a6cf7d 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectToBlobMetadata.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/ObjectToBlobMetadata.java
@@ -16,12 +16,10 @@
*/
package org.jclouds.googlecloudstorage.blobstore.functions;
-import javax.inject.Inject;
import org.jclouds.blobstore.domain.MutableBlobMetadata;
import org.jclouds.blobstore.domain.StorageType;
import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl;
-import org.jclouds.blobstore.strategy.IfDirectoryReturnNameStrategy;
import org.jclouds.googlecloudstorage.domain.GoogleCloudStorageObject;
import org.jclouds.javax.annotation.Nullable;
@@ -30,11 +28,6 @@ import com.google.common.hash.HashCode;
import com.google.common.io.BaseEncoding;
public class ObjectToBlobMetadata implements Function<GoogleCloudStorageObject, MutableBlobMetadata> {
- private final IfDirectoryReturnNameStrategy ifDirectoryReturnName;
-
- @Inject public ObjectToBlobMetadata(IfDirectoryReturnNameStrategy ifDirectoryReturnName) {
- this.ifDirectoryReturnName = ifDirectoryReturnName;
- }
public MutableBlobMetadata apply(GoogleCloudStorageObject from) {
if (from == null) {
@@ -55,14 +48,7 @@ public class ObjectToBlobMetadata implements Function<GoogleCloudStorageObject,
to.setUri(from.selfLink());
to.setId(from.id());
to.setPublicUri(from.mediaLink());
-
- String directoryName = ifDirectoryReturnName.execute(to);
- if (directoryName != null) {
- to.setName(directoryName);
- to.setType(StorageType.RELATIVE_PATH);
- } else {
- to.setType(StorageType.BLOB);
- }
+ to.setType(StorageType.BLOB);
to.setSize(from.size());
return to;
}
[10/50] jclouds git commit: fix javadoc
Posted by ga...@apache.org.
fix javadoc
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/7213acb0
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/7213acb0
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/7213acb0
Branch: refs/heads/master
Commit: 7213acb03f2083d89725170e8c9f1efa920a34a5
Parents: c0190dd
Author: Daniel Broudy <br...@google.com>
Authored: Fri Jun 12 14:26:50 2015 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri Jun 12 16:12:48 2015 -0700
----------------------------------------------------------------------
.../org/jclouds/googlecloudstorage/features/ObjectApi.java | 6 ++++--
.../jclouds/googlecloudstorage/options/GetObjectOptions.java | 3 ++-
2 files changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/7213acb0/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
index 119aece..f91a410 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectApi.java
@@ -113,7 +113,8 @@ public interface ObjectApi {
* @param objectName
* Name of the object
* @param options
- * Supply {@link GetObjectOptions} with optional query parameters
+ * A class that implements {@link HttpRequestOptions}
+ * such as {@link GetObjectOptions} with optional query parameters
*
* @return a {@link GoogleCloudStorageObject}
*/
@@ -153,7 +154,8 @@ public interface ObjectApi {
* @param objectName
* Name of the object
* @param options
- * Supply {@link GetObjectOptions} with optional query parameters
+ * A class that implements {@link HttpRequestOptions}
+ * such as {@link GetObjectOptions} with optional query parameters
*
* @return a {@link GoogleCloudStorageObject}
*/
http://git-wip-us.apache.org/repos/asf/jclouds/blob/7213acb0/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/GetObjectOptions.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/GetObjectOptions.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/GetObjectOptions.java
index 2d307bc..5fd9b0f 100644
--- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/GetObjectOptions.java
+++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/options/GetObjectOptions.java
@@ -22,7 +22,8 @@ import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.Projection
import org.jclouds.http.options.GetOptions;
/**
- * Allows to optionally specify generation,ifGenerationMatch,ifGenerationNotMatch, ifMetagenerationMatch,ifMetagenerationNotMatch and projection which used in Bucket
+ * Allows to optionally specify generation, ifGenerationMatch, ifGenerationNotMatch, ifMetagenerationMatch,
+ * ifMetagenerationNotMatch and projection, in addition to the values in {@link GetOptions}.
*/
public class GetObjectOptions extends GetOptions {
[42/50] jclouds git commit: Do not leave open streams when loading
test mock files
Posted by ga...@apache.org.
Do not leave open streams when loading test mock files
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/a600a122
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/a600a122
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/a600a122
Branch: refs/heads/master
Commit: a600a1221d09e34b3f379acd75a6b7ba3ee32c7f
Parents: 89787b4
Author: Ignasi Barrera <na...@apache.org>
Authored: Wed Oct 26 15:57:28 2016 +0200
Committer: Ignasi Barrera <na...@apache.org>
Committed: Wed Oct 26 15:57:28 2016 +0200
----------------------------------------------------------------------
.../internal/BaseGoogleCloudStorageExpectTest.java | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/a600a122/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageExpectTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageExpectTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageExpectTest.java
index 4246512..dd3c644 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageExpectTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/internal/BaseGoogleCloudStorageExpectTest.java
@@ -49,14 +49,16 @@ import org.jclouds.googlecloudstorage.GoogleCloudStorageProviderMetadata;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.jclouds.io.Payload;
-import org.jclouds.io.payloads.ByteSourcePayload;
+import org.jclouds.io.Payloads;
import org.jclouds.oauth.v2.filters.JWTBearerTokenFlow;
import org.jclouds.oauth.v2.filters.TestJWTBearerTokenFlow;
import org.jclouds.providers.ProviderMetadata;
import org.jclouds.rest.internal.BaseRestApiExpectTest;
+import com.google.common.base.Charsets;
import com.google.common.base.Joiner;
import com.google.common.base.Supplier;
+import com.google.common.base.Throwables;
import com.google.common.io.ByteSource;
import com.google.common.io.Resources;
import com.google.inject.Binder;
@@ -167,6 +169,10 @@ public class BaseGoogleCloudStorageExpectTest<T> extends BaseRestApiExpectTest<T
}
protected Payload staticPayloadFromResource(String resource) {
- return new ByteSourcePayload(Resources.asByteSource(Resources.getResource(getClass(), resource)));
+ try {
+ return Payloads.newStringPayload(Resources.toString(Resources.getResource(getClass(), resource), Charsets.UTF_8));
+ } catch (IOException ex) {
+ throw Throwables.propagate(ex);
+ }
}
}
[38/50] jclouds git commit: JCLOUDS-1125: GCS list multipart uploads
Posted by ga...@apache.org.
JCLOUDS-1125: GCS list multipart uploads
Not supported.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/5baa49d9
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/5baa49d9
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/5baa49d9
Branch: refs/heads/master
Commit: 5baa49d9b844f511e7d6167d43cd85f1a87fa2a6
Parents: ae1f6d0
Author: Andrew Gaul <ga...@apache.org>
Authored: Mon Jun 13 16:34:20 2016 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Mon Jun 13 17:11:39 2016 -0700
----------------------------------------------------------------------
.../blobstore/GoogleCloudStorageBlobStore.java | 5 +++++
.../GoogleCloudStorageBlobIntegrationLiveTest.java | 9 +++++++++
2 files changed, 14 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/5baa49d9/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 fe14fa3..63406d9 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
@@ -441,6 +441,11 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
}
@Override
+ public List<MultipartUpload> listMultipartUploads(String container) {
+ throw new UnsupportedOperationException("not supported");
+ }
+
+ @Override
public long getMinimumMultipartPartSize() {
return 5L * 1024L * 1024L;
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/5baa49d9/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 244076f..d68441c 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
@@ -312,4 +312,13 @@ public class GoogleCloudStorageBlobIntegrationLiveTest extends BaseBlobIntegrati
public void testCopyIfUnmodifiedSinceNegative() throws Exception {
super.testCopyIfUnmodifiedSince();
}
+
+ @Override
+ public void testListMultipartUploads() throws Exception {
+ try {
+ super.testListMultipartUploads();
+ } catch (UnsupportedOperationException uoe) {
+ throw new SkipException("GCS does not support listing multipart uploads", uoe);
+ }
+ }
}
[14/50] jclouds git commit: JCLOUDS-930: Skip the prefix test in GCS.
Posted by ga...@apache.org.
JCLOUDS-930: Skip the prefix test in GCS.
As the prefix option has not been plumbed down into GCS, we should
skip the prefix test.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/7be0753e
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/7be0753e
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/7be0753e
Branch: refs/heads/master
Commit: 7be0753e74c3b60a8461f640bd6c2f658a9f3035
Parents: e76c59f
Author: Timur Alperovich <ti...@gmail.com>
Authored: Mon Jun 29 21:52:17 2015 -0700
Committer: Timur Alperovich <ti...@gmail.com>
Committed: Mon Jun 29 21:52:17 2015 -0700
----------------------------------------------------------------------
.../integration/GoogleCloudStorageContainerLiveTest.java | 6 ++++++
1 file changed, 6 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/7be0753e/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java
index 559713b..5aa033e 100644
--- a/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java
+++ b/providers/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/blobstore/integration/GoogleCloudStorageContainerLiveTest.java
@@ -20,6 +20,7 @@ import java.util.Properties;
import org.jclouds.blobstore.integration.internal.BaseContainerLiveTest;
import org.jclouds.googlecloud.internal.TestProperties;
+import org.testng.SkipException;
import org.testng.annotations.Test;
@Test(groups = { "live" })
@@ -33,4 +34,9 @@ public class GoogleCloudStorageContainerLiveTest extends BaseContainerLiveTest {
TestProperties.setGoogleCredentialsFromJson(provider);
return TestProperties.apply(provider, super.setupProperties());
}
+
+ @Override
+ public void testContainerListWithPrefix() {
+ throw new SkipException("Prefix option has not been plumbed down to GCS");
+ }
}