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:11 UTC

[09/50] jclouds git commit: Update ObjectApi and getBlob, fix testGetRangeOutOfRange

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 {