Repository: jclouds Updated Branches: refs/heads/master 4a7b2051f -> d50acd5e6
JCLOUDS-1372: Add support for R4 instance types Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/d50acd5e Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/d50acd5e Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/d50acd5e Branch: refs/heads/master Commit: d50acd5e61ff1febd6893b1911583c76acbbbf75 Parents: 4a7b205 Author: Ignasi Barrera <[email protected]> Authored: Tue Jan 16 12:28:19 2018 +0100 Committer: Ignasi Barrera <[email protected]> Committed: Tue Jan 16 12:28:19 2018 +0100 ---------------------------------------------------------------------- .../ec2/compute/domain/EC2HardwareBuilder.java | 61 +++++++++++++++- .../org/jclouds/ec2/domain/InstanceType.java | 73 +++++++++++++++++++- .../suppliers/AWSEC2HardwareSupplier.java | 20 +++++- 3 files changed, 149 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/d50acd5e/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 ad70a00..b9ca769 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 @@ -250,7 +250,6 @@ public class EC2HardwareBuilder extends HardwareBuilder { } // TODO include D2 (dense) types? - @SuppressWarnings("unused") private EC2HardwareBuilder d2() { virtualizationTypes(VirtualizationType.HVM); return this; @@ -261,6 +260,12 @@ public class EC2HardwareBuilder extends HardwareBuilder { return this; } + private EC2HardwareBuilder r4() { + virtualizationTypes(VirtualizationType.HVM); + rootDeviceType(RootDeviceType.EBS); + return this; + } + private EC2HardwareBuilder g2() { virtualizationTypes(VirtualizationType.HVM); return this; @@ -1014,6 +1019,60 @@ public class EC2HardwareBuilder extends HardwareBuilder { new VolumeBuilder().type(LOCAL).size(320.0f).device("/dev/sdb").bootDevice(false).durable(false).build(), new VolumeBuilder().type(LOCAL).size(320.0f).device("/dev/sdc").bootDevice(false).durable(false).build())); } + + /** + * @see InstanceType#R4_LARGE + */ + public static EC2HardwareBuilder r4_large() { + return new EC2HardwareBuilder(InstanceType.R4_LARGE).r4() + .ram(15616) + .processors(ImmutableList.of(new Processor(2.0, 2.3))); + } + + /** + * @see InstanceType#R4_XLARGE + */ + public static EC2HardwareBuilder r4_xlarge() { + return new EC2HardwareBuilder(InstanceType.R4_XLARGE).r4() + .ram(31232) + .processors(ImmutableList.of(new Processor(4.0, 2.3))); + } + + /** + * @see InstanceType#R4_2XLARGE + */ + public static EC2HardwareBuilder r4_2xlarge() { + return new EC2HardwareBuilder(InstanceType.R4_2XLARGE).r4() + .ram(62464) + .processors(ImmutableList.of(new Processor(8.0, 2.3))); + } + + /** + * @see InstanceType#R4_4XLARGE + */ + public static EC2HardwareBuilder r4_4xlarge() { + return new EC2HardwareBuilder(InstanceType.R4_4XLARGE).r4() + .ram(124928) + .processors(ImmutableList.of(new Processor(16.0, 2.3))); + } + + /** + * @see InstanceType#R4_8XLARGE + */ + public static EC2HardwareBuilder r4_8xlarge() { + return new EC2HardwareBuilder(InstanceType.R4_8XLARGE).r4() + .ram(249856) + .processors(ImmutableList.of(new Processor(32.0, 2.3))); + } + + /** + * @see InstanceType#R4_16XLARGE + */ + public static EC2HardwareBuilder r4_16xlarge() { + return new EC2HardwareBuilder(InstanceType.R4_16XLARGE).r4() + .ram(499712) + .processors(ImmutableList.of(new Processor(64.0, 2.3))); + } @SuppressWarnings("unchecked") @Override http://git-wip-us.apache.org/repos/asf/jclouds/blob/d50acd5e/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 e391bcd..53b3566 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 @@ -575,7 +575,6 @@ public class InstanceType { */ public static final String I2_8XLARGE = "i2.8xlarge"; - /** * R3 Large Memory Optimized * <ul> @@ -633,4 +632,76 @@ public class InstanceType { * </ul> */ public static final String R3_8XLARGE = "r3.8xlarge"; + + /** + * R4 Large Memory Optimized + * <ul> + * <li>15.25 GB memory</li> + * <li>2 vCPU</li> + * <li>No instance storage (EBS storage only)</li> + * <li>64-bit platform</li> + * <li>Network Performance: up to 10 Gigabit</li> + * </ul> + */ + public static final String R4_LARGE = "r4.large"; + + /** + * R4 Extra Large Memory Optimized + * <ul> + * <li>30.5 GB memory</li> + * <li>4 vCPU</li> + * <li>No instance storage (EBS storage only)</li> + * <li>64-bit platform</li> + * <li>Network Performance: up to 10 Gigabit</li> + * </ul> + */ + public static final String R4_XLARGE = "r4.xlarge"; + + /** + * R4 Double Extra Large Memory Optimized + * <ul> + * <li>61 GB memory</li> + * <li>8 vCPU</li> + * <li>No instance storage (EBS storage only)</li> + * <li>64-bit platform</li> + * <li>Network Performance: up to 10 Gigabit</li> + * </ul> + */ + public static final String R4_2XLARGE = "r4.2xlarge"; + + /** + * R4 Quadruple Extra Large Memory Optimized + * <ul> + * <li>122 GB memory</li> + * <li>16 vCPU</li> + * <li>No instance storage (EBS storage only)</li> + * <li>64-bit platform</li> + * <li>Network Performance: up to 10 Gigabit</li> + * </ul> + */ + public static final String R4_4XLARGE = "r4.4xlarge"; + + /** + * R4 Octuple Extra Large Memory Optimized + * <ul> + * <li>244 GB memory</li> + * <li>32 vCPU</li> + * <li>No instance storage (EBS storage only)</li> + * <li>64-bit platform</li> + * <li>Network Performance: 10 Gigabit</li> + * </ul> + */ + public static final String R4_8XLARGE = "r4.8xlarge"; + + /** + * R4 16x Extra Large Memory Optimized + * <ul> + * <li>488 GB memory</li> + * <li>64 vCPU</li> + * <li>No instance storage (EBS storage only)</li> + * <li>64-bit platform</li> + * <li>Network Performance: 25 Gigabit</li> + * </ul> + */ + public static final String R4_16XLARGE = "r4.16xlarge"; } http://git-wip-us.apache.org/repos/asf/jclouds/blob/d50acd5e/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/suppliers/AWSEC2HardwareSupplier.java ---------------------------------------------------------------------- diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/suppliers/AWSEC2HardwareSupplier.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/suppliers/AWSEC2HardwareSupplier.java index 26ef8b9..0409fbf 100644 --- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/suppliers/AWSEC2HardwareSupplier.java +++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/suppliers/AWSEC2HardwareSupplier.java @@ -63,22 +63,30 @@ import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_4xlarge; import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_8xlarge; import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_large; import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_xlarge; +import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_16xlarge; +import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_2xlarge; +import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_4xlarge; +import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_8xlarge; +import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_large; +import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_xlarge; import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t1_micro; import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_large; import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_medium; import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_micro; import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_small; +import java.util.Set; + import javax.inject.Inject; import javax.inject.Singleton; -import java.util.Set; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.ImmutableSet.Builder; import org.jclouds.aws.ec2.compute.config.ClusterCompute; import org.jclouds.compute.domain.Hardware; import org.jclouds.ec2.compute.suppliers.EC2HardwareSupplier; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableSet.Builder; + @Singleton public class AWSEC2HardwareSupplier extends EC2HardwareSupplier { @@ -141,6 +149,12 @@ public class AWSEC2HardwareSupplier extends EC2HardwareSupplier { sizes.add(r3_2xlarge().build()); sizes.add(r3_4xlarge().build()); sizes.add(r3_8xlarge().build()); + sizes.add(r4_large().build()); + sizes.add(r4_xlarge().build()); + sizes.add(r4_2xlarge().build()); + sizes.add(r4_4xlarge().build()); + sizes.add(r4_8xlarge().build()); + sizes.add(r4_16xlarge().build()); sizes.add(d2_xlarge().build()); sizes.add(d2_2xlarge().build()); sizes.add(d2_4xlarge().build());
