JCLOUDS-1337: Atmos putBlob portable storage tiers

Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/f513bf7c
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/f513bf7c
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/f513bf7c

Branch: refs/heads/master
Commit: f513bf7c40d9e7e83fae021f70fc1ca5dce3841b
Parents: e0e3519
Author: Andrew Gaul <[email protected]>
Authored: Mon Oct 23 20:45:10 2017 -0700
Committer: Andrew Gaul <[email protected]>
Committed: Mon Oct 23 21:31:48 2017 -0700

----------------------------------------------------------------------
 .../functions/ObjectToBlobMetadata.java         |  2 ++
 .../integration/AtmosIntegrationLiveTest.java   | 38 ++++++++++++++++++++
 .../internal/BaseBlobIntegrationTest.java       |  6 +++-
 3 files changed, 45 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/f513bf7c/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlobMetadata.java
----------------------------------------------------------------------
diff --git 
a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlobMetadata.java
 
b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlobMetadata.java
index 17aaee9..0ea70cbe 100644
--- 
a/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlobMetadata.java
+++ 
b/apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlobMetadata.java
@@ -29,6 +29,7 @@ import org.jclouds.atmos.filters.ShareUrl;
 import org.jclouds.atmos.functions.AtmosObjectName;
 import org.jclouds.blobstore.domain.MutableBlobMetadata;
 import org.jclouds.blobstore.domain.StorageType;
+import org.jclouds.blobstore.domain.Tier;
 import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl;
 import org.jclouds.http.HttpUtils;
 
@@ -78,6 +79,7 @@ public class ObjectToBlobMetadata implements 
Function<AtmosObject, MutableBlobMe
       }
       to.setUserMetadata(lowerKeyMetadata);
       to.setSize(from.getContentMetadata().getContentLength());
+      to.setTier(Tier.STANDARD);
       return to;
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f513bf7c/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 4f6e991..8bed038 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
@@ -17,6 +17,7 @@
 package org.jclouds.atmos.blobstore.integration;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.failBecauseExceptionWasNotThrown;
 import static org.testng.Assert.assertEquals;
 
 import java.io.IOException;
@@ -24,6 +25,7 @@ import java.util.concurrent.ExecutionException;
 
 import org.jclouds.blobstore.domain.Blob;
 import org.jclouds.blobstore.domain.BlobMetadata;
+import org.jclouds.blobstore.domain.Tier;
 import org.jclouds.blobstore.integration.internal.BaseBlobIntegrationTest;
 import org.testng.SkipException;
 import org.testng.annotations.DataProvider;
@@ -197,4 +199,40 @@ public class AtmosIntegrationLiveTest extends 
BaseBlobIntegrationTest {
    public void testCopyIfNoneMatchNegative() throws Exception {
       super.testCopyIfNoneMatchNegative();
    }
+
+   @Test(groups = { "integration", "live" })
+   public void testPutBlobTierStandardMultipart() throws Exception {
+      try {
+         super.testPutBlobTierStandardMultipart();
+         failBecauseExceptionWasNotThrown(UnsupportedOperationException.class);
+      } catch (UnsupportedOperationException uoe) {
+         throw new SkipException("Atmos does not support multipart", uoe);
+      }
+   }
+
+   @Test(groups = { "integration", "live" })
+   public void testPutBlobTierInfrequentMultipart() throws Exception {
+      try {
+         super.testPutBlobTierInfrequentMultipart();
+         failBecauseExceptionWasNotThrown(UnsupportedOperationException.class);
+      } catch (UnsupportedOperationException uoe) {
+         throw new SkipException("Atmos does not support multipart", uoe);
+      }
+   }
+
+   @Test(groups = { "integration", "live" })
+   public void testPutBlobTierArchiveMultipart() throws Exception {
+      try {
+         super.testPutBlobTierArchiveMultipart();
+         failBecauseExceptionWasNotThrown(UnsupportedOperationException.class);
+      } catch (UnsupportedOperationException uoe) {
+         throw new SkipException("Atmos does not support multipart", uoe);
+      }
+   }
+
+   @Override
+   protected void checkTier(BlobMetadata metadata, Tier expected) {
+      // Atmos maps all tiers to STANDARD
+      assertThat(metadata.getTier()).isEqualTo(Tier.STANDARD);
+   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/f513bf7c/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobIntegrationTest.java
----------------------------------------------------------------------
diff --git 
a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobIntegrationTest.java
 
b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobIntegrationTest.java
index 27657ae..23f26eb 100644
--- 
a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobIntegrationTest.java
+++ 
b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseBlobIntegrationTest.java
@@ -787,12 +787,16 @@ public class BaseBlobIntegrationTest extends 
BaseBlobStoreIntegrationTest {
             .tier(tier)
             .build();
          blobStore.putBlob(containerName, blob, options);
-         assertThat(blobStore.blobMetadata(containerName, 
blobName).getTier()).isEqualTo(tier);
+         checkTier(blobStore.blobMetadata(containerName, blobName), tier);
       } finally {
          returnContainer(containerName);
       }
    }
 
+   protected void checkTier(BlobMetadata metadata, Tier expected) {
+      assertThat(metadata.getTier()).isEqualTo(expected);
+   }
+
    protected void checkUserMetadata(Map<String, String> userMetadata1, 
Map<String, String> userMetadata2) {
       assertThat(userMetadata1).isEqualTo(userMetadata2);
    }

Reply via email to