You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ev...@apache.org on 2013/12/16 18:20:59 UTC
git commit: The update method in the Claim API.
Updated Branches:
refs/heads/master 01222c986 -> 8c80afa37
The update method in the Claim API.
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/commit/8c80afa3
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/tree/8c80afa3
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/diff/8c80afa3
Branch: refs/heads/master
Commit: 8c80afa37031b95c321200c7eb1edddd785bbdc6
Parents: 01222c9
Author: Everett Toews <ev...@rackspace.com>
Authored: Mon Dec 16 09:04:48 2013 -0600
Committer: Everett Toews <ev...@rackspace.com>
Committed: Mon Dec 16 11:20:03 2013 -0600
----------------------------------------------------------------------
.../openstack/marconi/v1/features/ClaimApi.java | 19 ++++++-------
.../marconi/v1/features/ClaimApiLiveTest.java | 13 ++++++++-
.../marconi/v1/features/ClaimApiMockTest.java | 28 ++++++++++++++++++++
3 files changed, 50 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/8c80afa3/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/ClaimApi.java
----------------------------------------------------------------------
diff --git a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/ClaimApi.java b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/ClaimApi.java
index a6d88cf..7584d08 100644
--- a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/ClaimApi.java
+++ b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/ClaimApi.java
@@ -22,6 +22,7 @@ import org.jclouds.openstack.marconi.v1.domain.Message;
import org.jclouds.openstack.marconi.v1.functions.ParseClaim;
import org.jclouds.openstack.marconi.v1.functions.ParseMessagesToList;
import org.jclouds.rest.annotations.Fallback;
+import org.jclouds.rest.annotations.PATCH;
import org.jclouds.rest.annotations.Payload;
import org.jclouds.rest.annotations.PayloadParam;
import org.jclouds.rest.annotations.RequestFilters;
@@ -35,6 +36,7 @@ import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import java.util.List;
@@ -116,15 +118,14 @@ public interface ClaimApi {
* must be between 60 and 43200 seconds (12 hours). You must include a value for this attribute in
* your request.
*/
- // TODO: revisit this when we figure out what's wrong with PATCH
- // @Named("claim:update")
- // @PATCH
- // @Path("/claims/{claim_id}")
- // @Fallback(FalseOnNotFoundOr404.class)
- // @Payload("%7B\"ttl\":{ttl}%7D")
- // @Produces(MediaType.APPLICATION_JSON)
- // boolean update(@PathParam("claim_id") String claimId,
- // @PayloadParam("ttl") int ttl);
+ @Named("claim:update")
+ @PATCH
+ @Path("/claims/{claim_id}")
+ @Fallback(FalseOnNotFoundOr404.class)
+ @Payload("%7B\"ttl\":{ttl}%7D")
+ @Produces(MediaType.APPLICATION_JSON)
+ boolean update(@PathParam("claim_id") String claimId,
+ @PayloadParam("ttl") int ttl);
/**
* This operation immediately releases a claim, making any remaining, undeleted messages that are associated with
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/8c80afa3/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/ClaimApiLiveTest.java
----------------------------------------------------------------------
diff --git a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/ClaimApiLiveTest.java b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/ClaimApiLiveTest.java
index eed993f..f765bc4 100644
--- a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/ClaimApiLiveTest.java
+++ b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/ClaimApiLiveTest.java
@@ -109,6 +109,17 @@ public class ClaimApiLiveTest extends BaseMarconiApiLiveTest {
}
@Test(dependsOnMethods = { "getClaim" })
+ public void updateClaim() throws Exception {
+ for (String zoneId : zones) {
+ ClaimApi claimApi = api.getClaimApiForZoneAndClientAndQueue(zoneId, CLIENT_ID, "jclouds-test");
+
+ boolean success = claimApi.update(claimIds.get(zoneId).get(0), 400);
+
+ assertTrue(success);
+ }
+ }
+
+ @Test(dependsOnMethods = { "updateClaim" })
public void releaseClaim() throws Exception {
for (String zoneId : zones) {
ClaimApi claimApi = api.getClaimApiForZoneAndClientAndQueue(zoneId, CLIENT_ID, "jclouds-test");
@@ -119,7 +130,7 @@ public class ClaimApiLiveTest extends BaseMarconiApiLiveTest {
}
}
- @Test(dependsOnMethods = { "getClaim" })
+ @Test(dependsOnMethods = { "releaseClaim" })
public void delete() throws Exception {
for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId, CLIENT_ID);
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/8c80afa3/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/ClaimApiMockTest.java
----------------------------------------------------------------------
diff --git a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/ClaimApiMockTest.java b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/ClaimApiMockTest.java
index 7917d83..10d26d4 100644
--- a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/ClaimApiMockTest.java
+++ b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/ClaimApiMockTest.java
@@ -100,6 +100,34 @@ public class ClaimApiMockTest extends BaseOpenStackMockTest<MarconiApi> {
}
}
+ /**
+ * Disabled due to PATCH with an output (body content) is not supported over HTTP.
+ *
+ * See https://issues.apache.org/jira/browse/JCLOUDS-405
+ */
+ @Test(enabled = false)
+ public void updateClaim() throws Exception {
+ MockWebServer server = mockOpenStackServer();
+ server.enqueue(new MockResponse().setBody(accessRackspace));
+ server.enqueue(new MockResponse().setResponseCode(204));
+
+ try {
+ MarconiApi api = api(server.getUrl("/").toString(), "openstack-marconi");
+ ClaimApi claimApi = api.getClaimApiForZoneAndClientAndQueue("DFW", CLIENT_ID, "jclouds-test");
+
+ boolean success = claimApi.update("52a8d23eb04a584f1bbd4f47", 400);
+
+ assertTrue(success);
+
+ assertEquals(server.getRequestCount(), 2);
+ assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1");
+ assertEquals(server.takeRequest().getRequestLine(), "PATCH /v1/123123/queues/jclouds-test/claims/52a8d23eb04a584f1bbd4f47 HTTP/1.1");
+ }
+ finally {
+ server.shutdown();
+ }
+ }
+
public void releaseClaim() throws Exception {
MockWebServer server = mockOpenStackServer();
server.enqueue(new MockResponse().setBody(accessRackspace));