You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by de...@apache.org on 2016/02/19 16:33:20 UTC
[10/35] jclouds git commit: JCLOUDS-702: JClouds ProfitBricks
provider - Storage API
JCLOUDS-702: JClouds ProfitBricks provider - Storage API
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/2a219a99
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/2a219a99
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/2a219a99
Branch: refs/heads/master
Commit: 2a219a994869ebf6012371d4188f23bbdebd3bcf
Parents: ee24ddb
Author: Reijhanniel Jearl Campos <de...@gmail.com>
Authored: Thu Feb 5 21:45:03 2015 +0800
Committer: Ignasi Barrera <na...@apache.org>
Committed: Thu Feb 5 14:53:10 2015 +0100
----------------------------------------------------------------------
.../jclouds/profitbricks/ProfitBricksApi.java | 4 +
.../profitbricks/ProfitBricksApiMetadata.java | 30 +-
.../ProfitBricksProviderMetadata.java | 18 +-
.../binder/BaseProfitBricksRequestBinder.java | 6 +-
.../CreateDataCenterRequestBinder.java | 10 +-
.../server/CreateServerRequestBinder.java | 46 +--
.../server/UpdateServerRequestBinder.java | 42 +--
.../ConnectStorageToServerRequestBinder.java | 45 +++
.../storage/CreateStorageRequestBinder.java | 46 +++
.../storage/UpdateStorageRequestBinder.java | 47 +++
.../internal/ProvisioningStatusAware.java | 2 +-
.../ProvisioningStatusPollingPredicate.java | 9 +-
.../config/ProfitBricksHttpApiModule.java | 8 +-
.../profitbricks/domain/AvailabilityZone.java | 6 +-
.../jclouds/profitbricks/domain/DataCenter.java | 94 +++--
.../jclouds/profitbricks/domain/Location.java | 8 +-
.../profitbricks/domain/ProvisioningState.java | 4 +-
.../org/jclouds/profitbricks/domain/Server.java | 160 +++++----
.../profitbricks/domain/ServiceFault.java | 28 +-
.../jclouds/profitbricks/domain/Storage.java | 355 +++++++++++++++++++
.../profitbricks/features/DataCenterApi.java | 12 +-
.../profitbricks/features/ServerApi.java | 74 ++--
.../profitbricks/features/StorageApi.java | 136 +++++++
.../handlers/ProfitBricksHttpErrorHandler.java | 53 +--
...usFromPayloadHttpCommandExecutorService.java | 94 +++--
.../ProfitBricksSoapMessageEnvelope.java | 6 +-
.../parser/BaseProfitBricksResponseHandler.java | 21 +-
.../parser/RequestIdOnlyResponseHandler.java | 14 +-
.../parser/ServiceFaultResponseHandler.java | 19 +-
.../BaseDataCenterResponseHandler.java | 11 +-
.../DataCenterInfoResponseHandler.java | 74 +++-
.../DataCenterListResponseHandler.java | 16 +-
.../parser/image/BaseImageResponseHandler.java | 7 +-
.../parser/image/ImageInfoResponseHandler.java | 6 +-
.../parser/image/ImageListResponseHandler.java | 8 +-
.../server/BaseServerResponseHandler.java | 85 +++--
.../server/ServerIdOnlyResponseHandler.java | 14 +-
.../server/ServerInfoResponseHandler.java | 12 +-
.../server/ServerListResponseHandler.java | 12 +-
.../GetProvisioningStateResponseHandler.java | 9 +-
.../storage/BaseStorageResponseHandler.java | 83 +++++
.../storage/StorageIdOnlyResponseHandler.java | 46 +++
.../storage/StorageInfoResponseHandler.java | 50 +++
.../storage/StorageListResponseHandler.java | 54 +++
.../profitbricks/BaseProfitBricksLiveTest.java | 4 +-
.../CreateDataCenterRequestBinderTest.java | 12 +-
.../UpdateDataCenterRequestBinderTest.java | 12 +-
.../server/CreateServerRequestBinderTest.java | 46 +--
.../server/UpdateServerRequestBinderTest.java | 40 +--
...ConnectStorageToServerRequestBinderTest.java | 55 +++
.../storage/CreateStorageRequestBinderTest.java | 56 +++
.../storage/UpdateStorageRequestBinderTest.java | 53 +++
.../ProvisioningStatusPollingPredicateTest.java | 68 +++-
.../profitbricks/domain/ServerBuilderTest.java | 190 +++++-----
.../features/DataCenterApiMockTest.java | 19 +-
.../profitbricks/features/ImageApiMockTest.java | 2 +-
.../features/ServerApiLiveTest.java | 90 ++---
.../features/ServerApiMockTest.java | 209 ++++++-----
.../features/StorageApiLiveTest.java | 167 +++++++++
.../features/StorageApiMockTest.java | 285 +++++++++++++++
...omPayloadHttpCommandExecutorServiceTest.java | 45 +++
.../ProfitBricksSoapMessageEnvelopeTest.java | 6 +-
.../http/parser/BaseResponseHandlerTest.java | 4 +-
.../RequestIdOnlyResponseHandlerTest.java | 24 +-
.../parser/ServiceFaultResponseHandlerTest.java | 10 +-
.../DataCenterInfoResponseHandlerTest.java | 61 +++-
.../DataCenterListResponseHandlerTest.java | 4 +-
.../image/ImageInfoResponseHandlerTest.java | 44 +--
.../image/ImageListResponseHandlerTest.java | 248 ++++++-------
.../server/ServerIdOnlyResponseHandlerTest.java | 8 +-
.../server/ServerInfoResponseHandlerTest.java | 55 +--
.../server/ServerListResponseHandlerTest.java | 80 ++---
...GetProvisioningStateResponseHandlerTest.java | 114 +++---
.../StorageIdOnlyResponseHandlerTest.java | 42 +++
.../storage/StorageInfoResponseHandlerTest.java | 66 ++++
.../storage/StorageListResponseHandlerTest.java | 80 +++++
.../internal/BaseProfitBricksMockTest.java | 24 +-
.../test/resources/datacenter/datacenter.xml | 2 +-
.../src/test/resources/fault-404.xml | 2 +-
.../src/test/resources/fault-413.xml | 17 +
.../src/test/resources/maintenance-503.html | 67 ++++
.../resources/server/server-state-inprocess.xml | 28 ++
.../test/resources/storage/storage-connect.xml | 13 +
.../test/resources/storage/storage-create.xml | 14 +
.../test/resources/storage/storage-delete.xml | 13 +
.../resources/storage/storage-disconnect.xml | 13 +
.../storage/storage-state-inprocess.xml | 23 ++
.../test/resources/storage/storage-update.xml | 13 +
.../src/test/resources/storage/storage.xml | 23 ++
.../src/test/resources/storage/storages.xml | 37 ++
90 files changed, 3279 insertions(+), 1093 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksApi.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksApi.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksApi.java
index 7ab121a..4cfe6e8 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksApi.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksApi.java
@@ -21,6 +21,7 @@ import java.io.Closeable;
import org.jclouds.profitbricks.features.DataCenterApi;
import org.jclouds.profitbricks.features.ImageApi;
import org.jclouds.profitbricks.features.ServerApi;
+import org.jclouds.profitbricks.features.StorageApi;
import org.jclouds.rest.annotations.Delegate;
public interface ProfitBricksApi extends Closeable {
@@ -33,4 +34,7 @@ public interface ProfitBricksApi extends Closeable {
@Delegate
ServerApi serverApi();
+
+ @Delegate
+ StorageApi storageApi();
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksApiMetadata.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksApiMetadata.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksApiMetadata.java
index f51dc5b..205b246 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksApiMetadata.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksApiMetadata.java
@@ -53,29 +53,29 @@ public class ProfitBricksApiMetadata extends BaseHttpApiMetadata<ProfitBricksApi
public static class Builder extends BaseHttpApiMetadata.Builder<ProfitBricksApi, Builder> {
protected Builder() {
- id("profitbricks")
- .name("ProfitBricks API")
- .identityName("API Username")
- .credentialName("API Password")
- .documentation(URI.create("https://www.profitbricks.com/sites/default/files/profitbricks_api_1_3.pdf"))
- .defaultEndpoint("https://api.profitbricks.com/1.3")
- .version("1.3")
- // .view(ComputeServiceContext.class)
- .defaultProperties(ProfitBricksApiMetadata.defaultProperties())
- .defaultModules(ImmutableSet.<Class<? extends Module>>of(
- ProfitBricksHttpApiModule.class,
- ProfitBricksHttpCommandExecutorServiceModule.class
- ));
+ id("profitbricks")
+ .name("ProfitBricks API")
+ .identityName("API Username")
+ .credentialName("API Password")
+ .documentation(URI.create("https://www.profitbricks.com/sites/default/files/profitbricks_api_1_3.pdf"))
+ .defaultEndpoint("https://api.profitbricks.com/1.3")
+ .version("1.3")
+ // .view(ComputeServiceContext.class)
+ .defaultProperties(ProfitBricksApiMetadata.defaultProperties())
+ .defaultModules(ImmutableSet.<Class<? extends Module>>of(
+ ProfitBricksHttpApiModule.class,
+ ProfitBricksHttpCommandExecutorServiceModule.class
+ ));
}
@Override
public ProfitBricksApiMetadata build() {
- return new ProfitBricksApiMetadata(this);
+ return new ProfitBricksApiMetadata(this);
}
@Override
protected Builder self() {
- return this;
+ return this;
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksProviderMetadata.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksProviderMetadata.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksProviderMetadata.java
index d66ed15..9ecfbc1 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksProviderMetadata.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/ProfitBricksProviderMetadata.java
@@ -44,23 +44,23 @@ public class ProfitBricksProviderMetadata extends BaseProviderMetadata {
public static class Builder extends BaseProviderMetadata.Builder {
protected Builder() {
- id("profitbricks")
- .name("ProfitBricks Cloud Compute 2.0")
- .homepage(URI.create("http://www.profitbricks.com"))
- .console(URI.create("https://my.profitbricks.com/dashboard/dcdr2/"))
- .linkedServices("profitbricks")
- .apiMetadata(new ProfitBricksApiMetadata());
+ id("profitbricks")
+ .name("ProfitBricks Cloud Compute 2.0")
+ .homepage(URI.create("http://www.profitbricks.com"))
+ .console(URI.create("https://my.profitbricks.com/dashboard/dcdr2/"))
+ .linkedServices("profitbricks")
+ .apiMetadata(new ProfitBricksApiMetadata());
}
@Override
public ProfitBricksProviderMetadata build() {
- return new ProfitBricksProviderMetadata(this);
+ return new ProfitBricksProviderMetadata(this);
}
@Override
public Builder fromProviderMetadata(ProviderMetadata in) {
- super.fromProviderMetadata(in);
- return this;
+ super.fromProviderMetadata(in);
+ return this;
}
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/BaseProfitBricksRequestBinder.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/BaseProfitBricksRequestBinder.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/BaseProfitBricksRequestBinder.java
index 8c2d36b..2b842ff 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/BaseProfitBricksRequestBinder.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/BaseProfitBricksRequestBinder.java
@@ -55,11 +55,11 @@ public abstract class BaseProfitBricksRequestBinder<T> implements MapBinder {
protected abstract String createPayload(T payload);
- protected String formatIfNotEmpty(String pattern, Object param) {
- return Strings.isNullOrEmpty(nullableToString( param )) ? "" : String.format(pattern, param);
+ protected static String formatIfNotEmpty(String pattern, Object param) {
+ return Strings.isNullOrEmpty(nullableToString(param)) ? "" : String.format(pattern, param);
}
- protected String nullableToString(Object object) {
+ protected static String nullableToString(Object object) {
return object == null ? "" : object.toString();
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/datacenter/CreateDataCenterRequestBinder.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/datacenter/CreateDataCenterRequestBinder.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/datacenter/CreateDataCenterRequestBinder.java
index 8696c0e..8a07b0a 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/datacenter/CreateDataCenterRequestBinder.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/datacenter/CreateDataCenterRequestBinder.java
@@ -33,11 +33,11 @@ public class CreateDataCenterRequestBinder extends BaseProfitBricksRequestBinder
@Override
protected String createPayload(DataCenter.Request.CreatePayload payload) {
requestBuilder.append("<ws:createDataCenter>")
- .append("<request>")
- .append(format("<dataCenterName>%s</dataCenterName>", payload.name()))
- .append(format("<location>%s</location>", payload.location().value()))
- .append("</request>")
- .append("</ws:createDataCenter>");
+ .append("<request>")
+ .append(format("<dataCenterName>%s</dataCenterName>", payload.name()))
+ .append(format("<location>%s</location>", payload.location().value()))
+ .append("</request>")
+ .append("</ws:createDataCenter>");
return requestBuilder.toString();
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/server/CreateServerRequestBinder.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/server/CreateServerRequestBinder.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/server/CreateServerRequestBinder.java
index 4acf33b..b836ceb 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/server/CreateServerRequestBinder.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/server/CreateServerRequestBinder.java
@@ -25,32 +25,32 @@ public class CreateServerRequestBinder extends BaseProfitBricksRequestBinder<Ser
protected final StringBuilder requestBuilder;
CreateServerRequestBinder() {
- super( "server" );
- this.requestBuilder = new StringBuilder( 128 * 4 );
+ super("server");
+ this.requestBuilder = new StringBuilder(128 * 4);
}
@Override
- protected String createPayload( Server.Request.CreatePayload payload ) {
- requestBuilder.append( "<ws:createServer>" )
- .append( "<request>" )
- .append( format( "<dataCenterId>%s</dataCenterId>", payload.dataCenterId() ) )
- .append( format( "<cores>%s</cores>", payload.cores() ) )
- .append( format( "<ram>%s</ram>", payload.ram() ) )
- .append( formatIfNotEmpty( "<serverName>%s</serverName>", payload.name() ) )
- .append( formatIfNotEmpty( "<bootFromStorageId>%s</bootFromStorageId>", payload.bootFromStorageId() ) )
- .append( formatIfNotEmpty( "<bootFromImageId>%s</bootFromImageId>", payload.bootFromImageId() ) )
- .append( formatIfNotEmpty( "<internetAccess>%s</internetAccess>", payload.hasInternetAccess() ) )
- .append( formatIfNotEmpty( "<lanId>%s</lanId>", payload.lanId() ) )
- .append( formatIfNotEmpty( "<osType>%s</osType>", payload.osType() ) )
- .append( formatIfNotEmpty( "<availabilityZone>%s</availabilityZone>", payload.availabilityZone() ) )
- .append( formatIfNotEmpty( "<cpuHotPlug>%s</cpuHotPlug>", payload.isCpuHotPlug() ) )
- .append( formatIfNotEmpty( "<ramHotPlug>%s</ramHotPlug>", payload.isRamHotPlug() ) )
- .append( formatIfNotEmpty( "<nicHotPlug>%s</nicHotPlug>", payload.isNicHotPlug() ) )
- .append( formatIfNotEmpty( "<nicHotUnPlug>%s</nicHotUnPlug>", payload.isNicHotUnPlug() ) )
- .append( formatIfNotEmpty( "<discVirtioHotPlug>%s</discVirtioHotPlug>", payload.isDiscVirtioHotPlug() ) )
- .append( formatIfNotEmpty( "<discVirtioHotUnPlug>%s</discVirtioHotUnPlug>", payload.isDiscVirtioHotUnPlug() ) )
- .append( "</request>" )
- .append( "</ws:createServer>" );
+ protected String createPayload(Server.Request.CreatePayload payload) {
+ requestBuilder.append("<ws:createServer>")
+ .append("<request>")
+ .append(format("<dataCenterId>%s</dataCenterId>", payload.dataCenterId()))
+ .append(format("<cores>%s</cores>", payload.cores()))
+ .append(format("<ram>%s</ram>", payload.ram()))
+ .append(formatIfNotEmpty("<serverName>%s</serverName>", payload.name()))
+ .append(formatIfNotEmpty("<bootFromStorageId>%s</bootFromStorageId>", payload.bootFromStorageId()))
+ .append(formatIfNotEmpty("<bootFromImageId>%s</bootFromImageId>", payload.bootFromImageId()))
+ .append(formatIfNotEmpty("<internetAccess>%s</internetAccess>", payload.hasInternetAccess()))
+ .append(formatIfNotEmpty("<lanId>%s</lanId>", payload.lanId()))
+ .append(formatIfNotEmpty("<osType>%s</osType>", payload.osType()))
+ .append(formatIfNotEmpty("<availabilityZone>%s</availabilityZone>", payload.availabilityZone()))
+ .append(formatIfNotEmpty("<cpuHotPlug>%s</cpuHotPlug>", payload.isCpuHotPlug()))
+ .append(formatIfNotEmpty("<ramHotPlug>%s</ramHotPlug>", payload.isRamHotPlug()))
+ .append(formatIfNotEmpty("<nicHotPlug>%s</nicHotPlug>", payload.isNicHotPlug()))
+ .append(formatIfNotEmpty("<nicHotUnPlug>%s</nicHotUnPlug>", payload.isNicHotUnPlug()))
+ .append(formatIfNotEmpty("<discVirtioHotPlug>%s</discVirtioHotPlug>", payload.isDiscVirtioHotPlug()))
+ .append(formatIfNotEmpty("<discVirtioHotUnPlug>%s</discVirtioHotUnPlug>", payload.isDiscVirtioHotUnPlug()))
+ .append("</request>")
+ .append("</ws:createServer>");
return requestBuilder.toString();
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/server/UpdateServerRequestBinder.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/server/UpdateServerRequestBinder.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/server/UpdateServerRequestBinder.java
index d051b88..c12ae21 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/server/UpdateServerRequestBinder.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/server/UpdateServerRequestBinder.java
@@ -25,31 +25,31 @@ public class UpdateServerRequestBinder extends BaseProfitBricksRequestBinder<Ser
protected final StringBuilder requestBuilder;
UpdateServerRequestBinder() {
- super( "server" );
- this.requestBuilder = new StringBuilder( 128 * 4 );
+ super("server");
+ this.requestBuilder = new StringBuilder(128 * 4);
}
@Override
- protected String createPayload( Server.Request.UpdatePayload payload ) {
- requestBuilder.append( "<ws:updateServer>" )
- .append( "<request>" )
- .append( format( "<serverId>%s</serverId>", payload.id() ) )
- .append( format( "<cores>%s</cores>", payload.cores() ) )
- .append( format( "<ram>%s</ram>", payload.ram() ) )
- .append( formatIfNotEmpty( "<serverName>%s</serverName>", payload.name() ) )
- .append( formatIfNotEmpty( "<bootFromStorageId>%s</bootFromStorageId>", payload.bootFromStorageId() ) )
- .append( formatIfNotEmpty( "<bootFromImageId>%s</bootFromImageId>", payload.bootFromImageId() ) )
- .append( formatIfNotEmpty( "<osType>%s</osType>", payload.osType() ) )
- .append( formatIfNotEmpty( "<availabilityZone>%s</availabilityZone>", payload.availabilityZone() ) )
- .append( formatIfNotEmpty( "<cpuHotPlug>%s</cpuHotPlug>", payload.isCpuHotPlug() ) )
- .append( formatIfNotEmpty( "<ramHotPlug>%s</ramHotPlug>", payload.isRamHotPlug() ) )
- .append( formatIfNotEmpty( "<nicHotPlug>%s</nicHotPlug>", payload.isNicHotPlug() ) )
- .append( formatIfNotEmpty( "<nicHotUnPlug>%s</nicHotUnPlug>", payload.isNicHotUnPlug() ) )
- .append( formatIfNotEmpty( "<discVirtioHotPlug>%s</discVirtioHotPlug>", payload.isDiscVirtioHotPlug() ) )
- .append( formatIfNotEmpty( "<discVirtioHotUnPlug>%s</discVirtioHotUnPlug>", payload.isDiscVirtioHotUnPlug() ) )
- .append( "</request>" )
- .append( "</ws:updateServer>" );
+ protected String createPayload(Server.Request.UpdatePayload payload) {
+ requestBuilder.append("<ws:updateServer>")
+ .append("<request>")
+ .append(format("<serverId>%s</serverId>", payload.id()))
+ .append(format("<cores>%s</cores>", payload.cores()))
+ .append(format("<ram>%s</ram>", payload.ram()))
+ .append(formatIfNotEmpty("<serverName>%s</serverName>", payload.name()))
+ .append(formatIfNotEmpty("<bootFromStorageId>%s</bootFromStorageId>", payload.bootFromStorageId()))
+ .append(formatIfNotEmpty("<bootFromImageId>%s</bootFromImageId>", payload.bootFromImageId()))
+ .append(formatIfNotEmpty("<osType>%s</osType>", payload.osType()))
+ .append(formatIfNotEmpty("<availabilityZone>%s</availabilityZone>", payload.availabilityZone()))
+ .append(formatIfNotEmpty("<cpuHotPlug>%s</cpuHotPlug>", payload.isCpuHotPlug()))
+ .append(formatIfNotEmpty("<ramHotPlug>%s</ramHotPlug>", payload.isRamHotPlug()))
+ .append(formatIfNotEmpty("<nicHotPlug>%s</nicHotPlug>", payload.isNicHotPlug()))
+ .append(formatIfNotEmpty("<nicHotUnPlug>%s</nicHotUnPlug>", payload.isNicHotUnPlug()))
+ .append(formatIfNotEmpty("<discVirtioHotPlug>%s</discVirtioHotPlug>", payload.isDiscVirtioHotPlug()))
+ .append(formatIfNotEmpty("<discVirtioHotUnPlug>%s</discVirtioHotUnPlug>", payload.isDiscVirtioHotUnPlug()))
+ .append("</request>")
+ .append("</ws:updateServer>");
return requestBuilder.toString();
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/ConnectStorageToServerRequestBinder.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/ConnectStorageToServerRequestBinder.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/ConnectStorageToServerRequestBinder.java
new file mode 100644
index 0000000..2c2e08d
--- /dev/null
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/ConnectStorageToServerRequestBinder.java
@@ -0,0 +1,45 @@
+/*
+ * 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.profitbricks.binder.storage;
+
+import static java.lang.String.format;
+
+import org.jclouds.profitbricks.binder.BaseProfitBricksRequestBinder;
+import org.jclouds.profitbricks.domain.Storage;
+
+public class ConnectStorageToServerRequestBinder extends BaseProfitBricksRequestBinder<Storage.Request.ConnectPayload> {
+
+ protected final StringBuilder requestBuilder;
+
+ ConnectStorageToServerRequestBinder() {
+ super("storage");
+ this.requestBuilder = new StringBuilder(128 * 2);
+ }
+
+ @Override
+ protected String createPayload(Storage.Request.ConnectPayload payload) {
+ requestBuilder.append("<ws:connectStorageToServer>")
+ .append("<request>")
+ .append(format("<storageId>%s</storageId>", payload.storageId()))
+ .append(format("<serverId>%s</serverId>", payload.serverId()))
+ .append(formatIfNotEmpty("<busType>%s</busType>", payload.busType()))
+ .append(formatIfNotEmpty("<deviceNumber>%s</deviceNumber>", payload.deviceNumber()))
+ .append("</request>")
+ .append("</ws:connectStorageToServer>");
+ return requestBuilder.toString();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/CreateStorageRequestBinder.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/CreateStorageRequestBinder.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/CreateStorageRequestBinder.java
new file mode 100644
index 0000000..acfb6f3
--- /dev/null
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/CreateStorageRequestBinder.java
@@ -0,0 +1,46 @@
+/*
+ * 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.profitbricks.binder.storage;
+
+import static java.lang.String.format;
+import org.jclouds.profitbricks.binder.BaseProfitBricksRequestBinder;
+import org.jclouds.profitbricks.domain.Storage;
+
+public class CreateStorageRequestBinder extends BaseProfitBricksRequestBinder<Storage.Request.CreatePayload> {
+
+ protected final StringBuilder requestBuilder;
+
+ CreateStorageRequestBinder() {
+ super("storage");
+ this.requestBuilder = new StringBuilder(128 * 2);
+ }
+
+ @Override
+ protected String createPayload(Storage.Request.CreatePayload payload) {
+ requestBuilder.append("<ws:createStorage>")
+ .append("<request>")
+ .append(format("<dataCenterId>%s</dataCenterId>", payload.dataCenterId()))
+ .append(formatIfNotEmpty("<storageName>%s</storageName>", payload.name()))
+ .append(format("<size>%.0f</size>", payload.size()))
+ .append(formatIfNotEmpty("<mountImageId>%s</mountImageId>", payload.mountImageId()))
+ .append(formatIfNotEmpty("<profitBricksImagePassword>%s</profitBricksImagePassword>", payload.profitBricksImagePassword()))
+ .append("</request>")
+ .append("</ws:createStorage>");
+ return requestBuilder.toString();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/UpdateStorageRequestBinder.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/UpdateStorageRequestBinder.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/UpdateStorageRequestBinder.java
new file mode 100644
index 0000000..9a80b83
--- /dev/null
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/binder/storage/UpdateStorageRequestBinder.java
@@ -0,0 +1,47 @@
+/*
+ * 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.profitbricks.binder.storage;
+
+import static java.lang.String.format;
+import org.jclouds.profitbricks.binder.BaseProfitBricksRequestBinder;
+import org.jclouds.profitbricks.domain.Storage;
+
+public class UpdateStorageRequestBinder extends BaseProfitBricksRequestBinder<Storage.Request.UpdatePayload> {
+
+ protected final StringBuilder requestBuilder;
+
+ UpdateStorageRequestBinder() {
+ super("storage");
+ this.requestBuilder = new StringBuilder(128 * 2);
+ }
+
+ @Override
+ protected String createPayload(Storage.Request.UpdatePayload payload) {
+ requestBuilder
+ .append("<ws:updateStorage>")
+ .append("<request>")
+ .append(format("<storageId>%s</storageId>", payload.id()))
+ .append(formatIfNotEmpty("<size>%.0f</size>", payload.size()))
+ .append(formatIfNotEmpty("<storageName>%s</storageName>", payload.name()))
+ .append(formatIfNotEmpty("<mountImageId>%s</mountImageId>", payload.mountImageId()))
+ .append("</request>")
+ .append("</ws:updateStorage>");
+
+ return requestBuilder.toString();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusAware.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusAware.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusAware.java
index 5056243..f573eb0 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusAware.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusAware.java
@@ -23,5 +23,5 @@ package org.jclouds.profitbricks.compute.internal;
*/
public enum ProvisioningStatusAware {
- DATACENTER, SERVER;
+ DATACENTER, SERVER, STORAGE;
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusPollingPredicate.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusPollingPredicate.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusPollingPredicate.java
index 73db33f..8a8a787 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusPollingPredicate.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusPollingPredicate.java
@@ -26,9 +26,8 @@ import com.google.common.base.Predicate;
/**
* A custom predicate for waiting until a virtual resource satisfies the given expected status
* <p>
- * Performing api requests on a datacenter that is not {@link ProvisioningState#AVAILABLE} is not allowed. On some
- * cases, the API user gets blocked from further requests, and will then need to contact tech support for api lock
- * release.
+ * Performing api requests on a datacenter that is not {@link ProvisioningState#AVAILABLE} is not allowed. On some cases, the API user gets
+ * blocked from further requests, and will then need to contact tech support for api lock release.
*/
public class ProvisioningStatusPollingPredicate implements Predicate<String> {
@@ -49,7 +48,9 @@ public class ProvisioningStatusPollingPredicate implements Predicate<String> {
case DATACENTER:
return expect == api.dataCenterApi().getDataCenterState(input);
case SERVER:
- return expect == api.serverApi().getServer( input ).state();
+ return expect == api.serverApi().getServer(input).state();
+ case STORAGE:
+ return expect == api.storageApi().getStorage(input).state();
default:
throw new IllegalArgumentException("Unknown domain '" + domain + "'");
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/config/ProfitBricksHttpApiModule.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/config/ProfitBricksHttpApiModule.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/config/ProfitBricksHttpApiModule.java
index 57728be..f95b1b3 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/config/ProfitBricksHttpApiModule.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/config/ProfitBricksHttpApiModule.java
@@ -55,14 +55,14 @@ public class ProfitBricksHttpApiModule extends HttpApiModule<ProfitBricksApi> {
@Override
protected void configure() {
- install(new SSLModule());
- bind(HttpCommandExecutorService.class).to(ResponseStatusFromPayloadHttpCommandExecutorService.class)
- .in(Scopes.SINGLETON);
+ install(new SSLModule());
+ bind(HttpCommandExecutorService.class).to(ResponseStatusFromPayloadHttpCommandExecutorService.class)
+ .in(Scopes.SINGLETON);
}
@Provides
public ParseSax<ServiceFault> serviceFaultParser(ParseSax.Factory factory, Injector injector) {
- return factory.create(injector.getInstance(ServiceFaultResponseHandler.class));
+ return factory.create(injector.getInstance(ServiceFaultResponseHandler.class));
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/AvailabilityZone.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/AvailabilityZone.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/AvailabilityZone.java
index b582d69..97cac69 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/AvailabilityZone.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/AvailabilityZone.java
@@ -24,10 +24,10 @@ public enum AvailabilityZone {
return name();
}
- public static AvailabilityZone fromValue( String v ) {
+ public static AvailabilityZone fromValue(String v) {
try {
- return valueOf( v );
- } catch ( Exception ex ) {
+ return valueOf(v);
+ } catch (Exception ex) {
return UNRECOGNIZED;
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/DataCenter.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/DataCenter.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/DataCenter.java
index d5f9893..a24d84b 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/DataCenter.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/DataCenter.java
@@ -19,30 +19,43 @@ package org.jclouds.profitbricks.domain;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Strings.isNullOrEmpty;
+import java.util.List;
import java.util.regex.Pattern;
import org.jclouds.javax.annotation.Nullable;
import com.google.auto.value.AutoValue;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
@AutoValue
public abstract class DataCenter {
public abstract String id();
- @Nullable public abstract String name();
+ @Nullable
+ public abstract String name();
public abstract int version();
- @Nullable public abstract ProvisioningState state();
+ @Nullable
+ public abstract ProvisioningState state();
- @Nullable public abstract Location location();
+ @Nullable
+ public abstract Location location();
-// @Nullable public abstract List<Server> servers();
-// @Nullable public abstract List<Storage> storages();
+ @Nullable
+ public abstract List<Server> servers();
+
+ @Nullable
+ public abstract List<Storage> storages();
// @Nullable public abstract List<LoadBalancer> loadBalancers();
- public static DataCenter create(String id, String name, int version, ProvisioningState state, Location location) {
- return new AutoValue_DataCenter(id, name, version, state, location);
+
+ public static DataCenter create(String id, String name, int version, ProvisioningState state, Location location, List<Server> servers,
+ List<Storage> storages) {
+ return new AutoValue_DataCenter(id, name, version, state, location,
+ servers != null ? ImmutableList.copyOf(servers) : Lists.<Server>newArrayList(),
+ storages != null ? ImmutableList.copyOf(storages) : Lists.<Storage>newArrayList());
}
public static Builder builder() {
@@ -60,76 +73,87 @@ public abstract class DataCenter {
private ProvisioningState state;
private Location location;
private int version;
-// private List<Server> servers;
-// private List<Storage> storage;
+ private List<Server> servers;
+ private List<Storage> storages;
// private List<LoadBalancer> loadBalancer;
public Builder id(String id) {
- this.id = id;
- return this;
+ this.id = id;
+ return this;
}
public Builder name(String name) {
- this.name = name;
- return this;
+ this.name = name;
+ return this;
}
public Builder state(ProvisioningState state) {
- this.state = state;
- return this;
+ this.state = state;
+ return this;
}
public Builder location(Location location) {
- this.location = location;
- return this;
+ this.location = location;
+ return this;
}
public Builder version(int version) {
- this.version = version;
- return this;
+ this.version = version;
+ return this;
+ }
+
+ public Builder servers(List<Server> servers) {
+ this.servers = servers;
+ return this;
+ }
+
+ public Builder storages(List<Storage> storages) {
+ this.storages = storages;
+ return this;
}
public DataCenter build() {
- return DataCenter.create(id, name, version, state, location);
+ return DataCenter.create(id, name, version, state, location, servers, storages);
}
public Builder fromDataCenter(DataCenter in) {
- return this.id(in.id()).name(in.name()).version(in.version()).state(in.state()).location(in.location());
+ return this.id(in.id()).name(in.name()).version(in.version()).state(in.state()).location(in.location()).servers(in.servers())
+ .storages(in.storages());
}
}
public static final class Request {
-
+
@AutoValue
public abstract static class CreatePayload {
- public abstract String name();
+ public abstract String name();
- public abstract Location location();
+ public abstract Location location();
- public static CreatePayload create(String name, Location location) {
+ public static CreatePayload create(String name, Location location) {
checkInvalidChars(name);
- return new AutoValue_DataCenter_Request_CreatePayload(name, location);
- }
+ return new AutoValue_DataCenter_Request_CreatePayload(name, location);
+ }
}
@AutoValue
public abstract static class UpdatePayload {
- public abstract String id();
+ public abstract String id();
- public abstract String name();
+ public abstract String name();
- public static UpdatePayload create(String id, String name) {
+ public static UpdatePayload create(String id, String name) {
checkInvalidChars(name);
- return new AutoValue_DataCenter_Request_UpdatePayload(id, name);
- }
+ return new AutoValue_DataCenter_Request_UpdatePayload(id, name);
+ }
}
-
+
private static final Pattern INVALID_CHARS = Pattern.compile("^.*[@/\\|'`’^].*$");
-
- private static void checkInvalidChars(String name){
+
+ private static void checkInvalidChars(String name) {
checkArgument(!isNullOrEmpty(name), "Name is required.");
checkArgument(!INVALID_CHARS.matcher(name).matches(), "Name must not contain any of: @ / \\ | ' ` ’ ^");
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Location.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Location.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Location.java
index 969629a..0354bf4 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Location.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Location.java
@@ -35,16 +35,16 @@ public enum Location {
public static Location fromValue(String v) {
try {
- return valueOf(v);
+ return valueOf(v);
} catch (IllegalArgumentException ex) {
- return UNRECOGNIZED;
+ return UNRECOGNIZED;
}
}
public static Location fromId(String id) {
for (Location location : values())
- if (location.id.equals(id))
- return location;
+ if (location.id.equals(id))
+ return location;
return UNRECOGNIZED;
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ProvisioningState.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ProvisioningState.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ProvisioningState.java
index 2a9e0b6..833e979 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ProvisioningState.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ProvisioningState.java
@@ -22,9 +22,9 @@ public enum ProvisioningState {
public static ProvisioningState fromValue(String value) {
try {
- return valueOf(value);
+ return valueOf(value);
} catch (IllegalArgumentException e) {
- return UNRECOGNIZED;
+ return UNRECOGNIZED;
}
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Server.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Server.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Server.java
index 703eb59..6149cfd 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Server.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Server.java
@@ -17,12 +17,20 @@
package org.jclouds.profitbricks.domain;
import org.jclouds.profitbricks.domain.internal.ServerCommonProperties;
+
import com.google.auto.value.AutoValue;
+
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
+
import java.util.Date;
+import java.util.List;
+
import org.jclouds.javax.annotation.Nullable;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
+
@AutoValue
public abstract class Server implements ServerCommonProperties {
@@ -34,10 +42,10 @@ public abstract class Server implements ServerCommonProperties {
return name();
}
- public static Status fromValue( String v ) {
+ public static Status fromValue(String v) {
try {
- return valueOf( v );
- } catch ( IllegalArgumentException ex ) {
+ return valueOf(v);
+ } catch (IllegalArgumentException ex) {
return UNRECOGNIZED;
}
}
@@ -70,13 +78,17 @@ public abstract class Server implements ServerCommonProperties {
@Nullable
public abstract Date lastModificationTime();
-// public abstract List<Storage> storages();
-// public abstract List<Nic> storages();
- public static Server create( String id, String name, int cores, int ram, Boolean hasInternetAccess, ProvisioningState state,
- Status status, OsType osType, AvailabilityZone availabilityZone, Date creationTime, Date lastModificationTime, Boolean isCpuHotPlug,
- Boolean isRamHotPlug, Boolean isNicHotPlug, Boolean isNicHotUnPlug, Boolean isDiscVirtioHotPlug, Boolean isDiscVirtioHotUnPlug ) {
- return new AutoValue_Server( isCpuHotPlug, isRamHotPlug, isNicHotPlug, isNicHotUnPlug, isDiscVirtioHotPlug, isDiscVirtioHotUnPlug,
- cores, ram, id, name, hasInternetAccess, state, status, osType, availabilityZone, creationTime, lastModificationTime );
+ @Nullable
+ public abstract List<Storage> storages();
+
+// public abstract List<Nic> nics();
+ public static Server create(String id, String name, int cores, int ram, Boolean hasInternetAccess, ProvisioningState state,
+ Status status, OsType osType, AvailabilityZone availabilityZone, Date creationTime, Date lastModificationTime,
+ List<Storage> storages, Boolean isCpuHotPlug, Boolean isRamHotPlug, Boolean isNicHotPlug, Boolean isNicHotUnPlug,
+ Boolean isDiscVirtioHotPlug, Boolean isDiscVirtioHotUnPlug) {
+ return new AutoValue_Server(isCpuHotPlug, isRamHotPlug, isNicHotPlug, isNicHotUnPlug, isDiscVirtioHotPlug, isDiscVirtioHotUnPlug,
+ cores, ram, id, name, hasInternetAccess, state, status, osType, availabilityZone, creationTime, lastModificationTime,
+ storages != null ? ImmutableList.copyOf(storages) : Lists.<Storage>newArrayList());
}
@@ -85,7 +97,7 @@ public abstract class Server implements ServerCommonProperties {
}
public DescribingBuilder toBuilder() {
- return builder().fromServer( this );
+ return builder().fromServer(this);
}
public abstract static class Builder<B extends Builder, D extends ServerCommonProperties> {
@@ -100,48 +112,48 @@ public abstract class Server implements ServerCommonProperties {
protected Boolean discVirtioHotPlug;
protected Boolean discVirtioHotUnPlug;
- public B name( String name ) {
+ public B name(String name) {
this.name = name;
return self();
}
- public B cores( int cores ) {
+ public B cores(int cores) {
this.cores = cores;
return self();
}
- public B ram( int ram ) {
+ public B ram(int ram) {
this.ram = ram;
return self();
}
- public B isCpuHotPlug( Boolean cpuHotPlug ) {
+ public B isCpuHotPlug(Boolean cpuHotPlug) {
this.cpuHotPlug = cpuHotPlug;
return self();
}
- public B isRamHotPlug( Boolean ramHotPlug ) {
+ public B isRamHotPlug(Boolean ramHotPlug) {
this.ramHotPlug = ramHotPlug;
return self();
}
- public B isNicHotPlug( Boolean nicHotPlug ) {
+ public B isNicHotPlug(Boolean nicHotPlug) {
this.nicHotPlug = nicHotPlug;
return self();
}
- public B isNicHotUnPlug( Boolean nicHotUnPlug ) {
+ public B isNicHotUnPlug(Boolean nicHotUnPlug) {
this.nicHotUnPlug = nicHotUnPlug;
return self();
}
- public B isDiscVirtioHotPlug( Boolean discVirtioHotPlug ) {
+ public B isDiscVirtioHotPlug(Boolean discVirtioHotPlug) {
this.discVirtioHotPlug = discVirtioHotPlug;
return self();
}
- public B isDiscVirtioHotUnPlug( Boolean discVirtioHotUnPlug ) {
+ public B isDiscVirtioHotUnPlug(Boolean discVirtioHotUnPlug) {
this.discVirtioHotUnPlug = discVirtioHotUnPlug;
return self();
}
@@ -161,59 +173,65 @@ public abstract class Server implements ServerCommonProperties {
private Date creationTime;
private Date lastModificationTime;
private Boolean hasInternetAccess;
+ private List<Storage> storages;
- public DescribingBuilder id( String id ) {
+ public DescribingBuilder id(String id) {
this.id = id;
return this;
}
- public DescribingBuilder state( ProvisioningState state ) {
+ public DescribingBuilder state(ProvisioningState state) {
this.state = state;
return this;
}
- public DescribingBuilder status( Status status ) {
+ public DescribingBuilder status(Status status) {
this.status = status;
return this;
}
- public DescribingBuilder osType( OsType osType ) {
+ public DescribingBuilder osType(OsType osType) {
this.osType = osType;
return this;
}
- public DescribingBuilder availabilityZone( AvailabilityZone zone ) {
+ public DescribingBuilder availabilityZone(AvailabilityZone zone) {
this.zone = zone;
return this;
}
- public DescribingBuilder creationTime( Date creationTime ) {
+ public DescribingBuilder creationTime(Date creationTime) {
this.creationTime = creationTime;
return this;
}
- public DescribingBuilder lastModificationTime( Date lastModificationTime ) {
+ public DescribingBuilder lastModificationTime(Date lastModificationTime) {
this.lastModificationTime = lastModificationTime;
return this;
}
- public DescribingBuilder hasInternetAccess( Boolean hasInternetAccess ) {
+ public DescribingBuilder hasInternetAccess(Boolean hasInternetAccess) {
this.hasInternetAccess = hasInternetAccess;
return this;
}
+ public DescribingBuilder storages(List<Storage> storages) {
+ this.storages = storages;
+ return this;
+ }
+
@Override
public Server build() {
- return Server.create( id, name, cores, ram, hasInternetAccess, state, status, osType, zone, creationTime,
- lastModificationTime, cpuHotPlug, ramHotPlug, nicHotPlug, nicHotUnPlug, discVirtioHotPlug, discVirtioHotUnPlug );
+ return Server.create(id, name, cores, ram, hasInternetAccess, state, status, osType, zone, creationTime,
+ lastModificationTime, storages, cpuHotPlug, ramHotPlug, nicHotPlug, nicHotUnPlug, discVirtioHotPlug, discVirtioHotUnPlug);
}
- private DescribingBuilder fromServer( Server in ) {
- return this.id( in.id() ).cores( in.cores() ).creationTime( in.creationTime() ).hasInternetAccess( in.hasInternetAccess() )
- .isCpuHotPlug( in.isCpuHotPlug() ).isDiscVirtioHotPlug( in.isDiscVirtioHotPlug() ).isDiscVirtioHotUnPlug( in.isDiscVirtioHotUnPlug() )
- .isNicHotPlug( in.isNicHotPlug() ).isNicHotUnPlug( in.isNicHotUnPlug() ).isRamHotPlug( in.isRamHotPlug() )
- .lastModificationTime( in.lastModificationTime() ).name( in.name() ).osType( in.osType() ).ram( in.ram() ).state( in.state() )
- .status( in.status() );
+ private DescribingBuilder fromServer(Server in) {
+ return this.id(in.id()).cores(in.cores()).creationTime(in.creationTime()).hasInternetAccess(in.hasInternetAccess())
+ .isCpuHotPlug(in.isCpuHotPlug()).isDiscVirtioHotPlug(in.isDiscVirtioHotPlug()).isDiscVirtioHotUnPlug(in.isDiscVirtioHotUnPlug())
+ .isNicHotPlug(in.isNicHotPlug()).isNicHotUnPlug(in.isNicHotUnPlug()).isRamHotPlug(in.isRamHotPlug())
+ .lastModificationTime(in.lastModificationTime()).name(in.name()).osType(in.osType()).ram(in.ram()).state(in.state())
+ .status(in.status()).storages(in.storages());
}
@Override
@@ -256,18 +274,18 @@ public abstract class Server implements ServerCommonProperties {
@Nullable
public abstract OsType osType();
- public static CreatePayload create( String dataCenterId, String name, int core, int ram ) {
- return create( dataCenterId, name, core, ram, "", "", null, false, null, null, null, null, null, null, null, null );
+ public static CreatePayload create(String dataCenterId, String name, int core, int ram) {
+ return create(dataCenterId, name, core, ram, "", "", null, false, null, null, null, null, null, null, null, null);
}
- public static CreatePayload create( String dataCenterId, String name, int cores, int ram, String bootFromStorageId, String bootFromImageId,
+ public static CreatePayload create(String dataCenterId, String name, int cores, int ram, String bootFromStorageId, String bootFromImageId,
Integer lanId, Boolean hasInternetAccess, AvailabilityZone availabilityZone, OsType osType, Boolean isCpuHotPlug, Boolean isRamHotPlug,
- Boolean isNicHotPlug, Boolean isNicHotUnPlug, Boolean isDiscVirtioHotPlug, Boolean isDiscVirtioHotUnPlug ) {
- validateCores( cores );
- validateRam( ram, isRamHotPlug );
- return new AutoValue_Server_Request_CreatePayload( isCpuHotPlug, isRamHotPlug, isNicHotPlug, isNicHotUnPlug, isDiscVirtioHotPlug,
+ Boolean isNicHotPlug, Boolean isNicHotUnPlug, Boolean isDiscVirtioHotPlug, Boolean isDiscVirtioHotUnPlug) {
+ validateCores(cores);
+ validateRam(ram, isRamHotPlug);
+ return new AutoValue_Server_Request_CreatePayload(isCpuHotPlug, isRamHotPlug, isNicHotPlug, isNicHotUnPlug, isDiscVirtioHotPlug,
isDiscVirtioHotUnPlug, name, cores, ram, dataCenterId, bootFromStorageId, bootFromImageId, lanId, hasInternetAccess,
- availabilityZone, osType );
+ availabilityZone, osType);
}
public static class Builder extends Server.Builder<Builder, CreatePayload> {
@@ -280,42 +298,42 @@ public abstract class Server implements ServerCommonProperties {
private AvailabilityZone availabilityZone;
private OsType osType;
- public Builder dataCenterId( String dataCenterId ) {
+ public Builder dataCenterId(String dataCenterId) {
this.dataCenterId = dataCenterId;
return this;
}
- public Builder dataCenterId( DataCenter dataCenter ) {
- this.dataCenterId = checkNotNull( dataCenter, "Cannot pass null datacenter" ).id();
+ public Builder dataCenterId(DataCenter dataCenter) {
+ this.dataCenterId = checkNotNull(dataCenter, "Cannot pass null datacenter").id();
return this;
}
- public Builder bootFromStorageId( String storageId ) {
+ public Builder bootFromStorageId(String storageId) {
this.bootFromStorageId = storageId;
return this;
}
- public Builder bootFromImageId( String image ) {
+ public Builder bootFromImageId(String image) {
this.bootFromImageId = image;
return this;
}
- public Builder lanId( Integer lanId ) {
+ public Builder lanId(Integer lanId) {
this.lanId = lanId;
return this;
}
- public Builder availabilityZone( AvailabilityZone zone ) {
+ public Builder availabilityZone(AvailabilityZone zone) {
this.availabilityZone = zone;
return this;
}
- public Builder osType( OsType osType ) {
+ public Builder osType(OsType osType) {
this.osType = osType;
return this;
}
- public Builder hasInternetAccess( Boolean hasInternetAccess ) {
+ public Builder hasInternetAccess(Boolean hasInternetAccess) {
this.hasInternetAccess = hasInternetAccess;
return this;
}
@@ -327,8 +345,8 @@ public abstract class Server implements ServerCommonProperties {
@Override
public CreatePayload build() {
- return CreatePayload.create( dataCenterId, name, cores, ram, bootFromStorageId, bootFromImageId, lanId, hasInternetAccess,
- availabilityZone, osType, cpuHotPlug, ramHotPlug, nicHotPlug, nicHotUnPlug, discVirtioHotPlug, discVirtioHotUnPlug );
+ return CreatePayload.create(dataCenterId, name, cores, ram, bootFromStorageId, bootFromImageId, lanId, hasInternetAccess,
+ availabilityZone, osType, cpuHotPlug, ramHotPlug, nicHotPlug, nicHotUnPlug, discVirtioHotPlug, discVirtioHotUnPlug);
}
}
@@ -355,11 +373,11 @@ public abstract class Server implements ServerCommonProperties {
@Nullable
public abstract OsType osType();
- public static UpdatePayload create( String id, String name, int cores, int ram, String bootFromStorageId, String bootFromImageId,
+ public static UpdatePayload create(String id, String name, int cores, int ram, String bootFromStorageId, String bootFromImageId,
AvailabilityZone availabilityZone, OsType osType, Boolean isCpuHotPlug, Boolean isRamHotPlug, Boolean isNicHotPlug,
- Boolean isNicHotUnPlug, Boolean isDiscVirtioHotPlug, Boolean isDiscVirtioHotUnPlug ) {
- return new AutoValue_Server_Request_UpdatePayload( isCpuHotPlug, isRamHotPlug, isNicHotPlug, isNicHotUnPlug, isDiscVirtioHotPlug,
- isDiscVirtioHotUnPlug, cores, ram, name, id, bootFromStorageId, bootFromImageId, availabilityZone, osType );
+ Boolean isNicHotUnPlug, Boolean isDiscVirtioHotPlug, Boolean isDiscVirtioHotUnPlug) {
+ return new AutoValue_Server_Request_UpdatePayload(isCpuHotPlug, isRamHotPlug, isNicHotPlug, isNicHotUnPlug, isDiscVirtioHotPlug,
+ isDiscVirtioHotUnPlug, cores, ram, name, id, bootFromStorageId, bootFromImageId, availabilityZone, osType);
}
public static class Builder extends Server.Builder<Builder, UpdatePayload> {
@@ -370,27 +388,27 @@ public abstract class Server implements ServerCommonProperties {
private AvailabilityZone availabilityZone;
private OsType osType;
- public Builder id( String id ) {
+ public Builder id(String id) {
this.id = id;
return this;
}
- public Builder bootFromStorageId( String storageId ) {
+ public Builder bootFromStorageId(String storageId) {
this.bootFromStorageId = storageId;
return this;
}
- public Builder bootFromImageId( String image ) {
+ public Builder bootFromImageId(String image) {
this.bootFromImageId = image;
return this;
}
- public Builder availabilityZone( AvailabilityZone zone ) {
+ public Builder availabilityZone(AvailabilityZone zone) {
this.availabilityZone = zone;
return this;
}
- public Builder osType( OsType osType ) {
+ public Builder osType(OsType osType) {
this.osType = osType;
return this;
}
@@ -402,8 +420,8 @@ public abstract class Server implements ServerCommonProperties {
@Override
public UpdatePayload build() {
- return UpdatePayload.create( id, name, cores, ram, bootFromStorageId, bootFromImageId, availabilityZone, osType,
- cpuHotPlug, ramHotPlug, nicHotPlug, nicHotUnPlug, discVirtioHotPlug, discVirtioHotUnPlug );
+ return UpdatePayload.create(id, name, cores, ram, bootFromStorageId, bootFromImageId, availabilityZone, osType,
+ cpuHotPlug, ramHotPlug, nicHotPlug, nicHotUnPlug, discVirtioHotPlug, discVirtioHotUnPlug);
}
@@ -412,13 +430,13 @@ public abstract class Server implements ServerCommonProperties {
}
- private static void validateCores( int cores ) {
- checkArgument( cores > 0, "Core must be atleast 1." );
+ private static void validateCores(int cores) {
+ checkArgument(cores > 0, "Core must be atleast 1.");
}
- private static void validateRam( int ram, Boolean isRamHotPlug ) {
- int minRam = ( isRamHotPlug == null || !isRamHotPlug ) ? 256 : 1024;
- checkArgument( ram >= minRam && ram % 256 == 0, "RAM must be multiples of 256 with minimum of 256 MB (1024 MB if ramHotPlug is enabled)" );
+ private static void validateRam(int ram, Boolean isRamHotPlug) {
+ int minRam = (isRamHotPlug == null || !isRamHotPlug) ? 256 : 1024;
+ checkArgument(ram >= minRam && ram % 256 == 0, "RAM must be multiples of 256 with minimum of 256 MB (1024 MB if ramHotPlug is enabled)");
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ServiceFault.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ServiceFault.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ServiceFault.java
index 0e1303e..dac8f0b 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ServiceFault.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/ServiceFault.java
@@ -36,11 +36,11 @@ public abstract class ServiceFault {
UNRECOGNIZED;
public static FaultCode fromValue(String v) {
- try {
- return valueOf(v);
- } catch (IllegalArgumentException ex) {
- return UNRECOGNIZED;
- }
+ try {
+ return valueOf(v);
+ } catch (IllegalArgumentException ex) {
+ return UNRECOGNIZED;
+ }
}
}
@@ -68,27 +68,27 @@ public abstract class ServiceFault {
private int requestId;
public Builder faultCode(FaultCode code) {
- this.faultCode = code;
- return this;
+ this.faultCode = code;
+ return this;
}
public Builder httpCode(int httpCode) {
- this.httpCode = httpCode;
- return this;
+ this.httpCode = httpCode;
+ return this;
}
public Builder message(String message) {
- this.message = message;
- return this;
+ this.message = message;
+ return this;
}
public Builder requestId(int requestId) {
- this.requestId = requestId;
- return this;
+ this.requestId = requestId;
+ return this;
}
public ServiceFault build() {
- return create(faultCode, httpCode, message, requestId);
+ return create(faultCode, httpCode, message, requestId);
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Storage.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Storage.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Storage.java
new file mode 100644
index 0000000..6dcaf25
--- /dev/null
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/domain/Storage.java
@@ -0,0 +1,355 @@
+/*
+ * 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.profitbricks.domain;
+
+import com.google.auto.value.AutoValue;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.util.Date;
+import java.util.List;
+
+import org.jclouds.javax.annotation.Nullable;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
+
+@AutoValue
+public abstract class Storage {
+
+ public enum BusType {
+
+ IDE, SCSI, VIRTIO, UNRECOGNIZED;
+
+ public static BusType fromValue(String value) {
+ try {
+ return valueOf(value);
+ } catch (IllegalArgumentException ex) {
+ return UNRECOGNIZED;
+ }
+ }
+ }
+
+ public abstract String id();
+
+ @Nullable
+ public abstract String name();
+
+ public abstract float size(); // GB
+
+ @Nullable
+ public abstract Date creationTime();
+
+ @Nullable
+ public abstract Date lastModificationTime();
+
+ public abstract ProvisioningState state();
+
+ @Nullable
+ public abstract List<String> serverIds();
+
+ @Nullable
+ public abstract Boolean bootDevice();
+
+ @Nullable
+ public abstract BusType busType();
+
+ @Nullable
+ public abstract Integer deviceNumber();
+
+ public static Storage create(String id, String name, float size, Date creationTime, Date lastModificationTime,
+ ProvisioningState state, List<String> serverIds, Boolean bootDevice, BusType busType, Integer deviceNumber) {
+ return new AutoValue_Storage(id, name, size, creationTime, lastModificationTime, state,
+ serverIds != null ? ImmutableList.copyOf(serverIds) : Lists.<String>newArrayList(),
+ bootDevice, busType, deviceNumber);
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return builder().fromStorage(this);
+ }
+
+ public static class Builder {
+
+ private String id;
+ private String name;
+ private float size;
+ private Date creationTime;
+ private Date lastModificationTime;
+ private ProvisioningState state;
+ private List<String> serverIds;
+ private Boolean bootDevice;
+ private BusType busType;
+ private Integer deviceNumber;
+
+ public Builder id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ public Builder name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public Builder size(float size) {
+ this.size = size;
+ return this;
+ }
+
+ public Builder creationTime(Date creationTime) {
+ this.creationTime = creationTime;
+ return this;
+ }
+
+ public Builder lastModificationTime(Date lastModificationTime) {
+ this.lastModificationTime = lastModificationTime;
+ return this;
+ }
+
+ public Builder state(ProvisioningState state) {
+ this.state = state;
+ return this;
+ }
+
+ public Builder serverIds(List<String> serverIds) {
+ this.serverIds = serverIds;
+ return this;
+ }
+
+ public Builder bootDevice(Boolean bootDevice) {
+ this.bootDevice = bootDevice;
+ return this;
+ }
+
+ public Builder busType(BusType busType) {
+ this.busType = busType;
+ return this;
+ }
+
+ public Builder deviceNumber(Integer deviceNumber) {
+ this.deviceNumber = deviceNumber;
+ return this;
+ }
+
+ private Builder fromStorage(Storage in) {
+ return this.id(in.id()).name(in.name()).size(in.size()).creationTime(in.creationTime())
+ .lastModificationTime(in.lastModificationTime()).state(in.state()).serverIds(in.serverIds())
+ .bootDevice(in.bootDevice()).busType(in.busType()).deviceNumber(in.deviceNumber());
+ }
+
+ public Storage build() {
+ return Storage.create(id, name, size, creationTime, lastModificationTime, state, serverIds, bootDevice, busType, deviceNumber);
+ }
+
+ }
+
+ public static final class Request {
+
+ public static CreatePayload.Builder creatingBuilder() {
+ return new CreatePayload.Builder();
+ }
+
+ public static UpdatePayload.Builder updatingBuilder() {
+ return new UpdatePayload.Builder();
+ }
+
+ public static ConnectPayload.Builder connectingBuilder() {
+ return new ConnectPayload.Builder();
+ }
+
+ @AutoValue
+ public abstract static class CreatePayload {
+
+ public abstract String dataCenterId();
+
+ public abstract float size();
+
+ @Nullable
+ public abstract String name();
+
+ @Nullable
+ public abstract String mountImageId();
+
+ @Nullable
+ public abstract String profitBricksImagePassword();
+
+ public static CreatePayload create(String dataCenterId, float size, String name, String mountImageId, String imagePassword) {
+ validateSize(size);
+ return new AutoValue_Storage_Request_CreatePayload(dataCenterId, size, name, mountImageId, imagePassword);
+ }
+
+ public static class Builder {
+
+ private String dataCenterId;
+ private float size;
+ private String name;
+ private String mountImageId;
+ private String profitBricksImagePassword;
+
+ public Builder dataCenterId(String dataCenterId) {
+ this.dataCenterId = dataCenterId;
+ return this;
+ }
+
+ public Builder dataCenterId(DataCenter dataCenter) {
+ this.dataCenterId = checkNotNull(dataCenter, "Cannot pass null datacenter").id();
+ return this;
+ }
+
+ public Builder size(float size) {
+ this.size = size;
+ return this;
+ }
+
+ public Builder mountImageId(String mountImageId) {
+ this.mountImageId = mountImageId;
+ return this;
+ }
+
+ public Builder name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public Builder imagePassword(String password) {
+ this.profitBricksImagePassword = password;
+ return this;
+ }
+
+ public CreatePayload build() {
+ return CreatePayload.create(dataCenterId, size, name, mountImageId, profitBricksImagePassword);
+ }
+ }
+
+ }
+
+ @AutoValue
+ public abstract static class UpdatePayload {
+
+ public abstract String id();
+
+ @Nullable
+ public abstract Float size();
+
+ @Nullable
+ public abstract String name();
+
+ @Nullable
+ public abstract String mountImageId();
+
+ public static UpdatePayload create(String id, Float size, String name, String mountImageId) {
+ validateSize(size);
+ return new AutoValue_Storage_Request_UpdatePayload(id, size, name, mountImageId);
+ }
+
+ public static class Builder {
+
+ private String id;
+ private Float size;
+ private String name;
+ private String mountImageId;
+
+ public Builder id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ public Builder size(float size) {
+ this.size = size;
+ return this;
+ }
+
+ public Builder name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public Builder mountImageId(String mountImageId) {
+ this.mountImageId = mountImageId;
+ return this;
+ }
+
+ public UpdatePayload build() {
+ return UpdatePayload.create(id, size, name, mountImageId);
+ }
+ }
+ }
+
+ @AutoValue
+ public abstract static class ConnectPayload {
+
+ public abstract String storageId();
+
+ public abstract String serverId();
+
+ @Nullable
+ public abstract BusType busType();
+
+ @Nullable
+ public abstract Integer deviceNumber();
+
+ public static ConnectPayload create(String storageId, String serverId, BusType busType, Integer deviceNumber) {
+ return new AutoValue_Storage_Request_ConnectPayload(storageId, serverId, busType, deviceNumber);
+ }
+
+ public static class Builder {
+
+ private String storageId;
+ private String serverId;
+ private BusType busType;
+ private Integer deviceNumber;
+
+ public Builder storageId(String storageId) {
+ this.storageId = storageId;
+ return this;
+ }
+
+ public Builder serverId(String serverId) {
+ this.serverId = serverId;
+ return this;
+ }
+
+ public Builder busType(BusType busType) {
+ this.busType = busType;
+ return this;
+ }
+
+ public Builder deviceNumber(Integer deviceNumber) {
+ this.deviceNumber = deviceNumber;
+ return this;
+ }
+
+ public ConnectPayload build() {
+ return ConnectPayload.create(storageId, serverId, busType, deviceNumber);
+ }
+
+ }
+ }
+
+ private static void validateSize(Float size) {
+ if (size != null)
+ checkArgument(size > 1, "Storage size must be > 1GB");
+
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/features/DataCenterApi.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/features/DataCenterApi.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/features/DataCenterApi.java
index f660730..a9c6143 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/features/DataCenterApi.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/features/DataCenterApi.java
@@ -58,8 +58,7 @@ public interface DataCenterApi {
/**
* @param identifier Data Center identifier
- * @return Returns information about an existing virtual data center's state and configuration or <code>null</code>
- * if it doesn't exist.
+ * @return Returns information about an existing virtual data center's state and configuration or <code>null</code> if it doesn't exist.
*/
@POST
@Named("datacenter:get")
@@ -69,8 +68,8 @@ public interface DataCenterApi {
DataCenter getDataCenter(@PayloadParam("id") String identifier);
/**
- * This is a lightweight function for polling the current provisioning state of the Virtual Data Center. It is
- * recommended to use this function for large Virtual Data Centers to query request results.
+ * This is a lightweight function for polling the current provisioning state of the Virtual Data Center. It is recommended to use this
+ * function for large Virtual Data Centers to query request results.
* <p>
* @param identifier Data Center identifier
*/
@@ -119,9 +118,8 @@ public interface DataCenterApi {
DataCenter clearDataCenter(@PayloadParam("id") String identifier);
/**
- * Deletes an Virtual Data Center. If a previous request on the target data center is still in progress, the data
- * center is going to be deleted after this request has been completed. Once a Data Center has been deleted, no
- * further request can be performed on it.
+ * Deletes an Virtual Data Center. If a previous request on the target data center is still in progress, the data center is going to be
+ * deleted after this request has been completed. Once a Data Center has been deleted, no further request can be performed on it.
* <p>
* @param identifier Identifier of the virtual data center
* @return Returns a boolean indicating whether delete operation was made
http://git-wip-us.apache.org/repos/asf/jclouds/blob/2a219a99/providers/profitbricks/src/main/java/org/jclouds/profitbricks/features/ServerApi.java
----------------------------------------------------------------------
diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/features/ServerApi.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/features/ServerApi.java
index 1fa89b3..34445da 100644
--- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/features/ServerApi.java
+++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/features/ServerApi.java
@@ -39,19 +39,19 @@ import org.jclouds.rest.annotations.PayloadParam;
import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.rest.annotations.XMLResponseParser;
-@RequestFilters( { BasicAuthentication.class, ProfitBricksSoapMessageEnvelope.class } )
-@Consumes( MediaType.TEXT_XML )
-@Produces( MediaType.TEXT_XML )
+@RequestFilters({BasicAuthentication.class, ProfitBricksSoapMessageEnvelope.class})
+@Consumes(MediaType.TEXT_XML)
+@Produces(MediaType.TEXT_XML)
public interface ServerApi {
/**
* @return Returns information about all virtual server, such as configuration, provisioning status, power status, etc.
*/
@POST
- @Named( "server:getall" )
- @Payload( "<ws:getAllServers/>" )
- @XMLResponseParser( ServerListResponseHandler.class )
- @Fallback( Fallbacks.EmptyListOnNotFoundOr404.class )
+ @Named("server:getall")
+ @Payload("<ws:getAllServers/>")
+ @XMLResponseParser(ServerListResponseHandler.class)
+ @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class)
List<Server> getAllServers();
/**
@@ -59,11 +59,11 @@ public interface ServerApi {
* @return Returns information about a virtual server, such as configuration, provisioning status, power status, etc.
*/
@POST
- @Named( "server:get" )
- @Payload( "<ws:getServer><serverId>{id}</serverId></ws:getServer>" )
- @XMLResponseParser( ServerInfoResponseHandler.class )
- @Fallback( Fallbacks.NullOnNotFoundOr404.class )
- Server getServer( @PayloadParam( "id" ) String identifier );
+ @Named("server:get")
+ @Payload("<ws:getServer><serverId>{id}</serverId></ws:getServer>")
+ @XMLResponseParser(ServerInfoResponseHandler.class)
+ @Fallback(Fallbacks.NullOnNotFoundOr404.class)
+ Server getServer(@PayloadParam("id") String identifier);
/**
* Starts an existing virtual server
@@ -77,10 +77,10 @@ public interface ServerApi {
* @return Identifier of current request
*/
@POST
- @Named( "server:start" )
- @Payload( "<ws:startServer><serverId>{id}</serverId></ws:startServer>" )
- @XMLResponseParser( RequestIdOnlyResponseHandler.class )
- String startServer( @PayloadParam( "id" ) String id );
+ @Named("server:start")
+ @Payload("<ws:startServer><serverId>{id}</serverId></ws:startServer>")
+ @XMLResponseParser(RequestIdOnlyResponseHandler.class)
+ String startServer(@PayloadParam("id") String id);
/**
*
@@ -99,10 +99,10 @@ public interface ServerApi {
* @return Identifier of current request
*/
@POST
- @Named( "server:stop" )
- @Payload( "<ws:stopServer><serverId>{id}</serverId></ws:stopServer>" )
- @XMLResponseParser( RequestIdOnlyResponseHandler.class )
- String stopServer( @PayloadParam( "id" ) String id );
+ @Named("server:stop")
+ @Payload("<ws:stopServer><serverId>{id}</serverId></ws:stopServer>")
+ @XMLResponseParser(RequestIdOnlyResponseHandler.class)
+ String stopServer(@PayloadParam("id") String id);
/**
* Resets an existing virtual server (POWER CYCLE).
@@ -119,10 +119,10 @@ public interface ServerApi {
* @return Identifier of current request
*/
@POST
- @Named( "server:reset" )
- @Payload( "<ws:resetServer><serverId>{id}</serverId></ws:resetServer>" )
- @XMLResponseParser( RequestIdOnlyResponseHandler.class )
- String resetServer( @PayloadParam( "id" ) String id );
+ @Named("server:reset")
+ @Payload("<ws:resetServer><serverId>{id}</serverId></ws:resetServer>")
+ @XMLResponseParser(RequestIdOnlyResponseHandler.class)
+ String resetServer(@PayloadParam("id") String id);
/**
* Creates a Virtual Server within an existing data center. Parameters can be specified to set up a boot device and connect the server to
@@ -132,22 +132,22 @@ public interface ServerApi {
* @return serverId of the created server
*/
@POST
- @Named( "server:create" )
- @MapBinder( CreateServerRequestBinder.class )
- @XMLResponseParser( ServerIdOnlyResponseHandler.class )
- String createServer( @PayloadParam( "server" ) Server.Request.CreatePayload payload );
+ @Named("server:create")
+ @MapBinder(CreateServerRequestBinder.class)
+ @XMLResponseParser(ServerIdOnlyResponseHandler.class)
+ String createServer(@PayloadParam("server") Server.Request.CreatePayload payload);
/**
* Updates parameters of an existing virtual server device.
*
- * @param payload Paylaod
+ * @param payload Payload
* @return Identifier of current request
*/
@POST
- @Named( "server:update" )
- @MapBinder( UpdateServerRequestBinder.class )
- @XMLResponseParser( RequestIdOnlyResponseHandler.class )
- String updateServer( @PayloadParam( "server" ) Server.Request.UpdatePayload payload );
+ @Named("server:update")
+ @MapBinder(UpdateServerRequestBinder.class)
+ @XMLResponseParser(RequestIdOnlyResponseHandler.class)
+ String updateServer(@PayloadParam("server") Server.Request.UpdatePayload payload);
/**
* Deletes an existing Virtual Server.
@@ -156,9 +156,9 @@ public interface ServerApi {
* @return Identifier of current request
*/
@POST
- @Named( "server:delete" )
- @Payload( "<ws:deleteServer><serverId>{id}</serverId></ws:deleteServer>" )
- @Fallback( Fallbacks.FalseOnNotFoundOr404.class )
- boolean deleteServer( @PayloadParam( "id" ) String id );
+ @Named("server:delete")
+ @Payload("<ws:deleteServer><serverId>{id}</serverId></ws:deleteServer>")
+ @Fallback(Fallbacks.FalseOnNotFoundOr404.class)
+ boolean deleteServer(@PayloadParam("id") String id);
}