Add ARM architecture to ec2 image and the related instance types
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 e31dd33..753a0d2 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
@@ -1518,7 +1518,51 @@
new VolumeBuilder().type(LOCAL).size(1920.0f).device("/dev/sdc").bootDevice(false).durable(false).build()))
.processors(ImmutableList.of(new Processor(128.0, 2.3)));
}
-
+
+ /**
+ * @see InstanceType#A1_MEDIUM
+ */
+ public static EC2HardwareBuilder a1_medium() {
+ return new EC2HardwareBuilder(InstanceType.A1_MEDIUM).ram(2048)
+ .processors(ImmutableList.of(new Processor(1, 2.3))).rootDeviceType(RootDeviceType.EBS)
+ .virtualizationType(VirtualizationType.HVM);
+ }
+
+ /**
+ * @see InstanceType#A1_LARGE
+ */
+ public static org.jclouds.ec2.compute.domain.EC2HardwareBuilder a1_large() {
+ return new EC2HardwareBuilder(InstanceType.A1_LARGE).ram(4096).processors(ImmutableList.of(new Processor(2, 2.3)))
+ .rootDeviceType(RootDeviceType.EBS).virtualizationType(VirtualizationType.HVM);
+ }
+
+ /**
+ * @see InstanceType#A1_XLARGE
+ */
+ public static org.jclouds.ec2.compute.domain.EC2HardwareBuilder a1_xlarge() {
+ return new EC2HardwareBuilder(InstanceType.A1_XLARGE).ram(8192)
+ .processors(ImmutableList.of(new Processor(4, 2.3))).rootDeviceType(RootDeviceType.EBS)
+ .virtualizationType(VirtualizationType.HVM);
+ }
+
+ /**
+ * @see InstanceType#A1_2XLARGE
+ */
+ public static org.jclouds.ec2.compute.domain.EC2HardwareBuilder a1_2xlarge() {
+ return new EC2HardwareBuilder(InstanceType.A1_2XLARGE).ram(16384)
+ .processors(ImmutableList.of(new Processor(8, 2.3))).rootDeviceType(RootDeviceType.EBS)
+ .virtualizationType(VirtualizationType.HVM);
+ }
+
+ /**
+ * @see InstanceType#A1_4XLARGE
+ */
+ public static org.jclouds.ec2.compute.domain.EC2HardwareBuilder a1_4xlarge() {
+ return new EC2HardwareBuilder(InstanceType.A1_4XLARGE).ram(32768)
+ .processors(ImmutableList.of(new Processor(16, 2.3))).rootDeviceType(RootDeviceType.EBS)
+ .virtualizationType(VirtualizationType.HVM);
+ }
+
@SuppressWarnings("unchecked")
@Override
public Hardware build() {
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/domain/Image.java b/apis/ec2/src/main/java/org/jclouds/ec2/domain/Image.java
index 6a037ad..1648280 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/domain/Image.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/domain/Image.java
@@ -123,7 +123,7 @@
}
public static enum Architecture {
- I386, X86_64, UNRECOGNIZED;
+ I386, X86_64, ARM64, UNRECOGNIZED;
public String value() {
return name().toLowerCase();
}
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 d673d9a..2bbbafc 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
@@ -1129,4 +1129,69 @@
* </ul>
*/
public static final String X1_32XLARGE = "x1.32xlarge";
+
+ /**
+ * A1 Medium
+ * <ul>
+ * <li>Provider Id: a1.medium</li>
+ * <li>vCPU: 1</li>
+ * <li>Memory (GiB): 2</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 A1_MEDIUM = "a1.medium";
+
+ /**
+ * A1 Large
+ * <ul>
+ * <li>Provider Id: a1.large</li>
+ * <li>vCPU: 2</li>
+ * <li>Memory (GiB): 4</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 A1_LARGE = "a1.large";
+
+ /**
+ * A1 XLarge
+ * <ul>
+ * <li>Provider Id: a1.xlarge</li>
+ * <li>vCPU: 4</li>
+ * <li>Memory (GiB): 8</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 A1_XLARGE = "a1.xlarge";
+
+ /**
+ * A1 2XLarge
+ * <ul>
+ * <li>Provider Id: a1.2xlarge</li>
+ * <li>vCPU: 8</li>
+ * <li>Memory (GiB): 16</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 A1_2XLARGE = "a1.2xlarge";
+
+ /**
+ * A1 4XLarge
+ * <ul>
+ * <li>Provider Id: a1.4xlarge</li>
+ * <li>vCPU: 16</li>
+ * <li>Memory (GiB): 32</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 A1_4XLARGE = "a1.4xlarge";
}
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 e35ec5f..647e867 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
@@ -16,6 +16,11 @@
*/
package org.jclouds.aws.ec2.compute.suppliers;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.a1_medium;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.a1_large;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.a1_xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.a1_2xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.a1_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.c1_medium;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.c1_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.c3_2xlarge;
@@ -233,6 +238,11 @@
sizes.add(d2_8xlarge().build());
sizes.add(x1_32xlarge().build());
sizes.add(x1_16xlarge().build());
+ sizes.add(a1_medium().build());
+ sizes.add(a1_large().build());
+ sizes.add(a1_xlarge().build());
+ sizes.add(a1_2xlarge().build());
+ sizes.add(a1_4xlarge().build());
return sizes.build();
}
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeServiceApiMockTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeServiceApiMockTest.java
index cc81219..e11a1dd 100644
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeServiceApiMockTest.java
+++ b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeServiceApiMockTest.java
@@ -35,7 +35,7 @@
protected String getDefaultSmallestInstanceType() {
// NOT t2.xxx because that requires a VPC
- return "m3.medium";
+ return "a1.medium";
}
protected String getDefaultParavirtualInstanceType() {
@@ -44,7 +44,7 @@
}
protected String getDefaultImageId() {
- return "be3adfd7";
+ return "7ea24a17";
}
public void launchVPCSpotInstanceSubnetId() throws Exception {
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/internal/BaseAWSEC2ApiMockTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/internal/BaseAWSEC2ApiMockTest.java
index aae84d9..fab1f50 100644
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/internal/BaseAWSEC2ApiMockTest.java
+++ b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/internal/BaseAWSEC2ApiMockTest.java
@@ -58,7 +58,7 @@
import com.squareup.okhttp.mockwebserver.RecordedRequest;
/**
- * Tests need to run {@code singleThreaded = true) as otherwise tests will clash on the regionToServers field.
+ * Tests need to run {@code singleThreaded = true} as otherwise tests will clash on the regionToServers field.
* Sharing the regionToServers field means less code to write.
*/
public class BaseAWSEC2ApiMockTest {