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/11/25 21:16:10 UTC
git commit: The get and delete methods for the Marconi Message API.
Updated Branches:
refs/heads/master 3e54454a2 -> ed814ce29
The get and delete methods for the Marconi Message 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/ed814ce2
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/tree/ed814ce2
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/diff/ed814ce2
Branch: refs/heads/master
Commit: ed814ce29f9ab402e9dde12a31f7d2990f8dc45c
Parents: 3e54454
Author: Everett Toews <ev...@rackspace.com>
Authored: Mon Nov 25 09:46:35 2013 -0600
Committer: Everett Toews <ev...@rackspace.com>
Committed: Mon Nov 25 14:15:51 2013 -0600
----------------------------------------------------------------------
.../marconi/v1/binders/BindIdsToQueryParam.java | 2 +-
.../openstack/marconi/v1/domain/Queue.java | 2 +-
.../marconi/v1/features/MessageApi.java | 45 +++++++++++++++--
.../openstack/marconi/v1/features/QueueApi.java | 2 +-
.../marconi/v1/functions/ParseMessage.java | 51 ++++++++++++++++++++
.../v1/functions/ParseMessagesToList.java | 2 +-
.../marconi/v1/features/MessageApiLiveTest.java | 42 +++++++++++++---
.../marconi/v1/features/MessageApiMockTest.java | 50 +++++++++++++++++++
.../marconi/v1/features/QueueApiLiveTest.java | 28 +++++------
.../v1/internal/BaseMarconiApiLiveTest.java | 19 ++++++++
10 files changed, 212 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/ed814ce2/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/binders/BindIdsToQueryParam.java
----------------------------------------------------------------------
diff --git a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/binders/BindIdsToQueryParam.java b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/binders/BindIdsToQueryParam.java
index 48c2fae..493420d 100644
--- a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/binders/BindIdsToQueryParam.java
+++ b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/binders/BindIdsToQueryParam.java
@@ -36,7 +36,7 @@ public class BindIdsToQueryParam implements Binder {
@Override
public <R extends HttpRequest> R bindToRequest(R request, Object input) {
checkArgument(input instanceof Iterable<?>, "This binder is only valid for Iterable");
- Iterable<String> ids = (Iterable<String>) checkNotNull(input, "Iterable of Strings");
+ Iterable<String> ids = (Iterable<String>) input;
checkArgument(Iterables.size(ids) > 0, "You must specify at least one id");
return (R) request.toBuilder().replaceQueryParam("ids", Joiner.on(',').join(ids)).build();
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/ed814ce2/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/domain/Queue.java
----------------------------------------------------------------------
diff --git a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/domain/Queue.java b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/domain/Queue.java
index 15ac4f0..f8fbebb 100644
--- a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/domain/Queue.java
+++ b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/domain/Queue.java
@@ -37,7 +37,7 @@ public class Queue {
private final Map<String, String> metadata;
protected Queue(String name, @Nullable Map<String, String> metadata) {
- this.name = checkNotNull(name, "id required");
+ this.name = checkNotNull(name, "name required");
this.metadata = metadata;
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/ed814ce2/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/MessageApi.java
----------------------------------------------------------------------
diff --git a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/MessageApi.java b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/MessageApi.java
index 9b9fcb8..5dc0aa9 100644
--- a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/MessageApi.java
+++ b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/MessageApi.java
@@ -16,16 +16,16 @@
*/
package org.jclouds.openstack.marconi.v1.features;
-import org.jclouds.Fallbacks;
import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
import org.jclouds.openstack.marconi.v1.binders.BindIdsToQueryParam;
import org.jclouds.openstack.marconi.v1.domain.CreateMessage;
import org.jclouds.openstack.marconi.v1.domain.Message;
import org.jclouds.openstack.marconi.v1.domain.MessageStream;
import org.jclouds.openstack.marconi.v1.domain.MessagesCreated;
-import org.jclouds.openstack.marconi.v1.functions.ParseMessagesToStream;
+import org.jclouds.openstack.marconi.v1.functions.ParseMessage;
import org.jclouds.openstack.marconi.v1.functions.ParseMessagesCreated;
import org.jclouds.openstack.marconi.v1.functions.ParseMessagesToList;
+import org.jclouds.openstack.marconi.v1.functions.ParseMessagesToStream;
import org.jclouds.openstack.marconi.v1.options.StreamMessagesOptions;
import org.jclouds.rest.annotations.BinderParam;
import org.jclouds.rest.annotations.Fallback;
@@ -36,16 +36,19 @@ import org.jclouds.rest.binders.BindToJsonPayload;
import javax.inject.Named;
import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
-import javax.ws.rs.QueryParam;
+import javax.ws.rs.PathParam;
import javax.ws.rs.core.MediaType;
import java.util.List;
import java.util.UUID;
import static org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
+import static org.jclouds.Fallbacks.FalseOnNotFoundOr404;
+import static org.jclouds.Fallbacks.NullOnNotFoundOr404;
import static org.jclouds.openstack.keystone.v2_0.KeystoneFallbacks.EmptyPaginatedCollectionOnNotFoundOr404;
/**
@@ -71,7 +74,7 @@ public interface MessageApi {
@POST
@Path("/messages")
@ResponseParser(ParseMessagesCreated.class)
- @Fallback(Fallbacks.FalseOnNotFoundOr404.class)
+ @Fallback(NullOnNotFoundOr404.class)
MessagesCreated create(@HeaderParam("Client-ID") UUID clientId,
@BinderParam(BindToJsonPayload.class) List<CreateMessage> messages);
@@ -92,7 +95,7 @@ public interface MessageApi {
StreamMessagesOptions... options);
/**
- * List specific messages. Unlike the stream method, a client's own messages are always returned in this operation.
+ * Lists specific messages. Unlike the stream method, a client's own messages are always returned in this operation.
*
* @param clientId A UUID for each client instance.
* @param ids Specifies the IDs of the messages to get.
@@ -107,4 +110,36 @@ public interface MessageApi {
@BinderParam(BindIdsToQueryParam.class) Iterable<String> ids);
// TODO: list by claim id when claim API done
+
+ /**
+ * Gets a specific message. Unlike the stream method, a client's own messages are always returned in this operation.
+ *
+ * @param clientId A UUID for each client instance.
+ * @param id Specific ID of the message to get.
+ */
+ @Named("message:get")
+ @GET
+ @ResponseParser(ParseMessage.class)
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Path("/messages/{message_id}")
+ @Fallback(NullOnNotFoundOr404.class)
+ Message get(@HeaderParam("Client-ID") UUID clientId,
+ @PathParam("message_id") String id);
+
+ /**
+ * Deletes specific messages. If any of the message IDs are malformed or non-existent, they are ignored. The
+ * remaining valid messages IDs are deleted.
+ *
+ * @param clientId A UUID for each client instance.
+ * @param ids Specifies the IDs of the messages to delete.
+ */
+ @Named("message:delete")
+ @DELETE
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Path("/messages")
+ @Fallback(FalseOnNotFoundOr404.class)
+ boolean delete(@HeaderParam("Client-ID") UUID clientId,
+ @BinderParam(BindIdsToQueryParam.class) Iterable<String> ids);
+
+ // TODO: delete by claim id when claim API done
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/ed814ce2/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/QueueApi.java
----------------------------------------------------------------------
diff --git a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/QueueApi.java b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/QueueApi.java
index c12bbf3..7df6093 100644
--- a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/QueueApi.java
+++ b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/QueueApi.java
@@ -94,7 +94,7 @@ public interface QueueApi {
boolean exists(@PathParam("name") String name);
/**
- * List the queues.
+ * Lists the queues.
*
* @param detailed Determines whether queue metadata is included in the list.
*/
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/ed814ce2/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/functions/ParseMessage.java
----------------------------------------------------------------------
diff --git a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/functions/ParseMessage.java b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/functions/ParseMessage.java
new file mode 100644
index 0000000..436f650
--- /dev/null
+++ b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/functions/ParseMessage.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.openstack.marconi.v1.functions;
+
+import com.google.common.base.Function;
+import com.google.common.collect.ImmutableList;
+import org.jclouds.http.HttpResponse;
+import org.jclouds.http.functions.ParseJson;
+import org.jclouds.openstack.marconi.v1.domain.Message;
+
+import javax.inject.Inject;
+import java.util.List;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.collect.Iterables.transform;
+import static org.jclouds.openstack.marconi.v1.functions.ParseMessagesToStream.MessageWithHref;
+import static org.jclouds.openstack.marconi.v1.functions.ParseMessagesToStream.TO_MESSAGE;
+
+/**
+ * @author Everett Toews
+ */
+public class ParseMessage implements Function<HttpResponse, Message> {
+
+ private final ParseJson<MessageWithHref> json;
+
+ @Inject
+ ParseMessage(ParseJson<MessageWithHref> json) {
+ this.json = checkNotNull(json, "json");
+ }
+
+ @Override
+ public Message apply(HttpResponse response) {
+ MessageWithHref messagesWithHref = json.apply(response);
+
+ return TO_MESSAGE.apply(messagesWithHref);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/ed814ce2/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/functions/ParseMessagesToList.java
----------------------------------------------------------------------
diff --git a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/functions/ParseMessagesToList.java b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/functions/ParseMessagesToList.java
index d7d0b77..559d9c3 100644
--- a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/functions/ParseMessagesToList.java
+++ b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/functions/ParseMessagesToList.java
@@ -52,6 +52,6 @@ public class ParseMessagesToList implements Function<HttpResponse, List<Message>
}
List<MessageWithHref> messagesWithHref = json.apply(response);
- return Lists.newArrayList(transform(messagesWithHref, TO_MESSAGE));
+ return ImmutableList.copyOf(transform(messagesWithHref, TO_MESSAGE));
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/ed814ce2/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/MessageApiLiveTest.java
----------------------------------------------------------------------
diff --git a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/MessageApiLiveTest.java b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/MessageApiLiveTest.java
index 279ba20..47cd6e0 100644
--- a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/MessageApiLiveTest.java
+++ b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/MessageApiLiveTest.java
@@ -31,6 +31,7 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
+import static com.google.common.collect.Iterables.getLast;
import static org.jclouds.openstack.marconi.v1.options.StreamMessagesOptions.Builder.echo;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
@@ -43,7 +44,7 @@ public class MessageApiLiveTest extends BaseMarconiApiLiveTest {
private final Map<String, List<String>> messageIds = Maps.newHashMap();
public void createQueues() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
boolean success = queueApi.create("jclouds-test");
@@ -53,7 +54,7 @@ public class MessageApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "createQueues" })
public void streamZeroPagesOfMessages() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
MessageApi messageApi = api.getMessageApiForZoneAndQueue(zoneId, "jclouds-test");
UUID clientId = UUID.fromString("3381af92-2b9e-11e3-b191-71861300734c");
@@ -66,7 +67,7 @@ public class MessageApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "streamZeroPagesOfMessages" })
public void createMessage() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
MessageApi messageApi = api.getMessageApiForZoneAndQueue(zoneId, "jclouds-test");
UUID clientId = UUID.fromString("3381af92-2b9e-11e3-b191-71861300734c");
@@ -83,7 +84,7 @@ public class MessageApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "createMessage" })
public void streamOnePageOfMessages() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
MessageApi messageApi = api.getMessageApiForZoneAndQueue(zoneId, "jclouds-test");
UUID clientId = UUID.fromString("3381af92-2b9e-11e3-b191-71861300734c");
@@ -101,7 +102,7 @@ public class MessageApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "streamOnePageOfMessages" })
public void createMessages() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
MessageApi messageApi = api.getMessageApiForZoneAndQueue(zoneId, "jclouds-test");
UUID clientId = UUID.fromString("3381af92-2b9e-11e3-b191-71861300734c");
@@ -122,7 +123,7 @@ public class MessageApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "createMessages" })
public void streamManyPagesOfMessages() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
MessageApi messageApi = api.getMessageApiForZoneAndQueue(zoneId, "jclouds-test");
UUID clientId = UUID.fromString("3381af92-2b9e-11e3-b191-71861300734c");
messageIds.put(zoneId, new ArrayList<String>());
@@ -145,7 +146,7 @@ public class MessageApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "streamManyPagesOfMessages" })
public void listMessagesByIds() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
MessageApi messageApi = api.getMessageApiForZoneAndQueue(zoneId, "jclouds-test");
UUID clientId = UUID.fromString("3381af92-2b9e-11e3-b191-71861300734c");
@@ -161,8 +162,33 @@ public class MessageApiLiveTest extends BaseMarconiApiLiveTest {
}
@Test(dependsOnMethods = { "listMessagesByIds" })
+ public void getMessage() throws Exception {
+ for (String zoneId : zones) {
+ MessageApi messageApi = api.getMessageApiForZoneAndQueue(zoneId, "jclouds-test");
+ UUID clientId = UUID.fromString("3381af92-2b9e-11e3-b191-71861300734c");
+
+ Message message = messageApi.get(clientId, getLast(messageIds.get(zoneId)));
+
+ assertNotNull(message.getId());
+ assertNotNull(message.getBody());
+ }
+ }
+
+ @Test(dependsOnMethods = { "getMessage" })
+ public void deleteMessages() throws Exception {
+ for (String zoneId : zones) {
+ MessageApi messageApi = api.getMessageApiForZoneAndQueue(zoneId, "jclouds-test");
+ UUID clientId = UUID.fromString("3381af92-2b9e-11e3-b191-71861300734c");
+
+ boolean success = messageApi.delete(clientId, messageIds.get(zoneId));
+
+ assertTrue(success);
+ }
+ }
+
+ @Test(dependsOnMethods = { "deleteMessages" })
public void delete() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
boolean success = queueApi.delete("jclouds-test");
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/ed814ce2/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/MessageApiMockTest.java
----------------------------------------------------------------------
diff --git a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/MessageApiMockTest.java b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/MessageApiMockTest.java
index 8adb244..dbf9799 100644
--- a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/MessageApiMockTest.java
+++ b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/MessageApiMockTest.java
@@ -227,4 +227,54 @@ public class MessageApiMockTest extends BaseOpenStackMockTest<MarconiApi> {
server.shutdown();
}
}
+
+ public void getMessage() throws Exception {
+ MockWebServer server = mockOpenStackServer();
+ server.enqueue(new MockResponse().setBody(accessRackspace));
+ server.enqueue(new MockResponse().setResponseCode(200).setBody("{\"body\": \"{\\\"event\\\":{\\\"name\\\":\\\"Edmonton Java User Group\\\",\\\"attendees\\\":[\\\"bob\\\",\\\"jim\\\",\\\"sally\\\"]}}\", \"age\": 266, \"href\": \"/v1/queues/jclouds-test/messages/5292b30cef913e6d026f4dec\", \"ttl\": 86400}"));
+
+ try {
+ MarconiApi api = api(server.getUrl("/").toString(), "openstack-marconi");
+ MessageApi messageApi = api.getMessageApiForZoneAndQueue("DFW", "jclouds-test");
+ UUID clientId = UUID.fromString("3381af92-2b9e-11e3-b191-71861300734c");
+
+ Message message = messageApi.get(clientId, "5292b30cef913e6d026f4dec");
+
+ assertEquals(message.getId(), "5292b30cef913e6d026f4dec");
+ assertEquals(message.getBody(), "{\"event\":{\"name\":\"Edmonton Java User Group\",\"attendees\":[\"bob\",\"jim\",\"sally\"]}}");
+ assertEquals(message.getAge(), 266);
+ assertEquals(message.getTTL(), 86400);
+
+ assertEquals(server.getRequestCount(), 2);
+ assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1");
+ assertEquals(server.takeRequest().getRequestLine(), "GET /v1/123123/queues/jclouds-test/messages/5292b30cef913e6d026f4dec HTTP/1.1");
+ }
+ finally {
+ server.shutdown();
+ }
+ }
+
+ public void deleteMessages() 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");
+ MessageApi messageApi = api.getMessageApiForZoneAndQueue("DFW", "jclouds-test");
+ UUID clientId = UUID.fromString("3381af92-2b9e-11e3-b191-71861300734c");
+ List<String> ids = ImmutableList.of("52936b8a3ac24e6ef4c067dd", "5292b30cef913e6d026f4dec");
+
+ boolean success = messageApi.delete(clientId, ids);
+
+ assertTrue(success);
+
+ assertEquals(server.getRequestCount(), 2);
+ assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1");
+ assertEquals(server.takeRequest().getRequestLine(), "DELETE /v1/123123/queues/jclouds-test/messages?ids=52936b8a3ac24e6ef4c067dd,5292b30cef913e6d026f4dec HTTP/1.1");
+ }
+ finally {
+ server.shutdown();
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/ed814ce2/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/QueueApiLiveTest.java
----------------------------------------------------------------------
diff --git a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/QueueApiLiveTest.java b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/QueueApiLiveTest.java
index ae00c64..51f7813 100644
--- a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/QueueApiLiveTest.java
+++ b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/features/QueueApiLiveTest.java
@@ -39,7 +39,7 @@ import static org.testng.Assert.assertTrue;
public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
public void listZeroPagesOfQueues() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
List<Queue> queues = queueApi.list(false).concat().toList();
@@ -49,7 +49,7 @@ public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "listZeroPagesOfQueues" })
public void create() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
for (int i=0; i < 6; i++) {
@@ -62,7 +62,7 @@ public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "create" })
public void listOnePageOfQueues() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
List<Queue> queues = queueApi.list(false).concat().toList();
@@ -77,7 +77,7 @@ public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "listOnePageOfQueues" })
public void createMore() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
for (int i=6; i < 12; i++) {
@@ -90,7 +90,7 @@ public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "createMore" })
public void listManyPagesOfQueues() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
List<Queue> queues = queueApi.list(false).concat().toList();
@@ -105,7 +105,7 @@ public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "listManyPagesOfQueues" })
public void listManyPagesOfQueuesManually() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
Queues queues = queueApi.list(limit(6));
@@ -125,7 +125,7 @@ public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "listManyPagesOfQueuesManually" })
public void exists() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
boolean success = queueApi.exists("jclouds-test-1");
@@ -135,7 +135,7 @@ public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "exists" })
public void setMetadata() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
Map<String, String> metadata = ImmutableMap.of("key1", "value1");
boolean success = queueApi.setMetadata("jclouds-test-1", metadata);
@@ -146,7 +146,7 @@ public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "setMetadata" })
public void listManyPagesOfQueuesWithDetails() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
List<Queue> queues = queueApi.list(true).concat().toList();
@@ -168,7 +168,7 @@ public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "listManyPagesOfQueuesWithDetails" })
public void getMetadata() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
Map<String, String> metadata = queueApi.getMetadata("jclouds-test-1");
@@ -178,7 +178,7 @@ public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "getMetadata" })
public void getStatsWithoutTotal() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
QueueStats stats = queueApi.getStats("jclouds-test-1");
@@ -192,7 +192,7 @@ public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "getStatsWithoutTotal" })
public void getStatsWithTotal() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
MessageApi messageApi = api.getMessageApiForZoneAndQueue(zoneId, "jclouds-test-1");
UUID clientId = UUID.fromString("3381af92-2b9e-11e3-b191-71861300734c");
@@ -217,7 +217,7 @@ public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "getStatsWithTotal" })
public void delete() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
for (int i=0; i < 12; i++) {
@@ -230,7 +230,7 @@ public class QueueApiLiveTest extends BaseMarconiApiLiveTest {
@Test(dependsOnMethods = { "delete" })
public void doesNotExist() throws Exception {
- for (String zoneId : api.getConfiguredZones()) {
+ for (String zoneId : zones) {
QueueApi queueApi = api.getQueueApiForZone(zoneId);
boolean success = queueApi.exists("jclouds-test-1");
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/ed814ce2/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/internal/BaseMarconiApiLiveTest.java
----------------------------------------------------------------------
diff --git a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/internal/BaseMarconiApiLiveTest.java b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/internal/BaseMarconiApiLiveTest.java
index e34ab23..c0ec09e 100644
--- a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/internal/BaseMarconiApiLiveTest.java
+++ b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/internal/BaseMarconiApiLiveTest.java
@@ -16,18 +16,37 @@
*/
package org.jclouds.openstack.marconi.v1.internal;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
import org.jclouds.apis.BaseApiLiveTest;
import org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties;
import org.jclouds.openstack.marconi.v1.MarconiApi;
+import org.testng.annotations.BeforeClass;
+import java.util.List;
import java.util.Properties;
+import java.util.Set;
public class BaseMarconiApiLiveTest extends BaseApiLiveTest<MarconiApi> {
+ protected Set<String> zones = Sets.newHashSet();
+
public BaseMarconiApiLiveTest() {
provider = "openstack-marconi";
}
+ @BeforeClass
+ public void setupZones() {
+ String key = "test." + provider + ".zone";
+
+ if (System.getProperties().containsKey(key)) {
+ zones.add(System.getProperty(key));
+ }
+ else {
+ zones = api.getConfiguredZones();
+ }
+ }
+
@Override
protected Properties setupProperties() {
Properties props = super.setupProperties();