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 2013/12/11 23:20:52 UTC

git commit: JCLOUDS-403. Add support for Swift object expiry

Updated Branches:
  refs/heads/master 7e99ddef5 -> 3321506c8


JCLOUDS-403. Add support for Swift object expiry


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

Branch: refs/heads/master
Commit: 3321506c849a29b79499a820bc9c895b1c657c66
Parents: 7e99dde
Author: Andrew Gaul <ga...@apache.org>
Authored: Mon Dec 9 22:20:43 2013 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Wed Dec 11 14:20:32 2013 -0800

----------------------------------------------------------------------
 .../blobstore/CloudFilesBlobSignerExpectTest.java        |  4 +++-
 .../swift/binders/BindSwiftObjectMetadataToRequest.java  | 11 +++++++++++
 .../binders/BindSwiftObjectMetadataToRequestTest.java    |  6 ++++++
 .../swift/blobstore/SwiftBlobSignerExpectTest.java       |  4 +++-
 .../blobstore/SwiftKeystoneBlobSignerExpectTest.java     |  4 +++-
 .../HPCloudObjectStorageBlobSignerExpectTest.java        |  4 +++-
 6 files changed, 29 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/3321506c/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java b/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java
index 9659ec3..dbf140f 100644
--- a/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java
+++ b/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java
@@ -80,7 +80,9 @@ public class CloudFilesBlobSignerExpectTest extends BaseBlobSignerExpectTest {
             .endpoint("https://storage101.lon3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953/container/name")
             .addHeader("ETag", "00020408")
             .addHeader("Expect", "100-continue")
-            .addHeader("X-Auth-Token", authToken).build();
+            .addHeader("X-Auth-Token", authToken)
+            .addHeader("X-Delete-At", "1")
+            .build();
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/jclouds/blob/3321506c/apis/swift/src/main/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequest.java
----------------------------------------------------------------------
diff --git a/apis/swift/src/main/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequest.java b/apis/swift/src/main/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequest.java
index 6f1e53a..e529c12 100644
--- a/apis/swift/src/main/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequest.java
+++ b/apis/swift/src/main/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequest.java
@@ -16,9 +16,11 @@
  */
 package org.jclouds.openstack.swift.binders;
 
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 
+import java.util.Date;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import javax.ws.rs.core.MediaType;
@@ -72,6 +74,15 @@ public class BindSwiftObjectMetadataToRequest implements Binder {
                .build();
       }
 
+      Date expires = object.getPayload().getContentMetadata().getExpires();
+      if (expires != null) {
+         // Swizzle Expires to X-Delete-At
+         request = (R) request.toBuilder()
+               .addHeader("X-Delete-At", String.valueOf(
+                     MILLISECONDS.toSeconds(expires.getTime())))
+               .build();
+      }
+
       request = mdBinder.bindToRequest(request, object2Blob.apply(object));
       return request;
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/3321506c/apis/swift/src/test/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequestTest.java
----------------------------------------------------------------------
diff --git a/apis/swift/src/test/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequestTest.java b/apis/swift/src/test/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequestTest.java
index c5accb2..fb54cee 100644
--- a/apis/swift/src/test/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequestTest.java
+++ b/apis/swift/src/test/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequestTest.java
@@ -16,10 +16,12 @@
  */
 package org.jclouds.openstack.swift.binders;
 
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static org.testng.Assert.assertEquals;
 
 import java.io.File;
 import java.net.URI;
+import java.util.Date;
 
 import org.jclouds.http.HttpRequest;
 import org.jclouds.io.Payload;
@@ -59,6 +61,8 @@ public class BindSwiftObjectMetadataToRequestTest extends CommonSwiftClientTest
       SwiftObject object = injector.getInstance(SwiftObject.Factory.class).create(null);
       Payload payload = Payloads.newStringPayload("");
       payload.getContentMetadata().setContentLength(5 * 1024 * 1024 * 1024l);
+      long expiresMillis = 1000;
+      payload.getContentMetadata().setExpires(new Date(expiresMillis));
       object.setPayload(payload);
       object.getInfo().setName("foo");
       object.getInfo().getMetadata().putAll(ImmutableMap.of("foo", "bar"));
@@ -67,6 +71,8 @@ public class BindSwiftObjectMetadataToRequestTest extends CommonSwiftClientTest
       BindSwiftObjectMetadataToRequest binder = injector.getInstance(BindSwiftObjectMetadataToRequest.class);
 
       assertEquals(binder.bindToRequest(request, object), HttpRequest.builder().method("PUT")
+               .addHeader("X-Delete-At", String.valueOf(
+                     MILLISECONDS.toSeconds(expiresMillis)))
                .endpoint("http://localhost").addHeader("X-Object-Meta-foo", "bar").build());
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/3321506c/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java b/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java
index b2be6eb..6508e1d 100644
--- a/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java
+++ b/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java
@@ -78,7 +78,9 @@ public class SwiftBlobSignerExpectTest extends BaseBlobSignerExpectTest {
             .endpoint("http://storage/container/name")
             .addHeader("ETag", "00020408")
             .addHeader("Expect", "100-continue")
-            .addHeader("X-Auth-Token", "testtoken").build();
+            .addHeader("X-Auth-Token", "testtoken")
+            .addHeader("X-Delete-At", "1")
+            .build();
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/jclouds/blob/3321506c/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java b/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java
index 01c21a7..476962a 100644
--- a/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java
+++ b/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java
@@ -73,7 +73,9 @@ public class SwiftKeystoneBlobSignerExpectTest extends BaseBlobSignerExpectTest
             .endpoint("https://objects.jclouds.org/v1.0/40806637803162/container/name")
             .addHeader("ETag", "00020408")
             .addHeader("Expect", "100-continue")
-            .addHeader("X-Auth-Token", "Auth_4f173437e4b013bee56d1007").build();
+            .addHeader("X-Auth-Token", "Auth_4f173437e4b013bee56d1007")
+            .addHeader("X-Delete-At", "1")
+            .build();
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/jclouds/blob/3321506c/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git a/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java b/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java
index 1da4b72..f95d10b 100644
--- a/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java
+++ b/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java
@@ -76,7 +76,9 @@ public class HPCloudObjectStorageBlobSignerExpectTest extends BaseBlobSignerExpe
             .endpoint("https://objects.jclouds.org/v1.0/40806637803162/container/name")
             .addHeader("ETag", "00020408")
             .addHeader("Expect", "100-continue")
-            .addHeader("X-Auth-Token", "Auth_4f173437e4b013bee56d1007").build();
+            .addHeader("X-Auth-Token", "Auth_4f173437e4b013bee56d1007")
+            .addHeader("X-Delete-At", "1")
+            .build();
    }
 
    @Override