mirror of https://github.com/apache/jclouds.git
Issue 695: Added getTasksByVirtualMachine method call
This commit is contained in:
parent
f823a4d9de
commit
c4f1fa040f
|
@ -62,4 +62,13 @@ public interface TaskAsyncClient {
|
|||
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
||||
ListenableFuture<Task> getTask(@EndpointParam URI taskId);
|
||||
|
||||
/**
|
||||
* @see TaskClient#getTasksByVirtualMachine
|
||||
*/
|
||||
@GET
|
||||
@Consumes("application/vnd.tmrk.cloud.task; type=collection")
|
||||
@JAXBResponseParser
|
||||
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
||||
ListenableFuture<Tasks> getTasksByVirtualMachine(@EndpointParam URI uri);
|
||||
|
||||
}
|
||||
|
|
|
@ -52,6 +52,14 @@ public interface TaskClient {
|
|||
*
|
||||
* @return the task or null if not found
|
||||
*/
|
||||
Task getTask(URI taskId);
|
||||
Task getTask(URI taskUri);
|
||||
|
||||
/**
|
||||
* The Get Tasks by Virtual Machine call returns information regarding tasks
|
||||
* for a specified virtual machine in an environment.
|
||||
* @param uri The uri corresponding to the tasks. e.g. /cloudapi/ecloud/tasks/virtualmachines/{id}
|
||||
* @return Tasks
|
||||
*/
|
||||
Tasks getTasksByVirtualMachine(URI uri);
|
||||
|
||||
}
|
||||
|
|
|
@ -52,12 +52,11 @@ public class TaskAsyncClientTest extends BaseTerremarkEnterpriseCloudAsyncClient
|
|||
assertExceptionParserClassEquals(method, ReturnEmptySetOnNotFoundOr404.class);
|
||||
|
||||
checkFilters(httpRequest);
|
||||
|
||||
}
|
||||
|
||||
public void testGetTask() throws SecurityException, NoSuchMethodException, IOException {
|
||||
Method method = TaskAsyncClient.class.getMethod("getTask", URI.class);
|
||||
HttpRequest httpRequest = processor.createRequest(method, URI.create("https://services-beta.enterprisecloud.terremark.com/cloudapi/ecloud/tasks/1"));
|
||||
HttpRequest httpRequest = processor.createRequest(method, URI.create("/cloudapi/ecloud/tasks/1"));
|
||||
|
||||
assertRequestLineEquals(httpRequest, "GET https://services-beta.enterprisecloud.terremark.com/cloudapi/ecloud/tasks/1 HTTP/1.1");
|
||||
assertNonPayloadHeadersEqual(httpRequest, "Accept: application/vnd.tmrk.cloud.task\nx-tmrk-version: 2011-07-01\n");
|
||||
|
@ -67,7 +66,20 @@ public class TaskAsyncClientTest extends BaseTerremarkEnterpriseCloudAsyncClient
|
|||
assertExceptionParserClassEquals(method, ReturnNullOnNotFoundOr404.class);
|
||||
|
||||
checkFilters(httpRequest);
|
||||
}
|
||||
|
||||
public void testGetTasksByVirtualMachine() throws SecurityException, NoSuchMethodException, IOException {
|
||||
Method method = TaskAsyncClient.class.getMethod("getTasksByVirtualMachine", URI.class);
|
||||
HttpRequest httpRequest = processor.createRequest(method, URI.create("/cloudapi/ecloud/tasks/virtualmachines/5504"));
|
||||
|
||||
assertRequestLineEquals(httpRequest, "GET https://services-beta.enterprisecloud.terremark.com/cloudapi/ecloud/tasks/virtualmachines/5504 HTTP/1.1");
|
||||
assertNonPayloadHeadersEqual(httpRequest, "Accept: application/vnd.tmrk.cloud.task; type=collection\nx-tmrk-version: 2011-07-01\n");
|
||||
assertPayloadEquals(httpRequest, null, null, false);
|
||||
|
||||
assertResponseParserClassEquals(method, httpRequest, ParseXMLWithJAXB.class);
|
||||
assertExceptionParserClassEquals(method, ReturnNullOnNotFoundOr404.class);
|
||||
|
||||
checkFilters(httpRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -43,18 +43,26 @@ public class TaskClientLiveTest extends BaseTerremarkEnterpriseCloudClientLiveTe
|
|||
|
||||
private TaskClient client;
|
||||
|
||||
@Test
|
||||
public void testGetTasks() throws Exception {
|
||||
// TODO: don't hard-code id
|
||||
// TODO: docs say don't parse the href, yet no xml includes "identifier",
|
||||
// I suspect we may need to change to URI args as opposed to long
|
||||
Tasks response = client.getTasksInEnvironment(new URI("/cloudapi/ecloud/tasks/environments/77"));
|
||||
assert null != response;
|
||||
assertTasks(response);
|
||||
}
|
||||
|
||||
assertTrue(response.getTasks().size() >= 0);
|
||||
for (Task task : response.getTasks()) {
|
||||
public void testGetTasksByVirtualMachine() throws Exception {
|
||||
// TODO: don't hard-code id
|
||||
Tasks response = client.getTasksByVirtualMachine(URI.create("/cloudapi/ecloud/tasks/virtualmachines/5504"));
|
||||
assertTasks(response);
|
||||
}
|
||||
|
||||
private void assertTasks(final Tasks tasks) {
|
||||
assert null != tasks;
|
||||
|
||||
assertTrue(tasks.getTasks().size() >= 0);
|
||||
for (Task task : tasks.getTasks()) {
|
||||
assertEquals(client.getTask(task.getHref()), task);
|
||||
assert task.getStatus() != Task.Status.UNRECOGNIZED : response;
|
||||
assert task.getStatus() != Task.Status.UNRECOGNIZED : tasks;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue