Repository: jclouds
Updated Branches:
  refs/heads/2.0.x 382c9201e -> ec20f05b6


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/ec20f05b
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/ec20f05b
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/ec20f05b

Branch: refs/heads/2.0.x
Commit: ec20f05b6876a4012e7a844f688c9bbbd7104ba9
Parents: 382c920
Author: Ignasi Barrera <[email protected]>
Authored: Tue Jan 16 12:28:19 2018 +0100
Committer: Ignasi Barrera <[email protected]>
Committed: Tue Jan 16 12:57:33 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/ec20f05b/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/ec20f05b/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/ec20f05b/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());

Reply via email to