[2/2] jclouds git commit: JCLOUDS-1339: Support launching an x1 EC2 instance

2018-08-23 Thread nacx
JCLOUDS-1339: Support launching an x1 EC2 instance

https://issues.apache.org/jira/browse/JCLOUDS-1339


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/ca063d8b
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/ca063d8b
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/ca063d8b

Branch: refs/heads/2.1.x
Commit: ca063d8bfa88ec08c94c99416574cb7958058a26
Parents: 591fe84
Author: Markus Alexander Kuppe 
Authored: Tue Aug 21 18:31:02 2018 +
Committer: Ignasi Barrera 
Committed: Thu Aug 23 20:27:56 2018 +0200

--
 .../ec2/compute/domain/EC2HardwareBuilder.java  | 38 
 .../org/jclouds/ec2/domain/InstanceType.java| 26 ++
 .../suppliers/AWSEC2HardwareSupplier.java   |  4 +++
 3 files changed, 68 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/jclouds/blob/ca063d8b/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
--
diff --git 
a/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java 
b/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
index 7d1a56c..d5adcc2 100644
--- 
a/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
+++ 
b/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
@@ -290,6 +290,19 @@ public class EC2HardwareBuilder extends HardwareBuilder {
   virtualizationTypes(VirtualizationType.HVM, 
VirtualizationType.PARAVIRTUAL);
   return this;
}
+   
+   private EC2HardwareBuilder x1() {
+ virtualizationTypes(VirtualizationType.HVM);
+ 
+ // TODO X1 is not deprecated, but it requires that you are using 
a VPC
+ // until we have a way for hardware instances to be filtered 
based on network
+ // we do NOT want X1 selected automatically.
+ // You get: org.jclouds.aws.AWSResponseException: request POST 
https://ec2.eu-west-1.amazonaws.com/ HTTP/1.1 failed with code 400, error: 
AWSError{requestId='2300b99e-ddc0-42ab-b1ed-9d628a161be4', requestToken='null', 
code='VPCResourceNotSpecified', message='The specified instance type can only 
be used in a VPC. A subnet ID or network interface ID is required to carry out 
the request.', context='{Response=, Errors=}'}
+ // A user can explicitly request a x1 if they are also setting up 
a VPC.
+ deprecated();
+ 
+ return this;
+   }
 
// TODO below this line are previous generation, discouraged
// http://aws.amazon.com/ec2/previous-generation/
@@ -1211,6 +1224,31 @@ public class EC2HardwareBuilder extends HardwareBuilder {
 .processors(ImmutableList.of(new Processor(64.0, 2.3)));
}
 
+   /**
+* @see InstanceType#X1_16XLARGE
+*/
+   public static EC2HardwareBuilder x1_16xlarge() {
+  return new EC2HardwareBuilder(InstanceType.X1_16XLARGE).x1()
+.ram(999424)
+.volumes(ImmutableList. of(
+new 
VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
+new 
VolumeBuilder().type(LOCAL).size(1920.0f).device("/dev/sdb").bootDevice(false).durable(false).build()))
+.processors(ImmutableList.of(new Processor(64.0, 2.3)));
+   }
+
+   /**
+* @see InstanceType#X1_32XLARGE
+*/
+   public static EC2HardwareBuilder x1_32xlarge() {
+  return new EC2HardwareBuilder(InstanceType.X1_32XLARGE).x1()
+.ram(1998848)
+.volumes(ImmutableList. of(
+new 
VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
+new 
VolumeBuilder().type(LOCAL).size(1920.0f).device("/dev/sdb").bootDevice(false).durable(false).build(),
+new 
VolumeBuilder().type(LOCAL).size(1920.0f).device("/dev/sdc").bootDevice(false).durable(false).build()))
+.processors(ImmutableList.of(new Processor(128.0, 2.3)));
+   }
+   
@SuppressWarnings("unchecked")
@Override
public Hardware build() {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/ca063d8b/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
--
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java 
b/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
index 617cc39..2faf2a4 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
@@ -842,4 +842,30 @@ public class InstanceType {
 * 
 */
public static final String R4_16XLARGE = 

[2/2] jclouds git commit: JCLOUDS-1339: Support launching an x1 EC2 instance

2018-08-23 Thread nacx
JCLOUDS-1339: Support launching an x1 EC2 instance

https://issues.apache.org/jira/browse/JCLOUDS-1339


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/88f44a6d
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/88f44a6d
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/88f44a6d

Branch: refs/heads/master
Commit: 88f44a6d8edc92e76bfe1a5fd0a00bdde6b16148
Parents: bcc6a26
Author: Markus Alexander Kuppe 
Authored: Tue Aug 21 18:31:02 2018 +
Committer: Ignasi Barrera 
Committed: Thu Aug 23 20:25:05 2018 +0200

--
 .../ec2/compute/domain/EC2HardwareBuilder.java  | 38 
 .../org/jclouds/ec2/domain/InstanceType.java| 26 ++
 .../suppliers/AWSEC2HardwareSupplier.java   |  4 +++
 3 files changed, 68 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/jclouds/blob/88f44a6d/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
--
diff --git 
a/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java 
b/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
index 7d1a56c..d5adcc2 100644
--- 
a/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
+++ 
b/apis/ec2/src/main/java/org/jclouds/ec2/compute/domain/EC2HardwareBuilder.java
@@ -290,6 +290,19 @@ public class EC2HardwareBuilder extends HardwareBuilder {
   virtualizationTypes(VirtualizationType.HVM, 
VirtualizationType.PARAVIRTUAL);
   return this;
}
+   
+   private EC2HardwareBuilder x1() {
+ virtualizationTypes(VirtualizationType.HVM);
+ 
+ // TODO X1 is not deprecated, but it requires that you are using 
a VPC
+ // until we have a way for hardware instances to be filtered 
based on network
+ // we do NOT want X1 selected automatically.
+ // You get: org.jclouds.aws.AWSResponseException: request POST 
https://ec2.eu-west-1.amazonaws.com/ HTTP/1.1 failed with code 400, error: 
AWSError{requestId='2300b99e-ddc0-42ab-b1ed-9d628a161be4', requestToken='null', 
code='VPCResourceNotSpecified', message='The specified instance type can only 
be used in a VPC. A subnet ID or network interface ID is required to carry out 
the request.', context='{Response=, Errors=}'}
+ // A user can explicitly request a x1 if they are also setting up 
a VPC.
+ deprecated();
+ 
+ return this;
+   }
 
// TODO below this line are previous generation, discouraged
// http://aws.amazon.com/ec2/previous-generation/
@@ -1211,6 +1224,31 @@ public class EC2HardwareBuilder extends HardwareBuilder {
 .processors(ImmutableList.of(new Processor(64.0, 2.3)));
}
 
+   /**
+* @see InstanceType#X1_16XLARGE
+*/
+   public static EC2HardwareBuilder x1_16xlarge() {
+  return new EC2HardwareBuilder(InstanceType.X1_16XLARGE).x1()
+.ram(999424)
+.volumes(ImmutableList. of(
+new 
VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
+new 
VolumeBuilder().type(LOCAL).size(1920.0f).device("/dev/sdb").bootDevice(false).durable(false).build()))
+.processors(ImmutableList.of(new Processor(64.0, 2.3)));
+   }
+
+   /**
+* @see InstanceType#X1_32XLARGE
+*/
+   public static EC2HardwareBuilder x1_32xlarge() {
+  return new EC2HardwareBuilder(InstanceType.X1_32XLARGE).x1()
+.ram(1998848)
+.volumes(ImmutableList. of(
+new 
VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
+new 
VolumeBuilder().type(LOCAL).size(1920.0f).device("/dev/sdb").bootDevice(false).durable(false).build(),
+new 
VolumeBuilder().type(LOCAL).size(1920.0f).device("/dev/sdc").bootDevice(false).durable(false).build()))
+.processors(ImmutableList.of(new Processor(128.0, 2.3)));
+   }
+   
@SuppressWarnings("unchecked")
@Override
public Hardware build() {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/88f44a6d/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
--
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java 
b/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
index 617cc39..2faf2a4 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/domain/InstanceType.java
@@ -842,4 +842,30 @@ public class InstanceType {
 * 
 */
public static final String R4_16XLARGE =