Repository: jclouds
Updated Branches:
  refs/heads/master 53c3a4918 -> 4f32e863a


JCLOUDS-883: Replace metadata during Swift copy

Previously Swift copy would append metadata instead of replacing it.


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

Branch: refs/heads/master
Commit: 4f32e863ad2552d6fb941a536b91e1e18a35c462
Parents: 53c3a49
Author: Andrew Gaul <[email protected]>
Authored: Thu Aug 6 11:23:21 2015 -0700
Committer: Andrew Gaul <[email protected]>
Committed: Thu Aug 6 11:26:45 2015 -0700

----------------------------------------------------------------------
 .../java/org/jclouds/openstack/swift/v1/features/ObjectApi.java | 3 ++-
 .../org/jclouds/openstack/swift/v1/reference/SwiftHeaders.java  | 1 +
 .../v1/blobstore/integration/SwiftBlobIntegrationLiveTest.java  | 5 -----
 3 files changed, 3 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/4f32e863/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java
----------------------------------------------------------------------
diff --git 
a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java
 
b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java
index 0257b22..3d41c4a 100644
--- 
a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java
+++ 
b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java
@@ -19,6 +19,7 @@ package org.jclouds.openstack.swift.v1.features;
 import static com.google.common.net.HttpHeaders.EXPECT;
 import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
 import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_COPY_FROM;
+import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_COPY_FRESH_METADATA;
 
 import java.util.Map;
 
@@ -309,7 +310,7 @@ public interface ObjectApi {
    @Named("object:copy")
    @PUT
    @Path("/{destinationObject}")
-   @Headers(keys = OBJECT_COPY_FROM, values = 
"/{sourceContainer}/{sourceObject}")
+   @Headers(keys = {OBJECT_COPY_FROM, OBJECT_COPY_FRESH_METADATA}, values = 
{"/{sourceContainer}/{sourceObject}", "True"})
    @Fallback(FalseOnKeyNotFound.class)
    boolean copy(@PathParam("destinationObject") String destinationObject,
          @PathParam("sourceContainer") String sourceContainer,

http://git-wip-us.apache.org/repos/asf/jclouds/blob/4f32e863/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/reference/SwiftHeaders.java
----------------------------------------------------------------------
diff --git 
a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/reference/SwiftHeaders.java
 
b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/reference/SwiftHeaders.java
index 23c61c0..a2ee08f 100644
--- 
a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/reference/SwiftHeaders.java
+++ 
b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/reference/SwiftHeaders.java
@@ -71,6 +71,7 @@ public final class SwiftHeaders {
    public static final String CONTAINER_WEB_MODE = "X-Web-Mode";
 
    public static final String OBJECT_COPY_FROM = "X-Copy-From";
+   public static final String OBJECT_COPY_FRESH_METADATA = "X-Fresh-Metadata";
    public static final String OBJECT_DELETE_AFTER = "X-Delete-After";
    public static final String OBJECT_DELETE_AT = "X-Delete-At";
    public static final String OBJECT_MANIFEST = "X-Object-Manifest";

http://git-wip-us.apache.org/repos/asf/jclouds/blob/4f32e863/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/blobstore/integration/SwiftBlobIntegrationLiveTest.java
----------------------------------------------------------------------
diff --git 
a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/blobstore/integration/SwiftBlobIntegrationLiveTest.java
 
b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/blobstore/integration/SwiftBlobIntegrationLiveTest.java
index 510c0ef..e25306f 100644
--- 
a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/blobstore/integration/SwiftBlobIntegrationLiveTest.java
+++ 
b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/blobstore/integration/SwiftBlobIntegrationLiveTest.java
@@ -80,11 +80,6 @@ public class SwiftBlobIntegrationLiveTest extends 
BaseBlobIntegrationTest {
    }
 
    @Override
-   public void testCopyBlobReplaceMetadata() throws Exception {
-      throw new SkipException("Swift only supports appending to user metadata, 
not replacing it");
-   }
-
-   @Override
    protected long getMinimumMultipartBlobSize() {
       return 1;
    }

Reply via email to