Repository: jclouds-labs Updated Branches: refs/heads/2.0.x f2cc5fc6e -> 71511bb8e
JCLOUDS-1328: Update ProfitBricks to the latest API version Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/71511bb8 Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/71511bb8 Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/71511bb8 Branch: refs/heads/2.0.x Commit: 71511bb8ef495842df7506cd28ac67b173e2db14 Parents: f2cc5fc Author: Ali Bazlamit <[email protected]> Authored: Thu Sep 7 21:16:49 2017 +0300 Committer: Ignasi Barrera <[email protected]> Committed: Fri Sep 8 08:18:59 2017 +0200 ---------------------------------------------------------------------- profitbricks-rest/pom.xml | 2 +- .../rest/ProfitBricksApiMetadata.java | 2 +- .../rest/ProfitBricksProviderMetadata.java | 4 +- .../rest/binder/lan/UpdateLanRequestBinder.java | 18 +-- .../volume/CreateVolumeRequestBinder.java | 9 +- .../ProfitBricksComputeServiceAdapter.java | 10 +- .../jclouds/profitbricks/rest/domain/Lan.java | 55 +++++++-- .../profitbricks/rest/domain/Volume.java | 11 +- .../CreateFirewallRuleRequestBinderTest.java | 2 +- .../UpdateFirewallRuleRequestBinderTest.java | 2 +- .../image/UpdateImageRequestBinderTest.java | 2 +- .../binder/lan/CreateLanRequestBinderTest.java | 2 +- .../binder/lan/UpdateLanRequestBinderTest.java | 2 +- .../binder/nic/CreateNicRequestBinderTest.java | 2 +- .../binder/nic/UpdateNicRequestBinderTest.java | 2 +- .../server/AttachCdromRequestBinderTest.java | 2 +- .../server/AttachVolumeRequestBinderTest.java | 2 +- .../server/CreateServerRequestBinderTest.java | 2 +- .../server/UpdateServerRequestBinderTest.java | 2 +- .../volume/CreateSnapshotRequestBinderTest.java | 2 +- .../volume/CreateVolumeRequestBinderTest.java | 2 +- .../RestoreSnapshotRequestBinderTest.java | 2 +- .../volume/UpdateVolumeRequestBinderTest.java | 2 +- .../ProfitBricksComputeServiceLiveTest.java | 14 ++- .../rest/features/LanApiLiveTest.java | 123 +++++++++++++------ .../rest/features/VolumeApiLiveTest.java | 24 +--- .../src/test/resources/ipblock/get.json | 2 +- .../test/resources/ipblock/list.depth-5.json | 6 +- .../src/test/resources/ipblock/list.json | 6 +- 29 files changed, 205 insertions(+), 111 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/pom.xml ---------------------------------------------------------------------- diff --git a/profitbricks-rest/pom.xml b/profitbricks-rest/pom.xml index a49f59c..273d8b7 100644 --- a/profitbricks-rest/pom.xml +++ b/profitbricks-rest/pom.xml @@ -32,7 +32,7 @@ <packaging>bundle</packaging> <properties> - <test.profitbricks-rest.endpoint>https://api.profitbricks.com/cloudapi/v3/</test.profitbricks-rest.endpoint> + <test.profitbricks-rest.endpoint>https://api.profitbricks.com/cloudapi/v4/</test.profitbricks-rest.endpoint> <test.profitbricks-rest.identity>FIXME</test.profitbricks-rest.identity> <test.profitbricks-rest.credential>FIXME</test.profitbricks-rest.credential> <test.profitbricks-rest.api-version>1.3</test.profitbricks-rest.api-version> http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/ProfitBricksApiMetadata.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/ProfitBricksApiMetadata.java b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/ProfitBricksApiMetadata.java index a39f798..c3078a0 100644 --- a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/ProfitBricksApiMetadata.java +++ b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/ProfitBricksApiMetadata.java @@ -54,7 +54,7 @@ public class ProfitBricksApiMetadata extends BaseHttpApiMetadata<ProfitBricksApi .identityName("API Username") .credentialName("API Password") .documentation(URI.create("https://devops.profitbricks.com/api/rest/")) - .defaultEndpoint("https://api.profitbricks.com/cloudapi/v3/") + .defaultEndpoint("https://api.profitbricks.com/cloudapi/v4/") .view(ComputeServiceContext.class) .defaultProperties(ProfitBricksApiMetadata.defaultProperties()) .defaultModules(ImmutableSet.<Class<? extends Module>>builder() http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/ProfitBricksProviderMetadata.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/ProfitBricksProviderMetadata.java b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/ProfitBricksProviderMetadata.java index 4953db3..2542be0 100644 --- a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/ProfitBricksProviderMetadata.java +++ b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/ProfitBricksProviderMetadata.java @@ -25,6 +25,7 @@ import static org.apache.jclouds.profitbricks.rest.config.ProfitBricksComputePro import static org.jclouds.Constants.PROPERTY_CONNECTION_TIMEOUT; import static org.jclouds.Constants.PROPERTY_ISO3166_CODES; import static org.jclouds.Constants.PROPERTY_SO_TIMEOUT; +import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE; import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES; import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION; import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS; @@ -68,6 +69,7 @@ public class ProfitBricksProviderMetadata extends BaseProviderMetadata { properties.setProperty(PROPERTY_ZONE + ".us/ewr." + ISO3166_CODES, "US-NJ"); properties.setProperty(PROPERTY_ZONE + ".us/las." + ISO3166_CODES, "US-NV"); properties.setProperty(PROPERTY_ZONE + ".us/lasdev." + ISO3166_CODES, "US-NV"); + properties.put(TEMPLATE, "imageNameMatches=Ubuntu,osVersionMatches=1[467]\\.04"); properties.put("jclouds.ssh.max-retries", "7"); properties.put("jclouds.ssh.retry-auth", "true"); @@ -92,7 +94,7 @@ public class ProfitBricksProviderMetadata extends BaseProviderMetadata { .homepage(URI.create("https://www.profitbricks.com/")) .console(URI.create("https://my.profitbricks.com/dashboard/dcdr2")) .iso3166Codes("DE-BW", "DE-HE", "US-NJ", "US-NV") - .endpoint("https://api.profitbricks.com/cloudapi/v3/") + .endpoint("https://api.profitbricks.com/cloudapi/v4/") .defaultProperties(ProfitBricksProviderMetadata.defaultProperties()); } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/binder/lan/UpdateLanRequestBinder.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/binder/lan/UpdateLanRequestBinder.java b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/binder/lan/UpdateLanRequestBinder.java index 8298852..534eed9 100644 --- a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/binder/lan/UpdateLanRequestBinder.java +++ b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/binder/lan/UpdateLanRequestBinder.java @@ -32,7 +32,7 @@ public class UpdateLanRequestBinder extends BaseProfitBricksRequestBinder<Lan.Re private String lanId; @Inject - UpdateLanRequestBinder(Json jsonBinder, @Provider Supplier<URI> endpointSupplier) { + UpdateLanRequestBinder(Json jsonBinder, @Provider Supplier<URI> endpointSupplier) { super("lan", jsonBinder, endpointSupplier); } @@ -42,18 +42,22 @@ public class UpdateLanRequestBinder extends BaseProfitBricksRequestBinder<Lan.Re checkNotNull(payload, "payload"); checkNotNull(payload.dataCenterId(), "dataCenterId"); checkNotNull(payload.id(), "id"); - + dataCenterId = payload.dataCenterId(); lanId = payload.id(); - - if (payload.isPublic() != null) - requestBuilder.put("public", payload.isPublic()); - + + if (payload.isPublic() != null) { + requestBuilder.put("public", payload.isPublic()); + } + if (payload.ipFailover() != null) { + requestBuilder.put("ipFailover", payload.ipFailover()); + } + return jsonBinder.toJson(requestBuilder); } @Override - protected <R extends HttpRequest> R createRequest(R fromRequest, String payload) { + protected <R extends HttpRequest> R createRequest(R fromRequest, String payload) { return super.createRequest(genRequest(String.format("datacenters/%s/lans/%s", dataCenterId, lanId), fromRequest), payload); } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateVolumeRequestBinder.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateVolumeRequestBinder.java b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateVolumeRequestBinder.java index a642c2f..8e81d1f 100644 --- a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateVolumeRequestBinder.java +++ b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateVolumeRequestBinder.java @@ -16,17 +16,17 @@ */ package org.apache.jclouds.profitbricks.rest.binder.volume; +import static com.google.common.base.Preconditions.checkNotNull; +import com.google.common.base.Supplier; import com.google.inject.Inject; +import java.net.URI; import java.util.HashMap; import java.util.Map; import org.apache.jclouds.profitbricks.rest.binder.BaseProfitBricksRequestBinder; import org.apache.jclouds.profitbricks.rest.domain.Volume; import org.jclouds.http.HttpRequest; import org.jclouds.json.Json; -import com.google.common.base.Supplier; -import java.net.URI; import org.jclouds.location.Provider; -import static com.google.common.base.Preconditions.checkNotNull; public class CreateVolumeRequestBinder extends BaseProfitBricksRequestBinder<Volume.Request.CreatePayload> { @@ -63,6 +63,9 @@ public class CreateVolumeRequestBinder extends BaseProfitBricksRequestBinder<Vol if (payload.imagePassword() != null) properties.put("imagePassword", payload.imagePassword()); + if (payload.imageAlias() != null) + properties.put("imageAlias", payload.imageAlias()); + if (payload.image() != null) properties.put("image", payload.image()); else if (payload.licenceType() != null) http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/compute/ProfitBricksComputeServiceAdapter.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/compute/ProfitBricksComputeServiceAdapter.java b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/compute/ProfitBricksComputeServiceAdapter.java index 4c79640..90f76fc 100644 --- a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/compute/ProfitBricksComputeServiceAdapter.java +++ b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/compute/ProfitBricksComputeServiceAdapter.java @@ -34,6 +34,8 @@ import com.google.inject.Inject; import static java.lang.String.format; import java.net.URI; import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.concurrent.Callable; @@ -146,6 +148,7 @@ public class ProfitBricksComputeServiceAdapter implements ComputeServiceAdapter< Hardware hardware = template.getHardware(); TemplateOptions options = template.getOptions(); final String loginUser = isNullOrEmpty(options.getLoginUser()) ? "root" : options.getLoginUser(); + final String pubKey = options.getPublicKey(); final String password = options.hasLoginPassword() ? options.getLoginPassword() : Passwords.generate(); final org.jclouds.compute.domain.Image image = template.getImage(); final int[] inboundPorts = template.getOptions().getInboundPorts(); @@ -165,7 +168,11 @@ public class ProfitBricksComputeServiceAdapter implements ComputeServiceAdapter< Provisionable.Type provisionableType = Provisionable.Type.fromValue( image.getUserMetadata().get(ProvisionableToImage.KEY_PROVISIONABLE_TYPE)); if (provisionableType == Provisionable.Type.IMAGE) { - request.imagePassword(password); + if (pubKey != null) { + request.sshKeys(new HashSet<String>(Arrays.asList(pubKey))); + } else { + request.imagePassword(password); + } } } @@ -347,6 +354,7 @@ public class ProfitBricksComputeServiceAdapter implements ComputeServiceAdapter< LoginCredentials serverCredentials = LoginCredentials.builder() .user(loginUser) + .privateKey(pubKey) .password(password) .build(); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/domain/Lan.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/domain/Lan.java b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/domain/Lan.java index 2aeb60f..37d082f 100644 --- a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/domain/Lan.java +++ b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/domain/Lan.java @@ -17,6 +17,8 @@ package org.apache.jclouds.profitbricks.rest.domain; import com.google.auto.value.AutoValue; +import com.google.common.collect.ImmutableList; +import static com.google.common.collect.ImmutableList.copyOf; import java.util.List; import org.jclouds.javax.annotation.Nullable; import org.jclouds.json.SerializedNames; @@ -25,7 +27,7 @@ import org.jclouds.json.SerializedNames; public abstract class Lan extends Trackable { public abstract String id(); - + @Nullable public abstract String dataCenterId(); @@ -49,14 +51,32 @@ public abstract class Lan extends Trackable { @AutoValue public abstract static class Properties { + @Nullable public abstract String name(); - + public abstract boolean isPublic(); - - @SerializedNames({"name", "public"}) - public static Properties create(String name, boolean isPublic) { - return new AutoValue_Lan_Properties(name, isPublic); + + @Nullable + public abstract List<IpFailover> ipFailover(); + + @SerializedNames({"name", "public", "ipFailover"}) + public static Properties create(String name, boolean isPublic, List<IpFailover> ipFailover) { + return new AutoValue_Lan_Properties(name, isPublic, ipFailover == null ? ImmutableList.<IpFailover>of() : copyOf(ipFailover)); + } + } + + @AutoValue + public abstract static class IpFailover { + + @Nullable + public abstract String ip(); + + public abstract String nicUuid(); + + @SerializedNames({"ip", "nicUuid"}) + public static IpFailover create(String ip, String nicUuid) { + return new AutoValue_Lan_IpFailover(ip, nicUuid); } } @@ -71,8 +91,7 @@ public abstract class Lan extends Trackable { } } - - + public static final class Request { public static CreatePayload.Builder creatingBuilder() { @@ -82,7 +101,7 @@ public abstract class Lan extends Trackable { public static UpdatePayload.Builder updatingBuilder() { return new AutoValue_Lan_Request_UpdatePayload.Builder(); } - + @AutoValue public abstract static class CreatePayload { @@ -94,15 +113,18 @@ public abstract class Lan extends Trackable { @Nullable public abstract List<Nic> nics(); - + public abstract String dataCenterId(); @AutoValue.Builder public abstract static class Builder { public abstract Builder name(String name); + public abstract Builder isPublic(Boolean isPublic); + public abstract Builder nics(List<Nic> nics); + public abstract Builder dataCenterId(String dataCenterId); abstract CreatePayload autoBuild(); @@ -118,16 +140,25 @@ public abstract class Lan extends Trackable { public abstract static class UpdatePayload { public abstract Boolean isPublic(); + public abstract String dataCenterId(); + public abstract String id(); + @Nullable + public abstract List<IpFailover> ipFailover(); + @AutoValue.Builder public abstract static class Builder { public abstract Builder isPublic(Boolean isPublic); + public abstract Builder dataCenterId(String dataCenterId); + public abstract Builder id(String id); + public abstract Builder ipFailover(List<IpFailover> ipFailover); + abstract UpdatePayload autoBuild(); public UpdatePayload build() { @@ -135,7 +166,7 @@ public abstract class Lan extends Trackable { } } } - + } - + } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/domain/Volume.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/domain/Volume.java b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/domain/Volume.java index 4e23ab7..75186cd 100644 --- a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/domain/Volume.java +++ b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/domain/Volume.java @@ -148,6 +148,9 @@ public abstract class Volume extends Trackable { @Nullable public abstract String image(); + + @Nullable + public abstract String imageAlias(); @Nullable public abstract AvailabilityZone availabilityZone(); @@ -177,7 +180,9 @@ public abstract class Volume extends Trackable { public abstract Builder availabilityZone(AvailabilityZone size); public abstract Builder image(String image); - + + public abstract Builder imageAlias(String imageAlias); + public abstract Builder imagePassword(String imagePassword); public abstract Builder bus(Properties.BusType bus); @@ -196,8 +201,8 @@ public abstract class Volume extends Trackable { } checkArgument( - payload.image() != null || payload.licenceType() != null, - "Either image or licenceType need to be present" + payload.image() != null || payload.licenceType() != null || payload.imageAlias() != null, + "Either image, imageAlias or licenceType need to be present" ); return payload; http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/firewall/CreateFirewallRuleRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/firewall/CreateFirewallRuleRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/firewall/CreateFirewallRuleRequestBinderTest.java index c6eaeae..10ce82b 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/firewall/CreateFirewallRuleRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/firewall/CreateFirewallRuleRequestBinderTest.java @@ -51,7 +51,7 @@ public class CreateFirewallRuleRequestBinderTest extends BinderTestBase { actual ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/servers/server-id/nics/nic-id/firewallrules"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/servers/server-id/nics/nic-id/firewallrules"); assertNotNull(actual, "Binder returned null payload"); Json json = injector.getInstance(Json.class); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/firewall/UpdateFirewallRuleRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/firewall/UpdateFirewallRuleRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/firewall/UpdateFirewallRuleRequestBinderTest.java index 97afb24..9e0a8eb 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/firewall/UpdateFirewallRuleRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/firewall/UpdateFirewallRuleRequestBinderTest.java @@ -48,7 +48,7 @@ public class UpdateFirewallRuleRequestBinderTest extends BinderTestBase { actual ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/servers/server-id/nics/nic-id/firewallrules/id"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/servers/server-id/nics/nic-id/firewallrules/id"); assertNotNull(actual, "Binder returned null payload"); Json json = injector.getInstance(Json.class); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/image/UpdateImageRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/image/UpdateImageRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/image/UpdateImageRequestBinderTest.java index a631bcf..3d18751 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/image/UpdateImageRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/image/UpdateImageRequestBinderTest.java @@ -46,7 +46,7 @@ public class UpdateImageRequestBinderTest extends BinderTestBase { actual ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/images/some-id"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/images/some-id"); assertNotNull(actual, "Binder returned null payload"); Json json = injector.getInstance(Json.class); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/lan/CreateLanRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/lan/CreateLanRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/lan/CreateLanRequestBinderTest.java index a8e4db7..0d2c7f4 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/lan/CreateLanRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/lan/CreateLanRequestBinderTest.java @@ -46,7 +46,7 @@ public class CreateLanRequestBinderTest extends BinderTestBase { actual ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/lans"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/lans"); assertNotNull(actual, "Binder returned null payload"); Json json = injector.getInstance(Json.class); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/lan/UpdateLanRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/lan/UpdateLanRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/lan/UpdateLanRequestBinderTest.java index ed670cc..74a59b1 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/lan/UpdateLanRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/lan/UpdateLanRequestBinderTest.java @@ -46,7 +46,7 @@ public class UpdateLanRequestBinderTest extends BinderTestBase { actual ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/lans/lan-id"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/lans/lan-id"); assertNotNull(actual, "Binder returned null payload"); Json json = injector.getInstance(Json.class); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/nic/CreateNicRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/nic/CreateNicRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/nic/CreateNicRequestBinderTest.java index 5532f55..1067b66 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/nic/CreateNicRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/nic/CreateNicRequestBinderTest.java @@ -48,7 +48,7 @@ public class CreateNicRequestBinderTest extends BinderTestBase { actual ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/servers/server-id/nics"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/servers/server-id/nics"); assertNotNull(actual, "Binder returned null payload"); Json json = injector.getInstance(Json.class); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/nic/UpdateNicRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/nic/UpdateNicRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/nic/UpdateNicRequestBinderTest.java index cea37b1..96cbc38 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/nic/UpdateNicRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/nic/UpdateNicRequestBinderTest.java @@ -47,7 +47,7 @@ public class UpdateNicRequestBinderTest extends BinderTestBase { actual ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/servers/server-id/nics/nic-id"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/servers/server-id/nics/nic-id"); assertNotNull(actual, "Binder returned null payload"); Json json = injector.getInstance(Json.class); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/AttachCdromRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/AttachCdromRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/AttachCdromRequestBinderTest.java index 90854e1..be65745 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/AttachCdromRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/AttachCdromRequestBinderTest.java @@ -48,7 +48,7 @@ public class AttachCdromRequestBinderTest extends BinderTestBase { actual ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/servers/server-id/cdroms"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/servers/server-id/cdroms"); assertNotNull(actual, "Binder returned null payload"); Json json = injector.getInstance(Json.class); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/AttachVolumeRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/AttachVolumeRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/AttachVolumeRequestBinderTest.java index baabfc4..d697ef2 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/AttachVolumeRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/AttachVolumeRequestBinderTest.java @@ -48,7 +48,7 @@ public class AttachVolumeRequestBinderTest extends BinderTestBase { actual ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/servers/server-id/volumes"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/servers/server-id/volumes"); assertNotNull(actual, "Binder returned null payload"); Json json = injector.getInstance(Json.class); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/CreateServerRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/CreateServerRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/CreateServerRequestBinderTest.java index 4346ad1..2e3de27 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/CreateServerRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/CreateServerRequestBinderTest.java @@ -48,7 +48,7 @@ public class CreateServerRequestBinderTest extends BinderTestBase { actual ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/servers"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/servers"); assertNotNull(actual, "Binder returned null payload"); Json json = injector.getInstance(Json.class); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/UpdateServerRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/UpdateServerRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/UpdateServerRequestBinderTest.java index 62cea6b..0ca8eb7 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/UpdateServerRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/server/UpdateServerRequestBinderTest.java @@ -48,7 +48,7 @@ public class UpdateServerRequestBinderTest extends BinderTestBase { actual ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/servers/server-id"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/servers/server-id"); assertNotNull(actual, "Binder returned null payload"); Json json = injector.getInstance(Json.class); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateSnapshotRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateSnapshotRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateSnapshotRequestBinderTest.java index a81bf3f..9353992 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateSnapshotRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateSnapshotRequestBinderTest.java @@ -52,7 +52,7 @@ public class CreateSnapshotRequestBinderTest extends BinderTestBase { expectedPayload.put("name", "test-snapshot"); expectedPayload.put("description", "snapshot desc..."); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/volumes/volume-id/create-snapshot"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/volumes/volume-id/create-snapshot"); assertEquals(request.getPayload().getContentMetadata().getContentType(), MediaType.APPLICATION_FORM_URLENCODED); assertEquals(request.getPayload().getRawContent(), "&" + (new UrlEncodedFormPayload(expectedPayload)).getRawContent()); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateVolumeRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateVolumeRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateVolumeRequestBinderTest.java index 66bf79f..5266151 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateVolumeRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/CreateVolumeRequestBinderTest.java @@ -51,7 +51,7 @@ public class CreateVolumeRequestBinderTest extends BinderTestBase { actual ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/volumes"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/volumes"); assertNotNull(actual, "Binder returned null payload"); Json json = injector.getInstance(Json.class); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/RestoreSnapshotRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/RestoreSnapshotRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/RestoreSnapshotRequestBinderTest.java index 1462a83..1ecf543 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/RestoreSnapshotRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/RestoreSnapshotRequestBinderTest.java @@ -42,7 +42,7 @@ public class RestoreSnapshotRequestBinderTest extends BinderTestBase { binder.createPayload(payload) ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/volumes/volume-id/restore-snapshot"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/volumes/volume-id/restore-snapshot"); assertEquals(request.getPayload().getContentMetadata().getContentType(), MediaType.APPLICATION_FORM_URLENCODED); assertEquals(request.getPayload().getRawContent(), "&snapshotId=snapshot-id"); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/UpdateVolumeRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/UpdateVolumeRequestBinderTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/UpdateVolumeRequestBinderTest.java index 9ae54f5..92b1025 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/UpdateVolumeRequestBinderTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/binder/volume/UpdateVolumeRequestBinderTest.java @@ -48,7 +48,7 @@ public class UpdateVolumeRequestBinderTest extends BinderTestBase { actual ); - assertEquals(request.getEndpoint().getPath(), "/cloudapi/v3/datacenters/datacenter-id/volumes/volume-id"); + assertEquals(request.getEndpoint().getPath(), "/cloudapi/v4/datacenters/datacenter-id/volumes/volume-id"); assertNotNull(actual, "Binder returned null payload"); Json json = injector.getInstance(Json.class); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/compute/ProfitBricksComputeServiceLiveTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/compute/ProfitBricksComputeServiceLiveTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/compute/ProfitBricksComputeServiceLiveTest.java index 3f89fe5..895c56e 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/compute/ProfitBricksComputeServiceLiveTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/compute/ProfitBricksComputeServiceLiveTest.java @@ -32,7 +32,9 @@ import org.jclouds.compute.RunNodesException; import org.jclouds.compute.domain.ExecResponse; import org.jclouds.compute.domain.NodeMetadata; import org.jclouds.compute.domain.Template; +import org.jclouds.compute.domain.TemplateBuilder; import org.jclouds.compute.internal.BaseComputeServiceLiveTest; +import org.jclouds.compute.options.TemplateOptions; import org.jclouds.compute.predicates.NodePredicates; import static org.jclouds.compute.predicates.NodePredicates.inGroup; import org.jclouds.logging.config.LoggingModule; @@ -51,6 +53,14 @@ public class ProfitBricksComputeServiceLiveTest extends BaseComputeServiceLiveTe } @Override + protected TemplateBuilder templateBuilder() { + TemplateOptions authOptions = TemplateOptions.Builder + .authorizePublicKey(keyPair.get("public")) + .overrideLoginPrivateKey(keyPair.get("private")); + return super.templateBuilder().options(authOptions); + } + + @Override protected Module getSshModule() { return new SshjSshClientModule(); } @@ -113,7 +123,7 @@ public class ProfitBricksComputeServiceLiveTest extends BaseComputeServiceLiveTe @Override @Test public void testCreateNodeWithCustomHardware() throws Exception { - Template template = buildTemplate(templateBuilder() + Template template = buildTemplate(templateBuilder().imageNameMatches("Ubuntu").osVersionMatches("1[467]\\.04") .hardwareId("automatic:cores=2;ram=2048;disk=20")); try { NodeMetadata node = getOnlyElement(client.createNodesInGroup(group + "custom", 1, template)); @@ -128,7 +138,7 @@ public class ProfitBricksComputeServiceLiveTest extends BaseComputeServiceLiveTe @Test public void testCreateNodeWithCustomHardwareUsingMins() throws Exception { - Template template = buildTemplate(templateBuilder() + Template template = buildTemplate(templateBuilder().imageNameMatches("Ubuntu").osVersionMatches("1[467]\\.04") .minCores(2).minRam(2048).minDisk(20)); try { NodeMetadata node = getOnlyElement(client.createNodesInGroup(group + "custom", 1, template)); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/features/LanApiLiveTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/features/LanApiLiveTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/features/LanApiLiveTest.java index d49b8e0..beee473 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/features/LanApiLiveTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/features/LanApiLiveTest.java @@ -16,46 +16,55 @@ */ package org.apache.jclouds.profitbricks.rest.features; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; - +import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; import java.net.URI; +import java.util.ArrayList; import java.util.List; - +import org.apache.jclouds.profitbricks.rest.domain.CpuFamily; import org.apache.jclouds.profitbricks.rest.domain.DataCenter; +import org.apache.jclouds.profitbricks.rest.domain.IpBlock; import org.apache.jclouds.profitbricks.rest.domain.Lan; +import org.apache.jclouds.profitbricks.rest.domain.Lan.IpFailover; +import org.apache.jclouds.profitbricks.rest.domain.Location; +import org.apache.jclouds.profitbricks.rest.domain.Nic; +import org.apache.jclouds.profitbricks.rest.domain.Server; import org.apache.jclouds.profitbricks.rest.domain.State; import org.apache.jclouds.profitbricks.rest.internal.BaseProfitBricksLiveTest; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertTrue; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; - @Test(groups = "live", testName = "LanApiLiveTest") public class LanApiLiveTest extends BaseProfitBricksLiveTest { - + private DataCenter dataCenter; private Lan testLan; - + private Server testServer; + private IpBlock testIpBlock; + private Nic testNic; + @BeforeClass public void setupTest() { dataCenter = createDataCenter(); } - + @AfterClass(alwaysRun = true) public void teardownTest() { - if (dataCenter != null) + if (dataCenter != null) { deleteDataCenter(dataCenter.id()); + api.ipBlockApi().delete(testIpBlock.id()); + } } - + @Test public void testCreateLan() { assertNotNull(dataCenter); - + testLan = lanApi().create( Lan.Request.creatingBuilder() .dataCenterId(dataCenter.id()) @@ -65,9 +74,7 @@ public class LanApiLiveTest extends BaseProfitBricksLiveTest { assertRequestCompleted(testLan); assertNotNull(testLan); assertEquals(testLan.properties().name(), "jclouds-lan"); - assertLanAvailable(testLan); } - @Test(dependsOnMethods = "testCreateLan") public void testGetLan() { @@ -84,52 +91,98 @@ public class LanApiLiveTest extends BaseProfitBricksLiveTest { assertNotNull(lans); assertFalse(lans.isEmpty()); assertTrue(Iterables.any(lans, new Predicate<Lan>() { - @Override public boolean apply(Lan input) { + @Override + public boolean apply(Lan input) { return input.id().equals(testLan.id()); } })); } - + @Test(dependsOnMethods = "testCreateLan") public void testUpdateLan() { assertDataCenterAvailable(dataCenter); - + + //reserve an ip for the failover group + testIpBlock = api.ipBlockApi().create(IpBlock.Request.creatingBuilder() + .properties(IpBlock.PropertiesRequest.create("jclouds ipBlock", Location.US_LAS.getId(), 1)).build()); + assertRequestCompleted(testIpBlock); + + //create the failover lan + Lan failoverLan = lanApi().create( + Lan.Request.creatingBuilder() + .dataCenterId(dataCenter.id()) + .name("failover-lan") + .build()); + //creating the server + testServer = api.serverApi().createServer( + Server.Request.creatingBuilder() + .dataCenterId(dataCenter.id()) + .name("jclouds-node") + .cpuFamily(CpuFamily.INTEL_XEON) + .cores(1) + .ram(1024) + .build()); + + assertRequestCompleted(testServer); + + List<String> ips = new ArrayList<String>(); + ips.add(testIpBlock.properties().ips().get(0)); + + //creating the NIC + testNic = api.nicApi().create( + Nic.Request.creatingBuilder() + .dataCenterId(dataCenter.id()) + .serverId(testServer.id()) + .name("failover-nic") + .ips(ips) + .lan(Integer.parseInt(failoverLan.id())) + .build()); + + assertRequestCompleted(testNic); + + List<IpFailover> failovers = new ArrayList<IpFailover>(); + failovers.add(IpFailover.create(testIpBlock.properties().ips().get(0), testNic.id())); + + //update lan with failover group Lan updated = api.lanApi().update( Lan.Request.updatingBuilder() - .dataCenterId(testLan.dataCenterId()) - .id(testLan.id()) - .isPublic(false) + .dataCenterId(failoverLan.dataCenterId()) + .id(failoverLan.id()) + .isPublic(true) + .ipFailover(failovers) .build()); assertRequestCompleted(updated); assertLanAvailable(updated); - - Lan lan = lanApi().get(dataCenter.id(), testLan.id()); - - assertEquals(lan.properties().isPublic(), false); + + Lan lan = lanApi().get(dataCenter.id(), failoverLan.id()); + + assertTrue(lan.properties().isPublic()); + assertNotNull(lan.properties().ipFailover()); } - + @Test(dependsOnMethods = "testUpdateLan") public void testDeleteLan() { URI uri = lanApi().delete(testLan.dataCenterId(), testLan.id()); assertRequestCompleted(uri); assertLanRemoved(testLan); } - + private void assertLanAvailable(Lan lan) { assertPredicate(new Predicate<Lan>() { @Override public boolean apply(Lan testLan) { Lan lan = lanApi().get(testLan.dataCenterId(), testLan.id()); - - if (lan == null || lan.metadata() == null) + + if (lan == null || lan.metadata() == null) { return false; - + } + return lan.metadata().state() == State.AVAILABLE; } }, lan); } - + private void assertLanRemoved(Lan lan) { assertPredicate(new Predicate<Lan>() { @Override @@ -138,9 +191,9 @@ public class LanApiLiveTest extends BaseProfitBricksLiveTest { } }, lan); } - + private LanApi lanApi() { return api.lanApi(); } - + } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/features/VolumeApiLiveTest.java ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/features/VolumeApiLiveTest.java b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/features/VolumeApiLiveTest.java index e6f244a..3843172 100644 --- a/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/features/VolumeApiLiveTest.java +++ b/profitbricks-rest/src/test/java/org/apache/jclouds/profitbricks/rest/features/VolumeApiLiveTest.java @@ -17,20 +17,15 @@ package org.apache.jclouds.profitbricks.rest.features; import com.google.common.base.Predicate; - import java.net.URI; import java.util.HashSet; import java.util.List; import org.apache.jclouds.profitbricks.rest.domain.DataCenter; -import org.apache.jclouds.profitbricks.rest.domain.Image; -import org.apache.jclouds.profitbricks.rest.domain.LicenceType; -import static org.apache.jclouds.profitbricks.rest.domain.Location.US_LAS; import org.apache.jclouds.profitbricks.rest.domain.ProvisioningState; import org.apache.jclouds.profitbricks.rest.domain.Snapshot; import org.apache.jclouds.profitbricks.rest.domain.State; import org.apache.jclouds.profitbricks.rest.domain.Volume; import org.apache.jclouds.profitbricks.rest.domain.VolumeType; -import org.apache.jclouds.profitbricks.rest.domain.options.DepthOptions; import org.apache.jclouds.profitbricks.rest.ids.VolumeRef; import org.apache.jclouds.profitbricks.rest.internal.BaseProfitBricksLiveTest; import static org.testng.Assert.assertEquals; @@ -62,22 +57,6 @@ public class VolumeApiLiveTest extends BaseProfitBricksLiveTest { @Test public void testCreateVolume() { assertNotNull(dataCenter); - - List<Image> images = api.imageApi().getList(new DepthOptions().depth(5)); - - Image testImage = null; - - for (Image image : images) { - if (image.metadata().state() == State.AVAILABLE - && image.properties().isPublic() - && image.properties().imageType() == Image.Type.HDD - && image.properties().location() == US_LAS - && image.properties().licenceType() == LicenceType.LINUX - && (testImage == null || testImage.properties().size() > image.properties().size())) { - testImage = image; - } - } - HashSet<String> sshKeys = new HashSet<String>(); sshKeys.add("hQGOEJeFL91EG3+l9TtRbWNjzhDVHeLuL3NWee6bekA="); @@ -86,9 +65,8 @@ public class VolumeApiLiveTest extends BaseProfitBricksLiveTest { .dataCenterId(dataCenter.id()) .name("jclouds-volume") .size(4) - .licenceType(LicenceType.LINUX) + .imageAlias("ubuntu:latest") .type(VolumeType.SSD) - .image(testImage.id()) .sshKeys(sshKeys) .build()); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/resources/ipblock/get.json ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/resources/ipblock/get.json b/profitbricks-rest/src/test/resources/ipblock/get.json index 4893b25..d57fa65 100644 --- a/profitbricks-rest/src/test/resources/ipblock/get.json +++ b/profitbricks-rest/src/test/resources/ipblock/get.json @@ -1,7 +1,7 @@ { "id": "6c53515b-8557-44a8-9339-ea34e7e5baa2", "type": "ipblock", - "href": "https://api.profitbricks.com/cloudapi/v3/ipblocks/6c53515b-8557-44a8-9339-ea34e7e5baa2", + "href": "https://api.profitbricks.com/cloudapi/v4/ipblocks/6c53515b-8557-44a8-9339-ea34e7e5baa2", "metadata": { "createdDate": "2016-06-18T21:38:20Z", "createdBy": "[email protected]", http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/resources/ipblock/list.depth-5.json ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/resources/ipblock/list.depth-5.json b/profitbricks-rest/src/test/resources/ipblock/list.depth-5.json index 70b96f3..37d0060 100644 --- a/profitbricks-rest/src/test/resources/ipblock/list.depth-5.json +++ b/profitbricks-rest/src/test/resources/ipblock/list.depth-5.json @@ -1,11 +1,11 @@ { "id": "ipblocks", "type": "collection", - "href": "https://api.profitbricks.com/cloudapi/v3/ipblocks", + "href": "https://api.profitbricks.com/cloudapi/v4/ipblocks", "items": [{ "id": "6c53515b-8557-44a8-9339-ea34e7e5baa2", "type": "ipblock", - "href": "https://api.profitbricks.com/cloudapi/v3/ipblocks/6c53515b-8557-44a8-9339-ea34e7e5baa2", + "href": "https://api.profitbricks.com/cloudapi/v4/ipblocks/6c53515b-8557-44a8-9339-ea34e7e5baa2", "metadata": { "createdDate": "2016-06-18T21:38:20Z", "createdBy": "[email protected]", @@ -23,7 +23,7 @@ }, { "id": "b6f3be55-d7e1-4a62-835a-0c4a64dda433", "type": "ipblock", - "href": "https://api.profitbricks.com/cloudapi/v3/ipblocks/b6f3be55-d7e1-4a62-835a-0c4a64dda433", + "href": "https://api.profitbricks.com/cloudapi/v4/ipblocks/b6f3be55-d7e1-4a62-835a-0c4a64dda433", "metadata": { "createdDate": "2016-06-09T21:27:26Z", "createdBy": "[email protected]", http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/71511bb8/profitbricks-rest/src/test/resources/ipblock/list.json ---------------------------------------------------------------------- diff --git a/profitbricks-rest/src/test/resources/ipblock/list.json b/profitbricks-rest/src/test/resources/ipblock/list.json index 7c0a71e..6e1c64c 100644 --- a/profitbricks-rest/src/test/resources/ipblock/list.json +++ b/profitbricks-rest/src/test/resources/ipblock/list.json @@ -1,14 +1,14 @@ { "id": "ipblocks", "type": "collection", - "href": "https://api.profitbricks.com/cloudapi/v3/ipblocks", + "href": "https://api.profitbricks.com/cloudapi/v4/ipblocks", "items": [{ "id": "6c53515b-8557-44a8-9339-ea34e7e5baa2", "type": "ipblock", - "href": "https://api.profitbricks.com/cloudapi/v3/ipblocks/6c53515b-8557-44a8-9339-ea34e7e5baa2" + "href": "https://api.profitbricks.com/cloudapi/v4/ipblocks/6c53515b-8557-44a8-9339-ea34e7e5baa2" }, { "id": "b6f3be55-d7e1-4a62-835a-0c4a64dda433", "type": "ipblock", - "href": "https://api.profitbricks.com/cloudapi/v3/ipblocks/b6f3be55-d7e1-4a62-835a-0c4a64dda433" + "href": "https://api.profitbricks.com/cloudapi/v4/ipblocks/b6f3be55-d7e1-4a62-835a-0c4a64dda433" }] } \ No newline at end of file
