You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2013/08/23 10:37:41 UTC
[2/5] JCLOUDS-198: Implemented the PagedIterable in Abiquo
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/java/org/jclouds/abiquo/features/CloudApiTest.java
----------------------------------------------------------------------
diff --git a/abiquo/src/test/java/org/jclouds/abiquo/features/CloudApiTest.java b/abiquo/src/test/java/org/jclouds/abiquo/features/CloudApiTest.java
index 249b62f..baa36d5 100644
--- a/abiquo/src/test/java/org/jclouds/abiquo/features/CloudApiTest.java
+++ b/abiquo/src/test/java/org/jclouds/abiquo/features/CloudApiTest.java
@@ -30,9 +30,6 @@ import org.jclouds.abiquo.domain.InfrastructureResources;
import org.jclouds.abiquo.domain.NetworkResources;
import org.jclouds.abiquo.domain.cloud.options.VirtualDatacenterOptions;
import org.jclouds.abiquo.domain.cloud.options.VirtualMachineOptions;
-import org.jclouds.abiquo.domain.cloud.options.VirtualMachineTemplateOptions;
-import org.jclouds.abiquo.domain.cloud.options.VolumeOptions;
-import org.jclouds.abiquo.domain.network.options.IpOptions;
import org.jclouds.abiquo.fallbacks.MovedVolume;
import org.jclouds.abiquo.functions.ReturnTaskReferenceOrNull;
import org.jclouds.http.functions.ParseXMLWithJAXB;
@@ -42,12 +39,10 @@ import org.jclouds.reflect.Invocation;
import org.jclouds.rest.internal.GeneratedHttpRequest;
import org.testng.annotations.Test;
-import com.abiquo.model.enumerator.HypervisorType;
import com.abiquo.model.rest.RESTLink;
import com.abiquo.model.transport.AcceptedRequestDto;
import com.abiquo.model.transport.LinksDto;
import com.abiquo.server.core.appslibrary.VirtualMachineTemplateDto;
-import com.abiquo.server.core.appslibrary.VirtualMachineTemplatesDto;
import com.abiquo.server.core.cloud.VirtualApplianceDto;
import com.abiquo.server.core.cloud.VirtualApplianceStateDto;
import com.abiquo.server.core.cloud.VirtualAppliancesDto;
@@ -57,13 +52,10 @@ import com.abiquo.server.core.cloud.VirtualMachineDto;
import com.abiquo.server.core.cloud.VirtualMachineStateDto;
import com.abiquo.server.core.cloud.VirtualMachineTaskDto;
import com.abiquo.server.core.cloud.VirtualMachineWithNodeExtendedDto;
-import com.abiquo.server.core.cloud.VirtualMachinesWithNodeExtendedDto;
import com.abiquo.server.core.enterprise.EnterpriseDto;
import com.abiquo.server.core.infrastructure.DatacenterDto;
import com.abiquo.server.core.infrastructure.network.PrivateIpDto;
-import com.abiquo.server.core.infrastructure.network.PrivateIpsDto;
import com.abiquo.server.core.infrastructure.network.PublicIpDto;
-import com.abiquo.server.core.infrastructure.network.PublicIpsDto;
import com.abiquo.server.core.infrastructure.network.VLANNetworkDto;
import com.abiquo.server.core.infrastructure.network.VLANNetworksDto;
import com.abiquo.server.core.infrastructure.network.VMNetworkConfigurationsDto;
@@ -190,44 +182,6 @@ public class CloudApiTest extends BaseAbiquoApiTest<CloudApi> {
/*********************** Ips ***********************/
- public void testListAvailablePublicIpsWithOptions() throws SecurityException, NoSuchMethodException, IOException {
- IpOptions options = IpOptions.builder().limit(5).build();
- Invokable<?, ?> method = method(CloudApi.class, "listAvailablePublicIps", VirtualDatacenterDto.class,
- IpOptions.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), options)));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/cloud/virtualdatacenters/1/publicips/topurchase?limit=5 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + PublicIpsDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testListPurchasedPublicIpsWithOptions() throws SecurityException, NoSuchMethodException, IOException {
- IpOptions options = IpOptions.builder().limit(5).build();
- Invokable<?, ?> method = method(CloudApi.class, "listPurchasedPublicIps", VirtualDatacenterDto.class,
- IpOptions.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), options)));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/cloud/virtualdatacenters/1/publicips/purchased?limit=5 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + PublicIpsDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
public void testPurchasePublicIp() throws SecurityException, NoSuchMethodException, IOException {
Invokable<?, ?> method = method(CloudApi.class, "purchasePublicIp", PublicIpDto.class);
GeneratedHttpRequest request = processor.apply(Invocation.create(method,
@@ -264,42 +218,6 @@ public class CloudApiTest extends BaseAbiquoApiTest<CloudApi> {
/*********************** Available templates ***********************/
- public void testListAvailableTemplates() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(CloudApi.class, "listAvailableTemplates", VirtualDatacenterDto.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(CloudResources.virtualDatacenterPut())));
-
- assertRequestLineEquals(request, "GET http://localhost/api/cloud/virtualdatacenters/1/action/templates HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + VirtualMachineTemplatesDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testListAvailableTemplatesWithOptions() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(CloudApi.class, "listAvailableTemplates", VirtualDatacenterDto.class,
- VirtualMachineTemplateOptions.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(
- method,
- ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), VirtualMachineTemplateOptions.builder()
- .hypervisorType(HypervisorType.XENSERVER).categoryName("Firewalls").idTemplate(1).build())));
-
- assertRequestLineEquals(request, "GET http://localhost/api/cloud/virtualdatacenters/1/action/templates"
- + "?hypervisorTypeName=XENSERVER&categoryName=Firewalls&idTemplate=1 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + VirtualMachineTemplatesDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
/*********************** Storage Tiers ***********************/
public void testListStorageTiers() throws SecurityException, NoSuchMethodException, IOException {
@@ -480,41 +398,6 @@ public class CloudApiTest extends BaseAbiquoApiTest<CloudApi> {
/*********************** Private Network IPs ***********************/
- public void testListPrivateNetworkIps() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(CloudApi.class, "listPrivateNetworkIps", VLANNetworkDto.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(NetworkResources.privateNetworkPut())));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/cloud/virtualdatacenters/1/privatenetworks/1/ips HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + PrivateIpsDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testListPrivateNetworkIpsWithOptions() throws SecurityException, NoSuchMethodException, IOException {
- IpOptions options = IpOptions.builder().startWith(10).build();
- Invokable<?, ?> method = method(CloudApi.class, "listPrivateNetworkIps", VLANNetworkDto.class, IpOptions.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(NetworkResources.privateNetworkPut(), options)));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/cloud/virtualdatacenters/1/privatenetworks/1/ips?startwith=10 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + PrivateIpsDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
public void testGetPrivateNetworkIp() throws SecurityException, NoSuchMethodException, IOException {
Invokable<?, ?> method = method(CloudApi.class, "getPrivateNetworkIp", VLANNetworkDto.class, Integer.class);
GeneratedHttpRequest request = processor.apply(Invocation.create(method,
@@ -695,43 +578,6 @@ public class CloudApiTest extends BaseAbiquoApiTest<CloudApi> {
/*********************** Virtual Machine ***********************/
- public void testListVirtualMachines() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(CloudApi.class, "listVirtualMachines", VirtualApplianceDto.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(CloudResources.virtualAppliancePut())));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + VirtualMachinesWithNodeExtendedDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testListVirtualMachinesWithOptions() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(CloudApi.class, "listVirtualMachines", VirtualApplianceDto.class,
- VirtualMachineOptions.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(
- method,
- ImmutableList.<Object> of(CloudResources.virtualAppliancePut(), VirtualMachineOptions.builder()
- .disablePagination().build())));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines?limit=0 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + VirtualMachinesWithNodeExtendedDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
public void testGetVirtualMachine() throws SecurityException, NoSuchMethodException, IOException {
Invokable<?, ?> method = method(CloudApi.class, "getVirtualMachine", VirtualApplianceDto.class, Integer.class);
GeneratedHttpRequest request = processor.apply(Invocation.create(method,
@@ -1166,61 +1012,6 @@ public class CloudApiTest extends BaseAbiquoApiTest<CloudApi> {
/*********************** Volumes ***********************/
- public void testListVolumes() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(CloudApi.class, "listVolumes", VirtualDatacenterDto.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(CloudResources.virtualDatacenterPut())));
-
- assertRequestLineEquals(request, "GET http://localhost/api/cloud/virtualdatacenters/1/volumes HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + VolumesManagementDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testListVolumesWithOptions() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(CloudApi.class, "listVolumes", VirtualDatacenterDto.class, VolumeOptions.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(
- method,
- ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), VolumeOptions.builder()
- .onlyAvailable(true).build())));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/cloud/virtualdatacenters/1/volumes?available=true HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + VolumesManagementDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testListVolumesWithFilterOptions() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(CloudApi.class, "listVolumes", VirtualDatacenterDto.class, VolumeOptions.class);
-
- GeneratedHttpRequest request = processor.apply(Invocation.create(
- method,
- ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), VolumeOptions.builder().has("vol")
- .orderBy("name").ascendant(true).build())));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/cloud/virtualdatacenters/1/volumes?has=vol&by=name&asc=true HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + VolumesManagementDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
public void testGetVolume() throws SecurityException, NoSuchMethodException, IOException {
Invokable<?, ?> method = method(CloudApi.class, "getVolume", VirtualDatacenterDto.class, Integer.class);
GeneratedHttpRequest request = processor.apply(Invocation.create(method,
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiExpectTest.java
----------------------------------------------------------------------
diff --git a/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiExpectTest.java b/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiExpectTest.java
index cd05564..4bc3ff2 100644
--- a/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiExpectTest.java
+++ b/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiExpectTest.java
@@ -17,78 +17,194 @@
package org.jclouds.abiquo.features;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
import java.net.URI;
+import java.util.List;
import org.jclouds.abiquo.AbiquoApi;
+import org.jclouds.abiquo.domain.PaginatedCollection;
+import org.jclouds.abiquo.domain.enterprise.options.EnterpriseOptions;
import org.jclouds.abiquo.domain.enterprise.options.UserOptions;
+import org.jclouds.collect.PagedIterable;
import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpRequest.Builder;
import org.jclouds.http.HttpResponse;
import org.testng.annotations.Test;
import com.abiquo.model.rest.RESTLink;
import com.abiquo.server.core.enterprise.EnterpriseDto;
+import com.abiquo.server.core.enterprise.EnterprisesDto;
+import com.abiquo.server.core.enterprise.UserDto;
import com.abiquo.server.core.enterprise.UsersDto;
+import com.abiquo.server.core.infrastructure.DatacenterDto;
/**
* Expect tests for the {@link EnterpriseApi} class.
*
* @author Carlos Garcia
+ * @author Ignasi Barrera
*/
@Test(groups = "unit", testName = "EnterpriseApiExpectTest")
public class EnterpriseApiExpectTest extends BaseAbiquoApiExpectTest<EnterpriseApi> {
- private EnterpriseApi buildMockEnterpriseApi(String payloadFile, Builder<?> requestBuilder) {
- return requestSendsResponse(requestBuilder.build(),
- HttpResponse.builder().statusCode(200).payload(
- payloadFromResourceWithContentType(payloadFile,
- normalize(UsersDto.MEDIA_TYPE))) //
- .build());
- }
-
- public Builder<?> getRequestBuilder() {
- return HttpRequest.builder() //
- .method("GET")
- .endpoint(URI.create("http://localhost/api/admin/enterprises/1/users"))
- .addHeader("Cookie", tokenAuth)
- .addHeader("Accept", normalize(UsersDto.MEDIA_TYPE));
- }
-
public void testListUsersWithoutPagination() {
- EnterpriseApi api = buildMockEnterpriseApi("/payloads/usr-list.xml",
- getRequestBuilder());
+ EnterpriseApi api = requestsSendResponses(
+ HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/admin/enterprises/1/users")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(UsersDto.MEDIA_TYPE)) //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/users-page.xml", normalize(UsersDto.MEDIA_TYPE))) //
+ .build(),
+ HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/admin/enterprises/1/users")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(UsersDto.MEDIA_TYPE)) //
+ .addQueryParam("numResults", "2") //
+ .addQueryParam("page", "1") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/users-lastpage.xml",
+ normalize(UsersDto.MEDIA_TYPE))) //
+ .build());
EnterpriseDto enterprise = new EnterpriseDto();
- enterprise.addLink(new RESTLink("users",
- "http://localhost/api/admin/enterprises/1/users"));
-
- UsersDto users = api.listUsers(enterprise);
- assertEquals(users.getCollection().size(), 3);
- assertEquals(users.getCollection().get(0).getNick(), "potter");
- assertEquals(users.getCollection().get(1).getNick(), "granger");
- assertEquals(users.getCollection().get(2).getNick(), "ron");
+ enterprise.addLink(new RESTLink("users", "http://localhost/api/admin/enterprises/1/users"));
+
+ PagedIterable<UserDto> result = api.listUsers(enterprise);
+ List<UserDto> all = result.concat().toList();
+
+ assertEquals(all.size(), 3);
+ assertEquals(all.get(0).getId().intValue(), 1);
+ assertEquals(all.get(1).getId().intValue(), 2);
+ assertEquals(all.get(2).getId().intValue(), 3);
}
public void testListUsersWithPagination() {
- Builder<?> builder = getRequestBuilder();
- builder.addQueryParam("numResults", "2");
- builder.addQueryParam("page", "2");
- EnterpriseApi api = buildMockEnterpriseApi("/payloads/usr-list-page-2.xml", builder);
+ EnterpriseApi api = requestSendsResponse(
+ HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/admin/enterprises/1/users")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(UsersDto.MEDIA_TYPE)) //
+ .addQueryParam("page", "1") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/users-lastpage.xml",
+ normalize(UsersDto.MEDIA_TYPE))) //
+ .build());
EnterpriseDto enterprise = new EnterpriseDto();
- enterprise.addLink(new RESTLink("users",
- "http://localhost/api/admin/enterprises/1/users"));
+ enterprise.addLink(new RESTLink("users", "http://localhost/api/admin/enterprises/1/users"));
+
+ UserOptions options = UserOptions.builder().page(1).build();
+ PaginatedCollection<UserDto, UsersDto> result = api.listUsers(enterprise, options);
+
+ assertEquals(result.size(), 1);
+ assertEquals(result.getTotalSize().intValue(), 3);
+ assertEquals(result.get(0).getId().intValue(), 3);
+ assertNotNull(result.searchLink("first"));
+ assertNotNull(result.searchLink("last"));
+ }
+
+ public void testListEnterprises() {
+ EnterpriseApi api = requestSendsResponse(
+ HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/admin/enterprises")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(EnterprisesDto.MEDIA_TYPE)) //
+ .addQueryParam("limit", "1") //
+ .addQueryParam("has", "text") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/enterprises-page.xml",
+ normalize(EnterprisesDto.MEDIA_TYPE))) //
+ .build());
+
+ EnterpriseOptions options = EnterpriseOptions.builder().limit(1).has("text").build();
+ PaginatedCollection<EnterpriseDto, EnterprisesDto> result = api.listEnterprises(options);
- UsersDto users = api.listUsers(enterprise,
- UserOptions.builder().limit(2).page(2).build());
- assertEquals(users.getCollection().size(), 1);
- assertEquals(users.getCollection().get(0).getNick(), "ron");
+ assertEquals(result.size(), 1);
+ assertEquals(result.getTotalSize().intValue(), 2);
+ assertEquals(result.get(0).getId().intValue(), 1);
+ assertNotNull(result.searchLink("first"));
+ assertNotNull(result.searchLink("last"));
+ }
+
+ public void testListEnterprisesByDatacenterWithOptions() {
+ EnterpriseApi api = requestSendsResponse(
+ HttpRequest.builder().method("GET")
+ .endpoint(URI.create("http://localhost/api/admin/datacenters/1/action/enterprises")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(EnterprisesDto.MEDIA_TYPE)) //
+ .addQueryParam("limit", "1") //
+ .addQueryParam("has", "text") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/enterprises-page.xml",
+ normalize(EnterprisesDto.MEDIA_TYPE))) //
+ .build());
+
+ DatacenterDto datacenter = new DatacenterDto();
+ datacenter.addLink(new RESTLink("enterprises", "http://localhost/api/admin/datacenters/1/action/enterprises"));
+
+ EnterpriseOptions options = EnterpriseOptions.builder().limit(1).has("text").build();
+ PaginatedCollection<EnterpriseDto, EnterprisesDto> result = api.listEnterprises(datacenter, options);
+
+ assertEquals(result.size(), 1);
+ assertEquals(result.getTotalSize().intValue(), 2);
+ assertEquals(result.get(0).getId().intValue(), 1);
+ assertNotNull(result.searchLink("first"));
+ assertNotNull(result.searchLink("last"));
+ }
+
+ public void testListEnterprisesReturns2xx() {
+ EnterpriseApi api = requestsSendResponses(
+ HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/admin/enterprises")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(EnterprisesDto.MEDIA_TYPE)) //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/enterprises-page.xml",
+ normalize(EnterprisesDto.MEDIA_TYPE))) //
+ .build(),
+ HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/admin/enterprises")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(EnterprisesDto.MEDIA_TYPE)) //
+ .addQueryParam("startwith", "1") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/enterprises-lastpage.xml",
+ normalize(EnterprisesDto.MEDIA_TYPE))) //
+ .build());
+
+ PagedIterable<EnterpriseDto> result = api.listEnterprises();
+ List<EnterpriseDto> all = result.concat().toList();
+
+ assertEquals(all.size(), 2);
+ assertEquals(all.get(0).getId().intValue(), 1);
+ assertEquals(all.get(1).getId().intValue(), 2);
}
@Override
protected EnterpriseApi clientFrom(AbiquoApi api) {
return api.getEnterpriseApi();
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiTest.java
----------------------------------------------------------------------
diff --git a/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiTest.java b/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiTest.java
index b6b9f19..dab4357 100644
--- a/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiTest.java
+++ b/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiTest.java
@@ -24,7 +24,6 @@ import java.io.IOException;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.abiquo.domain.EnterpriseResources;
import org.jclouds.abiquo.domain.InfrastructureResources;
-import org.jclouds.abiquo.domain.enterprise.options.EnterpriseOptions;
import org.jclouds.fallbacks.MapHttp4xxCodesToExceptions;
import org.jclouds.http.functions.ParseXMLWithJAXB;
import org.jclouds.http.functions.ReleasePayloadAndReturn;
@@ -43,9 +42,7 @@ import com.abiquo.server.core.enterprise.DatacenterLimitsDto;
import com.abiquo.server.core.enterprise.DatacentersLimitsDto;
import com.abiquo.server.core.enterprise.EnterpriseDto;
import com.abiquo.server.core.enterprise.EnterprisePropertiesDto;
-import com.abiquo.server.core.enterprise.EnterprisesDto;
import com.abiquo.server.core.enterprise.UserDto;
-import com.abiquo.server.core.enterprise.UsersDto;
import com.abiquo.server.core.infrastructure.DatacenterDto;
import com.abiquo.server.core.infrastructure.DatacentersDto;
import com.abiquo.server.core.infrastructure.MachinesDto;
@@ -63,58 +60,6 @@ import com.google.common.reflect.Invokable;
public class EnterpriseApiTest extends BaseAbiquoApiTest<EnterpriseApi> {
/*********************** Enterprise ********************** */
- public void testListEnterprises() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(EnterpriseApi.class, "listEnterprises");
- GeneratedHttpRequest request = processor.apply(Invocation.create(method, ImmutableList.of()));
-
- assertRequestLineEquals(request, "GET http://localhost/api/admin/enterprises HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + EnterprisesDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testListEnterprisesWithOptions() throws SecurityException, NoSuchMethodException, IOException {
- EnterpriseOptions options = EnterpriseOptions.builder().has("abi").orderBy("name").ascendant(true).build();
-
- Invokable<?, ?> method = method(EnterpriseApi.class, "listEnterprises", EnterpriseOptions.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method, ImmutableList.<Object> of(options)));
-
- assertRequestLineEquals(request, "GET http://localhost/api/admin/enterprises?has=abi&by=name&asc=true HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + EnterprisesDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testListEnterprisesByDatacenter() throws SecurityException, NoSuchMethodException, IOException {
- EnterpriseOptions options = EnterpriseOptions.builder().startWith(0).limit(25).network(true).build();
-
- Invokable<?, ?> method = method(EnterpriseApi.class, "listEnterprises", DatacenterDto.class,
- EnterpriseOptions.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(InfrastructureResources.datacenterPut(), options)));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/admin/datacenters/1/action/enterprises?network=true&startwith=0&limit=25 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + EnterprisesDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
public void testCreateEnterprise() throws SecurityException, NoSuchMethodException, IOException {
Invokable<?, ?> method = method(EnterpriseApi.class, "createEnterprise", EnterpriseDto.class);
GeneratedHttpRequest request = processor.apply(Invocation.create(method,
@@ -367,22 +312,6 @@ public class EnterpriseApiTest extends BaseAbiquoApiTest<EnterpriseApi> {
checkFilters(request);
}
- public void testListUsers() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(EnterpriseApi.class, "listUsers", EnterpriseDto.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(EnterpriseResources.enterprisePut())));
-
- assertRequestLineEquals(request, "GET http://localhost/api/admin/enterprises/1/users HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + UsersDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
public void testCreateUser() throws SecurityException, NoSuchMethodException, IOException {
EnterpriseDto enterprise = EnterpriseResources.enterprisePut();
UserDto user = EnterpriseResources.userPost();
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/java/org/jclouds/abiquo/features/EventApiExpectTest.java
----------------------------------------------------------------------
diff --git a/abiquo/src/test/java/org/jclouds/abiquo/features/EventApiExpectTest.java b/abiquo/src/test/java/org/jclouds/abiquo/features/EventApiExpectTest.java
new file mode 100644
index 0000000..4c1d3c1
--- /dev/null
+++ b/abiquo/src/test/java/org/jclouds/abiquo/features/EventApiExpectTest.java
@@ -0,0 +1,108 @@
+/*
+ * 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.abiquo.features;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+
+import java.net.URI;
+import java.util.List;
+
+import org.jclouds.abiquo.AbiquoApi;
+import org.jclouds.abiquo.domain.PaginatedCollection;
+import org.jclouds.abiquo.domain.event.options.EventOptions;
+import org.jclouds.collect.PagedIterable;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.http.HttpResponse;
+import org.testng.annotations.Test;
+
+import com.abiquo.server.core.event.EventDto;
+import com.abiquo.server.core.event.EventsDto;
+
+/**
+ * Expect tests for the {@link EventApi}.
+ *
+ * @author Ignasi Barrera
+ */
+@Test(groups = "unit", testName = "EventApiExpectTest")
+public class EventApiExpectTest extends BaseAbiquoApiExpectTest<EventApi> {
+
+ public void testListEventsWithPagination() {
+ EventApi api = requestSendsResponse(
+ HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/events")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(EventsDto.MEDIA_TYPE)) //
+ .addQueryParam("limit", "1") //
+ .addQueryParam("has", "text") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/events-page.xml", normalize(EventsDto.MEDIA_TYPE))) //
+ .build());
+
+ EventOptions options = EventOptions.builder().limit(1).has("text").build();
+ PaginatedCollection<EventDto, EventsDto> result = api.listEvents(options);
+
+ assertEquals(result.size(), 2);
+ assertEquals(result.getTotalSize().intValue(), 4);
+ assertEquals(result.get(0).getId().intValue(), 109);
+ assertNotNull(result.searchLink("first"));
+ assertNotNull(result.searchLink("last"));
+ }
+
+ public void testListEventsReturns2xx() {
+ EventApi api = requestsSendResponses(
+ HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/events")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(EventsDto.MEDIA_TYPE)) //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/events-page.xml", normalize(EventsDto.MEDIA_TYPE))) //
+ .build(),
+ HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/events")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(EventsDto.MEDIA_TYPE)) //
+ .addQueryParam("startwith", "1") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/events-lastpage.xml",
+ normalize(EventsDto.MEDIA_TYPE))) //
+ .build());
+
+ PagedIterable<EventDto> result = api.listEvents();
+ List<EventDto> all = result.concat().toList();
+
+ assertEquals(all.size(), 4);
+ assertEquals(all.get(0).getId().intValue(), 109);
+ assertEquals(all.get(1).getId().intValue(), 108);
+ assertEquals(all.get(2).getId().intValue(), 110);
+ assertEquals(all.get(3).getId().intValue(), 111);
+ }
+
+ @Override
+ protected EventApi clientFrom(AbiquoApi api) {
+ return api.getEventApi();
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/java/org/jclouds/abiquo/features/EventApiTest.java
----------------------------------------------------------------------
diff --git a/abiquo/src/test/java/org/jclouds/abiquo/features/EventApiTest.java b/abiquo/src/test/java/org/jclouds/abiquo/features/EventApiTest.java
deleted file mode 100644
index b0aa4a6..0000000
--- a/abiquo/src/test/java/org/jclouds/abiquo/features/EventApiTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.abiquo.features;
-
-import static org.jclouds.reflect.Reflection2.method;
-
-import java.io.IOException;
-
-import org.jclouds.http.functions.ParseXMLWithJAXB;
-import org.jclouds.reflect.Invocation;
-import org.jclouds.rest.internal.GeneratedHttpRequest;
-import org.testng.annotations.Test;
-
-import com.abiquo.server.core.event.EventsDto;
-import com.google.common.collect.ImmutableList;
-import com.google.common.reflect.Invokable;
-
-/**
- * Tests annotation parsing of {@code EventApi}
- *
- * @author Ignasi Barrera
- * @author Vivien Mahé
- */
-@Test(groups = "unit", testName = "EventApiTest")
-public class EventApiTest extends BaseAbiquoApiTest<EventApi> {
- public void testListEvents() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(EventApi.class, "listEvents");
- GeneratedHttpRequest request = processor.apply(Invocation.create(method, ImmutableList.of()));
-
- assertRequestLineEquals(request, "GET http://localhost/api/events HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + EventsDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/java/org/jclouds/abiquo/features/InfrastructureApiExpectTest.java
----------------------------------------------------------------------
diff --git a/abiquo/src/test/java/org/jclouds/abiquo/features/InfrastructureApiExpectTest.java b/abiquo/src/test/java/org/jclouds/abiquo/features/InfrastructureApiExpectTest.java
index 90683ed..fcdc3a3 100644
--- a/abiquo/src/test/java/org/jclouds/abiquo/features/InfrastructureApiExpectTest.java
+++ b/abiquo/src/test/java/org/jclouds/abiquo/features/InfrastructureApiExpectTest.java
@@ -21,16 +21,27 @@ import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
import java.net.URI;
+import java.util.List;
import org.jclouds.abiquo.AbiquoApi;
+import org.jclouds.abiquo.domain.PaginatedCollection;
+import org.jclouds.abiquo.domain.network.options.IpOptions;
+import org.jclouds.collect.PagedIterable;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.testng.annotations.Test;
import com.abiquo.model.rest.RESTLink;
import com.abiquo.server.core.infrastructure.DatacenterDto;
+import com.abiquo.server.core.infrastructure.network.ExternalIpDto;
+import com.abiquo.server.core.infrastructure.network.ExternalIpsDto;
import com.abiquo.server.core.infrastructure.network.NetworkServiceTypeDto;
import com.abiquo.server.core.infrastructure.network.NetworkServiceTypesDto;
+import com.abiquo.server.core.infrastructure.network.PublicIpDto;
+import com.abiquo.server.core.infrastructure.network.PublicIpsDto;
+import com.abiquo.server.core.infrastructure.network.UnmanagedIpDto;
+import com.abiquo.server.core.infrastructure.network.UnmanagedIpsDto;
+import com.abiquo.server.core.infrastructure.network.VLANNetworkDto;
/**
* Expect tests for the {@link InfrastructureApi} class.
@@ -191,6 +202,222 @@ public class InfrastructureApiExpectTest extends BaseAbiquoApiExpectTest<Infrast
api.deleteNetworkServiceType(nst);
}
+ public void testListPublicIps() {
+ InfrastructureApi api = requestsSendResponses(
+ HttpRequest.builder() //
+ .method("GET") //
+ .endpoint(URI.create("http://localhost/api/admin/datacenters/1/network/1/ips")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(PublicIpsDto.MEDIA_TYPE)) //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/publicips-page.xml",
+ normalize(PublicIpsDto.MEDIA_TYPE))) //
+ .build(),
+ HttpRequest.builder() //
+ .method("GET") //
+ .endpoint(URI.create("http://localhost/api/admin/datacenters/1/network/1/ips")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(PublicIpsDto.MEDIA_TYPE)) //
+ .addQueryParam("startwith", "3") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/publicips-lastpage.xml",
+ normalize(PublicIpsDto.MEDIA_TYPE))) //
+ .build());
+
+ VLANNetworkDto vlan = new VLANNetworkDto();
+ vlan.addLink(new RESTLink("ips", "http://localhost/api/admin/datacenters/1/network/1/ips"));
+
+ PagedIterable<PublicIpDto> publicIps = api.listPublicIps(vlan);
+ List<PublicIpDto> ips = publicIps.concat().toList();
+
+ assertEquals(ips.size(), 4);
+ assertEquals(ips.get(0).getId().intValue(), 1);
+ assertEquals(ips.get(1).getId().intValue(), 2);
+ assertEquals(ips.get(2).getId().intValue(), 3);
+ assertEquals(ips.get(3).getId().intValue(), 4);
+ }
+
+ public void testListPublicIpsWithPagination() {
+ InfrastructureApi api = requestSendsResponse(
+ HttpRequest.builder() //
+ .method("GET") //
+ .endpoint(URI.create("http://localhost/api/admin/datacenters/1/network/1/ips")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(PublicIpsDto.MEDIA_TYPE)) //
+ .addQueryParam("startwith", "3") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/publicips-lastpage.xml",
+ normalize(PublicIpsDto.MEDIA_TYPE))) //
+ .build());
+
+ VLANNetworkDto vlan = new VLANNetworkDto();
+ vlan.addLink(new RESTLink("ips", "http://localhost/api/admin/datacenters/1/network/1/ips"));
+
+ IpOptions options = IpOptions.builder().startWith(3).build();
+ PaginatedCollection<PublicIpDto, PublicIpsDto> ips = api.listPublicIps(vlan, options);
+
+ assertEquals(ips.size(), 2);
+ assertEquals(ips.getTotalSize().intValue(), 4);
+ assertEquals(ips.get(0).getId().intValue(), 3);
+ assertEquals(ips.get(1).getId().intValue(), 4);
+ }
+
+ public void testListExternalIps() {
+ InfrastructureApi api = requestsSendResponses(
+ HttpRequest.builder() //
+ .method("GET") //
+ .endpoint(URI.create("http://localhost/api/admin/enterprises/2/limits/2/externalnetworks/2/ips")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(ExternalIpsDto.MEDIA_TYPE)) //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/externalips-page.xml",
+ normalize(ExternalIpsDto.MEDIA_TYPE))) //
+ .build(),
+ HttpRequest.builder() //
+ .method("GET") //
+ .endpoint(URI.create("http://localhost/api/admin/enterprises/2/limits/2/externalnetworks/2/ips")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(ExternalIpsDto.MEDIA_TYPE)) //
+ .addQueryParam("startwith", "3") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/externalips-lastpage.xml",
+ normalize(ExternalIpsDto.MEDIA_TYPE))) //
+ .build());
+
+ VLANNetworkDto vlan = new VLANNetworkDto();
+ vlan.addLink(new RESTLink("ips", "http://localhost/api/admin/enterprises/2/limits/2/externalnetworks/2/ips"));
+
+ PagedIterable<ExternalIpDto> publicIps = api.listExternalIps(vlan);
+ List<ExternalIpDto> ips = publicIps.concat().toList();
+
+ assertEquals(ips.size(), 4);
+ assertEquals(ips.get(0).getId().intValue(), 1);
+ assertEquals(ips.get(1).getId().intValue(), 2);
+ assertEquals(ips.get(2).getId().intValue(), 3);
+ assertEquals(ips.get(3).getId().intValue(), 4);
+ }
+
+ public void testListExternalIpsWithPagination() {
+ InfrastructureApi api = requestSendsResponse(
+ HttpRequest.builder() //
+ .method("GET") //
+ .endpoint(URI.create("http://localhost/api/admin/enterprises/2/limits/2/externalnetworks/2/ips")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(ExternalIpsDto.MEDIA_TYPE)) //
+ .addQueryParam("startwith", "3") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/externalips-lastpage.xml",
+ normalize(ExternalIpsDto.MEDIA_TYPE))) //
+ .build());
+
+ VLANNetworkDto vlan = new VLANNetworkDto();
+ vlan.addLink(new RESTLink("ips", "http://localhost/api/admin/enterprises/2/limits/2/externalnetworks/2/ips"));
+
+ IpOptions options = IpOptions.builder().startWith(3).build();
+ PaginatedCollection<ExternalIpDto, ExternalIpsDto> ips = api.listExternalIps(vlan, options);
+
+ assertEquals(ips.size(), 2);
+ assertEquals(ips.getTotalSize().intValue(), 4);
+ assertEquals(ips.get(0).getId().intValue(), 3);
+ assertEquals(ips.get(1).getId().intValue(), 4);
+ }
+
+ public void testListUnmanagedIps() {
+ InfrastructureApi api = requestsSendResponses(
+ HttpRequest.builder() //
+ .method("GET") //
+ .endpoint(URI.create("http://localhost/api/admin/enterprises/2/limits/2/externalnetworks/2/ips")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(UnmanagedIpsDto.MEDIA_TYPE)) //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/unmanagedips-page.xml",
+ normalize(UnmanagedIpsDto.MEDIA_TYPE))) //
+ .build(),
+ HttpRequest.builder() //
+ .method("GET") //
+ .endpoint(URI.create("http://localhost/api/admin/enterprises/2/limits/2/externalnetworks/2/ips")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(UnmanagedIpsDto.MEDIA_TYPE)) //
+ .addQueryParam("startwith", "3") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/unmanagedips-lastpage.xml",
+ normalize(UnmanagedIpsDto.MEDIA_TYPE))) //
+ .build());
+
+ VLANNetworkDto vlan = new VLANNetworkDto();
+ vlan.addLink(new RESTLink("ips", "http://localhost/api/admin/enterprises/2/limits/2/externalnetworks/2/ips"));
+
+ PagedIterable<UnmanagedIpDto> unmanagedIps = api.listUnmanagedIps(vlan);
+ List<UnmanagedIpDto> ips = unmanagedIps.concat().toList();
+
+ assertEquals(ips.size(), 4);
+ assertEquals(ips.get(0).getId().intValue(), 1);
+ assertEquals(ips.get(1).getId().intValue(), 2);
+ assertEquals(ips.get(2).getId().intValue(), 3);
+ assertEquals(ips.get(3).getId().intValue(), 4);
+ }
+
+ public void testListUnmanagedIpsWithPagination() {
+ InfrastructureApi api = requestSendsResponse(
+ HttpRequest.builder() //
+ .method("GET") //
+ .endpoint(URI.create("http://localhost/api/admin/enterprises/2/limits/2/externalnetworks/2/ips")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(UnmanagedIpsDto.MEDIA_TYPE)) //
+ .addQueryParam("startwith", "3") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/unmanagedips-lastpage.xml",
+ normalize(UnmanagedIpsDto.MEDIA_TYPE))) //
+ .build());
+
+ VLANNetworkDto vlan = new VLANNetworkDto();
+ vlan.addLink(new RESTLink("ips", "http://localhost/api/admin/enterprises/2/limits/2/externalnetworks/2/ips"));
+
+ IpOptions options = IpOptions.builder().startWith(3).build();
+ PaginatedCollection<UnmanagedIpDto, UnmanagedIpsDto> ips = api.listUnmanagedIps(vlan, options);
+
+ assertEquals(ips.size(), 2);
+ assertEquals(ips.getTotalSize().intValue(), 4);
+ assertEquals(ips.get(0).getId().intValue(), 3);
+ assertEquals(ips.get(1).getId().intValue(), 4);
+ }
+
@Override
protected InfrastructureApi clientFrom(AbiquoApi api) {
return api.getInfrastructureApi();
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/java/org/jclouds/abiquo/features/InfrastructureApiTest.java
----------------------------------------------------------------------
diff --git a/abiquo/src/test/java/org/jclouds/abiquo/features/InfrastructureApiTest.java b/abiquo/src/test/java/org/jclouds/abiquo/features/InfrastructureApiTest.java
index 3064935..36eb667 100644
--- a/abiquo/src/test/java/org/jclouds/abiquo/features/InfrastructureApiTest.java
+++ b/abiquo/src/test/java/org/jclouds/abiquo/features/InfrastructureApiTest.java
@@ -33,7 +33,6 @@ import org.jclouds.abiquo.domain.infrastructure.options.DatacenterOptions;
import org.jclouds.abiquo.domain.infrastructure.options.IpmiOptions;
import org.jclouds.abiquo.domain.infrastructure.options.MachineOptions;
import org.jclouds.abiquo.domain.infrastructure.options.StoragePoolOptions;
-import org.jclouds.abiquo.domain.network.options.IpOptions;
import org.jclouds.abiquo.domain.network.options.NetworkOptions;
import org.jclouds.fallbacks.MapHttp4xxCodesToExceptions;
import org.jclouds.http.functions.ParseXMLWithJAXB;
@@ -63,11 +62,8 @@ import com.abiquo.server.core.infrastructure.RacksDto;
import com.abiquo.server.core.infrastructure.RemoteServiceDto;
import com.abiquo.server.core.infrastructure.RemoteServicesDto;
import com.abiquo.server.core.infrastructure.network.ExternalIpDto;
-import com.abiquo.server.core.infrastructure.network.ExternalIpsDto;
import com.abiquo.server.core.infrastructure.network.PublicIpDto;
-import com.abiquo.server.core.infrastructure.network.PublicIpsDto;
import com.abiquo.server.core.infrastructure.network.UnmanagedIpDto;
-import com.abiquo.server.core.infrastructure.network.UnmanagedIpsDto;
import com.abiquo.server.core.infrastructure.network.VLANNetworkDto;
import com.abiquo.server.core.infrastructure.network.VLANNetworksDto;
import com.abiquo.server.core.infrastructure.network.VlanTagAvailabilityDto;
@@ -1231,40 +1227,6 @@ public class InfrastructureApiTest extends BaseAbiquoApiTest<InfrastructureApi>
/*********************** Network IPs ***********************/
- public void testListPublicIps() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(InfrastructureApi.class, "listPublicIps", VLANNetworkDto.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(NetworkResources.publicNetworkPut())));
-
- assertRequestLineEquals(request, "GET http://localhost/api/admin/datacenters/1/network/1/ips HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + PublicIpsDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testListPublicIpsWithOptions() throws SecurityException, NoSuchMethodException, IOException {
- IpOptions options = IpOptions.builder().startWith(10).build();
- Invokable<?, ?> method = method(InfrastructureApi.class, "listPublicIps", VLANNetworkDto.class, IpOptions.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(NetworkResources.publicNetworkPut(), options)));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/admin/datacenters/1/network/1/ips?startwith=10 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + PublicIpsDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
public void testGetPublicIp() throws SecurityException, NoSuchMethodException, IOException {
Invokable<?, ?> method = method(InfrastructureApi.class, "getPublicIp", VLANNetworkDto.class, Integer.class);
GeneratedHttpRequest request = processor.apply(Invocation.create(method,
@@ -1281,41 +1243,6 @@ public class InfrastructureApiTest extends BaseAbiquoApiTest<InfrastructureApi>
checkFilters(request);
}
- public void testListExternalIps() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(InfrastructureApi.class, "listExternalIps", VLANNetworkDto.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(NetworkResources.externalNetworkPut())));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/admin/enterprises/1/limits/1/externalnetworks/1/ips HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + ExternalIpsDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testListExternalIpsWithOptions() throws SecurityException, NoSuchMethodException, IOException {
- IpOptions options = IpOptions.builder().startWith(10).build();
- Invokable<?, ?> method = method(InfrastructureApi.class, "listExternalIps", VLANNetworkDto.class, IpOptions.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(NetworkResources.externalNetworkPut(), options)));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/admin/enterprises/1/limits/1/externalnetworks/1/ips?startwith=10 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + ExternalIpsDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
public void testGetExternalIp() throws SecurityException, NoSuchMethodException, IOException {
Invokable<?, ?> method = method(InfrastructureApi.class, "getExternalIp", VLANNetworkDto.class, Integer.class);
GeneratedHttpRequest request = processor.apply(Invocation.create(method,
@@ -1333,42 +1260,6 @@ public class InfrastructureApiTest extends BaseAbiquoApiTest<InfrastructureApi>
checkFilters(request);
}
- public void testListUnmanagedIps() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(InfrastructureApi.class, "listUnmanagedIps", VLANNetworkDto.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(NetworkResources.unmanagedNetworkPut())));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/admin/enterprises/1/limits/1/externalnetworks/1/ips HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + UnmanagedIpsDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testListUnmanagedIpsWithOptions() throws SecurityException, NoSuchMethodException, IOException {
- IpOptions options = IpOptions.builder().startWith(10).build();
- Invokable<?, ?> method = method(InfrastructureApi.class, "listUnmanagedIps", VLANNetworkDto.class,
- IpOptions.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method,
- ImmutableList.<Object> of(NetworkResources.unmanagedNetworkPut(), options)));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/admin/enterprises/1/limits/1/externalnetworks/1/ips?startwith=10 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + UnmanagedIpsDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
public void testGetUnmanagedIp() throws SecurityException, NoSuchMethodException, IOException {
Invokable<?, ?> method = method(InfrastructureApi.class, "getUnmanagedIp", VLANNetworkDto.class, Integer.class);
GeneratedHttpRequest request = processor.apply(Invocation.create(method,
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/java/org/jclouds/abiquo/features/VirtualMachineTemplateApiExpectTest.java
----------------------------------------------------------------------
diff --git a/abiquo/src/test/java/org/jclouds/abiquo/features/VirtualMachineTemplateApiExpectTest.java b/abiquo/src/test/java/org/jclouds/abiquo/features/VirtualMachineTemplateApiExpectTest.java
index e9aabe4..7f8f267 100644
--- a/abiquo/src/test/java/org/jclouds/abiquo/features/VirtualMachineTemplateApiExpectTest.java
+++ b/abiquo/src/test/java/org/jclouds/abiquo/features/VirtualMachineTemplateApiExpectTest.java
@@ -20,13 +20,17 @@ import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import java.net.URI;
+import java.util.List;
import org.jclouds.abiquo.AbiquoApi;
+import org.jclouds.abiquo.domain.PaginatedCollection;
import org.jclouds.abiquo.domain.cloud.options.VirtualMachineTemplateOptions;
+import org.jclouds.collect.PagedIterable;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.testng.annotations.Test;
+import com.abiquo.server.core.appslibrary.VirtualMachineTemplateDto;
import com.abiquo.server.core.appslibrary.VirtualMachineTemplatesDto;
/**
@@ -59,16 +63,59 @@ public class VirtualMachineTemplateApiExpectTest extends BaseAbiquoApiExpectTest
.build());
VirtualMachineTemplateOptions options = VirtualMachineTemplateOptions.builder().limit(1).has("text").build();
- VirtualMachineTemplatesDto result = api.listVirtualMachineTemplates(1, 1, options);
+ PaginatedCollection<VirtualMachineTemplateDto, VirtualMachineTemplatesDto> result = api
+ .listVirtualMachineTemplates(1, 1, options);
- assertEquals(result.getCollection().size(), 1);
+ assertEquals(result.size(), 1);
assertEquals(result.getTotalSize().intValue(), 2);
- assertEquals(result.getCollection().get(0).getId().intValue(), 151);
+ assertEquals(result.get(0).getId().intValue(), 151);
assertNotNull(result.searchLink("first"));
assertNotNull(result.searchLink("last"));
assertNotNull(result.searchLink("next"));
}
+ public void testListVirtualMachineTemplatesReturns2xx() {
+ VirtualMachineTemplateApi api = requestsSendResponses(
+ HttpRequest
+ .builder()
+ .method("GET")
+ .endpoint(
+ URI.create("http://localhost/api/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(VirtualMachineTemplatesDto.MEDIA_TYPE)) //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/templates-page.xml",
+ normalize(VirtualMachineTemplatesDto.MEDIA_TYPE))) //
+ .build(),
+ HttpRequest
+ .builder()
+ .method("GET")
+ .endpoint(
+ URI.create("http://localhost/api/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates")) //
+ .addHeader("Cookie", tokenAuth) //
+ .addHeader("Accept", normalize(VirtualMachineTemplatesDto.MEDIA_TYPE)) //
+ .addQueryParam("startwith", "1") //
+ .build(),
+ HttpResponse
+ .builder()
+ .statusCode(200)
+ .payload(
+ payloadFromResourceWithContentType("/payloads/templates-lastpage.xml",
+ normalize(VirtualMachineTemplatesDto.MEDIA_TYPE))) //
+ .build());
+
+ PagedIterable<VirtualMachineTemplateDto> result = api.listVirtualMachineTemplates(1, 1);
+ List<VirtualMachineTemplateDto> all = result.concat().toList();
+
+ assertEquals(all.size(), 2);
+ assertEquals(all.get(0).getId().intValue(), 151);
+ assertEquals(all.get(1).getId().intValue(), 152);
+ }
+
@Override
protected VirtualMachineTemplateApi clientFrom(AbiquoApi api) {
return api.getVirtualMachineTemplateApi();
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/java/org/jclouds/abiquo/features/VirtualMachineTemplateApiTest.java
----------------------------------------------------------------------
diff --git a/abiquo/src/test/java/org/jclouds/abiquo/features/VirtualMachineTemplateApiTest.java b/abiquo/src/test/java/org/jclouds/abiquo/features/VirtualMachineTemplateApiTest.java
index 86a0046..4739871 100644
--- a/abiquo/src/test/java/org/jclouds/abiquo/features/VirtualMachineTemplateApiTest.java
+++ b/abiquo/src/test/java/org/jclouds/abiquo/features/VirtualMachineTemplateApiTest.java
@@ -24,7 +24,6 @@ import java.io.IOException;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.abiquo.domain.TemplateResources;
import org.jclouds.abiquo.domain.cloud.options.ConversionOptions;
-import org.jclouds.abiquo.domain.cloud.options.VirtualMachineTemplateOptions;
import org.jclouds.abiquo.functions.ReturnTaskReferenceOrNull;
import org.jclouds.http.functions.ParseXMLWithJAXB;
import org.jclouds.http.functions.ReleasePayloadAndReturn;
@@ -40,7 +39,6 @@ import com.abiquo.server.core.appslibrary.ConversionDto;
import com.abiquo.server.core.appslibrary.ConversionsDto;
import com.abiquo.server.core.appslibrary.VirtualMachineTemplateDto;
import com.abiquo.server.core.appslibrary.VirtualMachineTemplatePersistentDto;
-import com.abiquo.server.core.appslibrary.VirtualMachineTemplatesDto;
import com.google.common.collect.ImmutableList;
import com.google.common.reflect.Invokable;
@@ -54,48 +52,6 @@ import com.google.common.reflect.Invokable;
public class VirtualMachineTemplateApiTest extends BaseAbiquoApiTest<VirtualMachineTemplateApi> {
/*********************** Virtual Machine Template ***********************/
- public void testListVirtualMachineTemplates() throws SecurityException, NoSuchMethodException, IOException {
- Invokable<?, ?> method = method(VirtualMachineTemplateApi.class, "listVirtualMachineTemplates", Integer.class,
- Integer.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(method, ImmutableList.<Object> of(1, 1)));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + VirtualMachineTemplatesDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testListVirtualMachineTemplatesWithOptions() throws SecurityException, NoSuchMethodException,
- IOException {
- Invokable<?, ?> method = method(VirtualMachineTemplateApi.class, "listVirtualMachineTemplates", Integer.class,
- Integer.class, VirtualMachineTemplateOptions.class);
- GeneratedHttpRequest request = processor.apply(Invocation.create(
- method,
- ImmutableList.<Object> of(
- 1,
- 1,
- VirtualMachineTemplateOptions.builder().hypervisorType(HypervisorType.XENSERVER)
- .categoryName("Firewalls").build())));
-
- assertRequestLineEquals(request,
- "GET http://localhost/api/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates"
- + "?hypervisorTypeName=XENSERVER&categoryName=Firewalls HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: " + VirtualMachineTemplatesDto.BASE_MEDIA_TYPE + "\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
public void testGetVirtualMachineTemplate() throws SecurityException, NoSuchMethodException, IOException {
Invokable<?, ?> method = method(VirtualMachineTemplateApi.class, "getVirtualMachineTemplate", Integer.class,
Integer.class, Integer.class);
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/java/org/jclouds/abiquo/strategy/cloud/ListAttachedNicsLiveApiTest.java
----------------------------------------------------------------------
diff --git a/abiquo/src/test/java/org/jclouds/abiquo/strategy/cloud/ListAttachedNicsLiveApiTest.java b/abiquo/src/test/java/org/jclouds/abiquo/strategy/cloud/ListAttachedNicsLiveApiTest.java
index 7bb9a7b..643254f 100644
--- a/abiquo/src/test/java/org/jclouds/abiquo/strategy/cloud/ListAttachedNicsLiveApiTest.java
+++ b/abiquo/src/test/java/org/jclouds/abiquo/strategy/cloud/ListAttachedNicsLiveApiTest.java
@@ -17,6 +17,7 @@
package org.jclouds.abiquo.strategy.cloud;
import static com.google.common.collect.Iterables.find;
+import static com.google.common.collect.Iterables.getLast;
import static com.google.common.collect.Iterables.size;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
@@ -55,13 +56,10 @@ public class ListAttachedNicsLiveApiTest extends BaseAbiquoStrategyLiveApiTest {
protected void setupStrategy() {
this.strategy = env.context.utils().injector().getInstance(ListAttachedNics.class);
- privateIp = env.privateNetwork.listUnusedIps().get(0);
- assertNotNull(privateIp);
+ privateIp = getLast(env.privateNetwork.listUnusedIps());
+ externalIp = getLast(env.externalNetwork.listUnusedIps());
- externalIp = env.externalNetwork.listUnusedIps().get(0);
- assertNotNull(externalIp);
-
- publicIp = env.virtualDatacenter.listAvailablePublicIps().get(0);
+ publicIp = getLast(env.virtualDatacenter.listAvailablePublicIps());
env.virtualDatacenter.purchasePublicIp(publicIp);
publicIp = find(env.virtualDatacenter.listPurchasedPublicIps(), new Predicate<PublicIp>() {
@Override
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/resources/logback-test.xml
----------------------------------------------------------------------
diff --git a/abiquo/src/test/resources/logback-test.xml b/abiquo/src/test/resources/logback-test.xml
index 70a88e8..ebdf6c0 100644
--- a/abiquo/src/test/resources/logback-test.xml
+++ b/abiquo/src/test/resources/logback-test.xml
@@ -15,8 +15,8 @@
<maxHistory>5</maxHistory>
</rollingPolicy>
</appender>
- <appender name="PAYLOADFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>target/test-data/jclouds-payloads.log</file>
+ <appender name="WIREFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>target/test-data/jclouds-wire.log</file>
<append>true</append>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>TRACE</level>
@@ -72,11 +72,11 @@
<logger name="jclouds.headers">
<level value="DEBUG" />
<appender-ref ref="HEADERSFILE" />
- <appender-ref ref="PAYLOADFILE" />
+ <appender-ref ref="WIREFILE" />
</logger>
<logger name="jclouds.wire">
<level value="DEBUG" />
- <appender-ref ref="PAYLOADFILE" />
+ <appender-ref ref="WIREFILE" />
</logger>
<logger name="jclouds.compute">
<level value="DEBUG" />
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/resources/payloads/all-vms-lastpage.xml
----------------------------------------------------------------------
diff --git a/abiquo/src/test/resources/payloads/all-vms-lastpage.xml b/abiquo/src/test/resources/payloads/all-vms-lastpage.xml
new file mode 100644
index 0000000..05ae6eb
--- /dev/null
+++ b/abiquo/src/test/resources/payloads/all-vms-lastpage.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<virtualmachineswithnodeextended>
+ <link href="http://localhost/api/cloud/virtualmachines" rel="first" />
+ <link href="http://localhost/api/cloud/virtualmachines?startwith=0" rel="previous" />
+ <link href="http://localhost/api/cloud/virtualmachines?startwith=2" rel="last" />
+ <totalSize>2</totalSize>
+ <virtualmachinewithnodeextended>
+ <link rel="deploy" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/action/deploy" />
+ <link rel="disks" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/storage/disks" />
+ <link rel="edit" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1" />
+ <link rel="state" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/state" />
+ <link rel="reset" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/action/reset" />
+ <link rel="tasks" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/tasks" />
+ <link rel="undeploy" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/action/undeploy" />
+ <link rel="persistent" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/action/persistent" />
+ <link rel="virtualappliance" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1" />
+ <link rel="virtualmachinetemplate" href="/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates/1" />
+ <link rel="nics" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/network/nics" />
+ <link rel="volumes" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/storage/volumes" />
+ <link rel="configurations" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/network/configurations" />
+ <cpu>0</cpu>
+ <hdInBytes>0</hdInBytes>
+ <highDisponibility>0</highDisponibility>
+ <id>2</id>
+ <idState>0</idState>
+ <idType>0</idType>
+ <name>VM</name>
+ <ram>0</ram>
+ <vdrpPort>0</vdrpPort>
+ </virtualmachinewithnodeextended>
+</virtualmachineswithnodeextended>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/resources/payloads/all-vms.xml
----------------------------------------------------------------------
diff --git a/abiquo/src/test/resources/payloads/all-vms.xml b/abiquo/src/test/resources/payloads/all-vms.xml
index 329f202..007fe11 100644
--- a/abiquo/src/test/resources/payloads/all-vms.xml
+++ b/abiquo/src/test/resources/payloads/all-vms.xml
@@ -1,5 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<virtualmachineswithnodeextended>
+ <link href="http://localhost/api/cloud/virtualmachines" rel="first" />
+ <link href="http://localhost/api/cloud/virtualmachines?startwith=2" rel="next" />
+ <link href="http://localhost/api/cloud/virtualmachines?startwith=2" rel="last" />
+ <totalSize>2</totalSize>
<virtualmachinewithnodeextended>
<link rel="deploy" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/action/deploy" />
<link rel="disks" href="http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/storage/disks" />
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/resources/payloads/available-templates-lastpage.xml
----------------------------------------------------------------------
diff --git a/abiquo/src/test/resources/payloads/available-templates-lastpage.xml b/abiquo/src/test/resources/payloads/available-templates-lastpage.xml
new file mode 100644
index 0000000..4e8b2f7
--- /dev/null
+++ b/abiquo/src/test/resources/payloads/available-templates-lastpage.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<virtualMachineTemplates>
+ <link href="http://example.com/api/cloud/virtualdatacenters/1/action/templates" rel="first" />
+ <link href="http://example.com/api/cloud/virtualdatacenters/1/action/templates?startwith=0" rel="previous" />
+ <link href="http://example.com/api/cloud/virtualdatacenters/1/action/templates?startwith=1" rel="last" />
+ <totalSize>2</totalSize>
+ <virtualMachineTemplate>
+ <link href="http://example.com/api/config/categories/1" rel="category" title="Others" type="application/vnd.abiquo.category+xml" />
+ <link href="http://example.com/api/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates/16/conversions" rel="conversions" type="application/vnd.abiquo.conversions+xml" />
+ <link href="http://example.com/api/admin/datacenters/1" rel="datacenter" type="application/vnd.abiquo.datacenter+xml" />
+ <link href="http://example.com/api/admin/enterprises/1/datacenterrepositories/1" rel="datacenterrepository" type="application/vnd.abiquo.datacenterrepository+xml" />
+ <link href="http://example.com/am/erepos/1/templates/rs.bcn.abiquo.com%253A9000%252Fovf%252F71%252Fdesc.ovf?format=diskFile" rel="diskfile" />
+ <link href="http://example.com/api/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates/16" rel="edit" title="Abiquo KVM" type="application/vnd.abiquo.virtualmachinetemplate+xml" />
+ <link href="http://example.com/api/admin/enterprises/1" rel="enterprise" type="application/vnd.abiquo.enterprise+xml" />
+ <link href="http://example.com/am/erepos/1/templates/rs.bcn.abiquo.com%253A9000%252Fovf%252F71%252Fdesc.ovf?format=envelope" rel="ovfdocument" />
+ <link href="http://example.com/api/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates/16/tasks" rel="tasks" type="application/vnd.abiquo.tasks+xml" />
+ <link href="http://example.com/am/erepos/1/templates/rs.bcn.abiquo.com%253A9000%252Fovf%252F71%252Fdesc.ovf" rel="template" />
+ <link href="http://rs.bcn.abiquo.com:9000/ovf/71/desc.ovf" rel="templatedefinition" />
+ <link href="http://example.com/am/erepos/1/templates/rs.bcn.abiquo.com%253A9000%252Fovf%252F71%252Fdesc.ovf?format=status" rel="templatestatus" />
+ <id>16</id>
+ <name>Abiquo KVM</name>
+ <description />
+ <osType>UNRECOGNIZED</osType>
+ <osVersion />
+ <path>1/rs.bcn.abiquo.com/abiport9000/ovf/71/KVM-Recursion.qcow2</path>
+ <diskFormatType>QCOW2_SPARSE</diskFormatType>
+ <diskFileSize>320798720</diskFileSize>
+ <cpuRequired>1</cpuRequired>
+ <ramRequired>1024</ramRequired>
+ <hdRequired>4294967296</hdRequired>
+ <shared>false</shared>
+ <state>DONE</state>
+ <costCode>0</costCode>
+ <creationDate>2013-01-16T15:06:14+01:00</creationDate>
+ <creationUser>SYSTEM</creationUser>
+ <chefEnabled>false</chefEnabled>
+ <iconUrl>http://rs.bcn.abiquo.com:9000/public/icons/q.png</iconUrl>
+ <loginUser>user</loginUser>
+ <loginPassword>password</loginPassword>
+ <ethernetDriverType>E1000</ethernetDriverType>
+ <diskControllerType>SCSI</diskControllerType>
+ </virtualMachineTemplate>
+</virtualMachineTemplates>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs/blob/14fbe2d3/abiquo/src/test/resources/payloads/available-templates-page.xml
----------------------------------------------------------------------
diff --git a/abiquo/src/test/resources/payloads/available-templates-page.xml b/abiquo/src/test/resources/payloads/available-templates-page.xml
new file mode 100644
index 0000000..886d364
--- /dev/null
+++ b/abiquo/src/test/resources/payloads/available-templates-page.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<virtualMachineTemplates>
+ <link href="http://example.com/api/cloud/virtualdatacenters/1/action/templates" rel="first" />
+ <link href="http://example.com/api/cloud/virtualdatacenters/1/action/templates?startwith=1" rel="next" />
+ <link href="http://example.com/api/cloud/virtualdatacenters/1/action/templates?startwith=1" rel="last" />
+ <totalSize>2</totalSize>
+ <virtualMachineTemplate>
+ <link href="http://example.com/api/config/categories/1" rel="category" title="Others" type="application/vnd.abiquo.category+xml" />
+ <link href="http://example.com/api/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates/15/conversions" rel="conversions" type="application/vnd.abiquo.conversions+xml" />
+ <link href="http://example.com/api/admin/datacenters/1" rel="datacenter" type="application/vnd.abiquo.datacenter+xml" />
+ <link href="http://example.com/api/admin/enterprises/1/datacenterrepositories/1" rel="datacenterrepository" type="application/vnd.abiquo.datacenterrepository+xml" />
+ <link href="http://example.com/am/erepos/1/templates/rs.bcn.abiquo.com%253A9000%252Fovf%252F71%252Fdesc.ovf?format=diskFile" rel="diskfile" />
+ <link href="http://example.com/api/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates/15" rel="edit" title="Abiquo KVM" type="application/vnd.abiquo.virtualmachinetemplate+xml" />
+ <link href="http://example.com/api/admin/enterprises/1" rel="enterprise" type="application/vnd.abiquo.enterprise+xml" />
+ <link href="http://example.com/am/erepos/1/templates/rs.bcn.abiquo.com%253A9000%252Fovf%252F71%252Fdesc.ovf?format=envelope" rel="ovfdocument" />
+ <link href="http://example.com/api/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates/15/tasks" rel="tasks" type="application/vnd.abiquo.tasks+xml" />
+ <link href="http://example.com/am/erepos/1/templates/rs.bcn.abiquo.com%253A9000%252Fovf%252F71%252Fdesc.ovf" rel="template" />
+ <link href="http://rs.bcn.abiquo.com:9000/ovf/71/desc.ovf" rel="templatedefinition" />
+ <link href="http://example.com/am/erepos/1/templates/rs.bcn.abiquo.com%253A9000%252Fovf%252F71%252Fdesc.ovf?format=status" rel="templatestatus" />
+ <id>15</id>
+ <name>Abiquo KVM</name>
+ <description />
+ <osType>UNRECOGNIZED</osType>
+ <osVersion />
+ <path>1/rs.bcn.abiquo.com/abiport9000/ovf/71/KVM-Recursion.qcow2</path>
+ <diskFormatType>QCOW2_SPARSE</diskFormatType>
+ <diskFileSize>320798720</diskFileSize>
+ <cpuRequired>1</cpuRequired>
+ <ramRequired>1024</ramRequired>
+ <hdRequired>4294967296</hdRequired>
+ <shared>false</shared>
+ <state>DONE</state>
+ <costCode>0</costCode>
+ <creationDate>2013-01-16T15:06:14+01:00</creationDate>
+ <creationUser>SYSTEM</creationUser>
+ <chefEnabled>false</chefEnabled>
+ <iconUrl>http://rs.bcn.abiquo.com:9000/public/icons/q.png</iconUrl>
+ <loginUser>user</loginUser>
+ <loginPassword>password</loginPassword>
+ <ethernetDriverType>E1000</ethernetDriverType>
+ <diskControllerType>SCSI</diskControllerType>
+ </virtualMachineTemplate>
+</virtualMachineTemplates>
\ No newline at end of file