Updated Branches: refs/heads/1.6.x 5527fae06 -> 82b9704e5
Add Atmos-specific MD5 checksum header Tested against Atmos Online. Project: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/commit/82b9704e Tree: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/tree/82b9704e Diff: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/diff/82b9704e Branch: refs/heads/1.6.x Commit: 82b9704e524107264bf3d3cbdf20c74bcdfc3c82 Parents: 5527fae Author: Andrew Gaul <[email protected]> Authored: Thu Jun 20 15:26:23 2013 -0700 Committer: Andrew Gaul <[email protected]> Committed: Wed Sep 11 18:06:27 2013 -0700 ---------------------------------------------------------------------- .../org/jclouds/atmos/binders/BindMetadataToHeaders.java | 10 ++++++++++ .../java/org/jclouds/atmos/reference/AtmosHeaders.java | 1 + .../atmos/blobstore/AtmosBlobRequestSignerTest.java | 7 ++++++- .../blobstore/integration/AtmosIntegrationLiveTest.java | 6 ------ 4 files changed, 17 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/82b9704e/apis/atmos/src/main/java/org/jclouds/atmos/binders/BindMetadataToHeaders.java ---------------------------------------------------------------------- diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/binders/BindMetadataToHeaders.java b/apis/atmos/src/main/java/org/jclouds/atmos/binders/BindMetadataToHeaders.java index ba852b7..7588287 100644 --- a/apis/atmos/src/main/java/org/jclouds/atmos/binders/BindMetadataToHeaders.java +++ b/apis/atmos/src/main/java/org/jclouds/atmos/binders/BindMetadataToHeaders.java @@ -22,7 +22,10 @@ import static com.google.common.base.Preconditions.checkNotNull; import javax.inject.Inject; import javax.inject.Singleton; +import com.google.common.io.BaseEncoding; + import org.jclouds.atmos.domain.AtmosObject; +import org.jclouds.atmos.reference.AtmosHeaders; import org.jclouds.http.HttpRequest; import org.jclouds.rest.Binder; @@ -47,6 +50,13 @@ public class BindMetadataToHeaders implements Binder { checkNotNull(object.getPayload(), "object payload"); checkArgument(object.getPayload().getContentMetadata().getContentLength() != null, "contentLength must be set, streaming not supported"); + byte[] contentMD5 = object.getContentMetadata().getContentMD5(); + if (contentMD5 != null) { + request = (R) request.toBuilder() + .addHeader(AtmosHeaders.CHECKSUM, "MD5/0/" + + BaseEncoding.base16().encode(contentMD5)) + .build(); + } return metaBinder.bindToRequest(request, object.getUserMetadata()); } } http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/82b9704e/apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosHeaders.java ---------------------------------------------------------------------- diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosHeaders.java b/apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosHeaders.java index 41b328f..b4d2d3d 100644 --- a/apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosHeaders.java +++ b/apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosHeaders.java @@ -35,5 +35,6 @@ public interface AtmosHeaders { public static final String GROUP_ACL = "x-emc-groupacl"; public static final String UID = "x-emc-uid"; public static final String TOKEN = "x-emc-token"; + public static final String CHECKSUM = "x-emc-wschecksum"; } http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/82b9704e/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java ---------------------------------------------------------------------- diff --git a/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java b/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java index 9644406..6f4da6f 100644 --- a/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java +++ b/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java @@ -99,7 +99,12 @@ public class AtmosBlobRequestSignerTest extends BaseAsyncClientTest<AtmosAsyncCl "POST https://accesspoint.atmosonline.com/rest/namespace/container/name HTTP/1.1"); assertNonPayloadHeadersEqual( request, - "Accept: */*\nDate: Thu, 05 Jun 2008 16:38:19 GMT\nExpect: 100-continue\nx-emc-signature: 7Cbdnu+YA5rG9J/C9RlHk07mU7w=\nx-emc-uid: identity\n"); + "Accept: */*\n" + + "Date: Thu, 05 Jun 2008 16:38:19 GMT\n" + + "Expect: 100-continue\n" + + "x-emc-signature: DTzbKA9a0TAawWFEbC4D76wTq3A=\n" + + "x-emc-uid: identity\n" + + "x-emc-wschecksum: MD5/0/00020408\n"); assertContentHeadersEqual(request, "text/plain", null, null, null, 2L, new byte[] { 0, 2, 4, 8 }, new Date(1000)); http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/82b9704e/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java ---------------------------------------------------------------------- diff --git a/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java b/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java index 841a86b..75432a6 100644 --- a/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java +++ b/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java @@ -24,7 +24,6 @@ import java.util.concurrent.ExecutionException; import org.jclouds.blobstore.domain.Blob; import org.jclouds.blobstore.domain.BlobMetadata; import org.jclouds.blobstore.integration.internal.BaseBlobIntegrationTest; -import org.testng.SkipException; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -113,11 +112,6 @@ public class AtmosIntegrationLiveTest extends BaseBlobIntegrationTest { assertEquals(metadata.getContentMetadata().getContentMD5(), null); } - @Override - public void testPutIncorrectContentMD5() throws InterruptedException, IOException { - throw new SkipException("not yet implemented"); - } - @Test(enabled = false) // problem with the stub and md5, live is fine public void testMetadata() {
