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