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; }
