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 121dc89552..79d5c1556d 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
@@ -47,14 +47,14 @@ import com.google.common.collect.ImmutableList;
/**
*
* @author Adrian Cole
- * @see
*/
public class EC2HardwareBuilder extends HardwareBuilder {
private Predicate rootDeviceType = any();
private Predicate virtualizationType = Predicates.or(new IsWindows(), new RequiresVirtualizationType(
- VirtualizationType.PARAVIRTUAL));
+ VirtualizationType.PARAVIRTUAL));
private Predicate imageIds = any();
private Predicate is64Bit = any();
@@ -79,7 +79,7 @@ public class EC2HardwareBuilder extends HardwareBuilder {
@Override
public boolean apply(Image image) {
return image.getUserMetadata().containsKey("rootDeviceType")
- && type == RootDeviceType.fromValue(image.getUserMetadata().get("rootDeviceType"));
+ && type == RootDeviceType.fromValue(image.getUserMetadata().get("rootDeviceType"));
}
@Override
@@ -120,7 +120,7 @@ public class EC2HardwareBuilder extends HardwareBuilder {
@Override
public boolean apply(Image image) {
return image.getOperatingSystem() != null && image.getOperatingSystem().getArch() != null
- && type == VirtualizationType.fromValue(image.getOperatingSystem().getArch());
+ && type == VirtualizationType.fromValue(image.getOperatingSystem().getArch());
}
@Override
@@ -207,37 +207,43 @@ public class EC2HardwareBuilder extends HardwareBuilder {
* @see InstanceType#M1_SMALL
*/
public static EC2HardwareBuilder m1_small32() {
- return new EC2HardwareBuilder(InstanceType.M1_SMALL).ram(1740).processors(
- ImmutableList.of(new Processor(1.0, 1.0))).volumes(
- ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(150.0f,
+ return new EC2HardwareBuilder(InstanceType.M1_SMALL)
+ .ram(1740)
+ .processors(ImmutableList.of(new Processor(1.0, 1.0)))
+ .volumes(
+ ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(150.0f,
"/dev/sda2", false, false))).is64Bit(false);
}
-
+
/**
* @see InstanceType#M1_SMALL
*/
public static EC2HardwareBuilder m1_small() {
- return new EC2HardwareBuilder(InstanceType.M1_SMALL).ram(1740).processors(
- ImmutableList.of(new Processor(1.0, 1.0))).volumes(
- ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(150.0f,
+ return new EC2HardwareBuilder(InstanceType.M1_SMALL)
+ .ram(1740)
+ .processors(ImmutableList.of(new Processor(1.0, 1.0)))
+ .volumes(
+ ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(150.0f,
"/dev/sda2", false, false)));
}
-
+
/**
* @see InstanceType#T1_MICRO
*/
public static EC2HardwareBuilder t1_micro() {
- return new EC2HardwareBuilder(InstanceType.T1_MICRO).ram(630).processors(
- ImmutableList.of(new Processor(1.0, 1.0))).rootDeviceType(RootDeviceType.EBS);
+ return new EC2HardwareBuilder(InstanceType.T1_MICRO).ram(630)
+ .processors(ImmutableList.of(new Processor(1.0, 1.0))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#M1_LARGE
*/
public static EC2HardwareBuilder m1_large() {
- return new EC2HardwareBuilder(InstanceType.M1_LARGE).ram(7680).processors(
- ImmutableList.of(new Processor(2.0, 2.0))).volumes(
- ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(420.0f,
+ return new EC2HardwareBuilder(InstanceType.M1_LARGE)
+ .ram(7680)
+ .processors(ImmutableList.of(new Processor(2.0, 2.0)))
+ .volumes(
+ ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(420.0f,
"/dev/sdb", false, false), new VolumeImpl(420.0f, "/dev/sdc", false, false))).is64Bit(true);
}
@@ -245,30 +251,34 @@ public class EC2HardwareBuilder extends HardwareBuilder {
* @see InstanceType#M1_XLARGE
*/
public static EC2HardwareBuilder m1_xlarge() {
- return new EC2HardwareBuilder(InstanceType.M1_XLARGE).ram(15360).processors(
- ImmutableList.of(new Processor(4.0, 2.0))).volumes(
- ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(420.0f,
+ return new EC2HardwareBuilder(InstanceType.M1_XLARGE)
+ .ram(15360)
+ .processors(ImmutableList.of(new Processor(4.0, 2.0)))
+ .volumes(
+ ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(420.0f,
"/dev/sdb", false, false), new VolumeImpl(420.0f, "/dev/sdc", false, false), new VolumeImpl(
- 420.0f, "/dev/sdd", false, false), new VolumeImpl(420.0f, "/dev/sde", false, false))).is64Bit(
- true);
+ 420.0f, "/dev/sdd", false, false), new VolumeImpl(420.0f, "/dev/sde", false, false)))
+ .is64Bit(true);
}
/**
* @see InstanceType#M2_XLARGE
*/
public static EC2HardwareBuilder m2_xlarge() {
- return new EC2HardwareBuilder(InstanceType.M2_XLARGE).ram(17510).processors(
- ImmutableList.of(new Processor(2.0, 3.25))).volumes(
- ImmutableList. of(new VolumeImpl(420.0f, "/dev/sda1", true, false))).is64Bit(true);
+ return new EC2HardwareBuilder(InstanceType.M2_XLARGE).ram(17510)
+ .processors(ImmutableList.of(new Processor(2.0, 3.25)))
+ .volumes(ImmutableList. of(new VolumeImpl(420.0f, "/dev/sda1", true, false))).is64Bit(true);
}
/**
* @see InstanceType#M2_2XLARGE
*/
public static EC2HardwareBuilder m2_2xlarge() {
- return new EC2HardwareBuilder(InstanceType.M2_2XLARGE).ram(35020).processors(
- ImmutableList.of(new Processor(4.0, 3.25))).volumes(
- ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(840.0f,
+ return new EC2HardwareBuilder(InstanceType.M2_2XLARGE)
+ .ram(35020)
+ .processors(ImmutableList.of(new Processor(4.0, 3.25)))
+ .volumes(
+ ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(840.0f,
"/dev/sdb", false, false))).is64Bit(true);
}
@@ -276,9 +286,11 @@ public class EC2HardwareBuilder extends HardwareBuilder {
* @see InstanceType#M2_4XLARGE
*/
public static EC2HardwareBuilder m2_4xlarge() {
- return new EC2HardwareBuilder(InstanceType.M2_4XLARGE).ram(70041).processors(
- ImmutableList.of(new Processor(8.0, 3.25))).volumes(
- ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(840.0f,
+ return new EC2HardwareBuilder(InstanceType.M2_4XLARGE)
+ .ram(70041)
+ .processors(ImmutableList.of(new Processor(8.0, 3.25)))
+ .volumes(
+ ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(840.0f,
"/dev/sdb", false, false), new VolumeImpl(840.0f, "/dev/sdc", false, false))).is64Bit(true);
}
@@ -286,9 +298,11 @@ public class EC2HardwareBuilder extends HardwareBuilder {
* @see InstanceType#C1_MEDIUM
*/
public static EC2HardwareBuilder c1_medium() {
- return new EC2HardwareBuilder(InstanceType.C1_MEDIUM).ram(1740).processors(
- ImmutableList.of(new Processor(2.0, 2.5))).volumes(
- ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(340.0f,
+ return new EC2HardwareBuilder(InstanceType.C1_MEDIUM)
+ .ram(1740)
+ .processors(ImmutableList.of(new Processor(2.0, 2.5)))
+ .volumes(
+ ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(340.0f,
"/dev/sda2", false, false))).is64Bit(false);
}
@@ -296,20 +310,45 @@ public class EC2HardwareBuilder extends HardwareBuilder {
* @see InstanceType#C1_XLARGE
*/
public static EC2HardwareBuilder c1_xlarge() {
- return new EC2HardwareBuilder(InstanceType.C1_XLARGE).ram(7168).processors(
- ImmutableList.of(new Processor(8.0, 2.5))).volumes(
- ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(420.0f,
+ return new EC2HardwareBuilder(InstanceType.C1_XLARGE)
+ .ram(7168)
+ .processors(ImmutableList.of(new Processor(8.0, 2.5)))
+ .volumes(
+ ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(420.0f,
"/dev/sdb", false, false), new VolumeImpl(420.0f, "/dev/sdc", false, false), new VolumeImpl(
- 420.0f, "/dev/sdd", false, false), new VolumeImpl(420.0f, "/dev/sde", false, false))).is64Bit(
- true);
+ 420.0f, "/dev/sdd", false, false), new VolumeImpl(420.0f, "/dev/sde", false, false)))
+ .is64Bit(true);
+ }
+
+ public static EC2HardwareBuilder cg1_4xlarge() {
+ return new EC2HardwareBuilder(InstanceType.CG1_4XLARGE)
+ .ram(22 * 1024)
+ .processors(ImmutableList.of(new Processor(4.0, 4.0), new Processor(4.0, 4.0)))
+ .volumes(
+ ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(840.0f,
+ "/dev/sdb", false, false), new VolumeImpl(840.0f, "/dev/sdc", false, false)))
+ .virtualizationType(VirtualizationType.HVM);
}
public static EC2HardwareBuilder cc1_4xlarge() {
- return new EC2HardwareBuilder(InstanceType.CC1_4XLARGE).ram(23 * 1024).processors(
- ImmutableList.of(new Processor(4.0, 4.0), new Processor(4.0, 4.0))).volumes(
- ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(840.0f,
+ return new EC2HardwareBuilder(InstanceType.CC1_4XLARGE)
+ .ram(23 * 1024)
+ .processors(ImmutableList.of(new Processor(4.0, 4.0), new Processor(4.0, 4.0)))
+ .volumes(
+ ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(840.0f,
"/dev/sdb", false, false), new VolumeImpl(840.0f, "/dev/sdc", false, false)))
- .virtualizationType(VirtualizationType.HVM);
+ .virtualizationType(VirtualizationType.HVM);
+ }
+
+ public static EC2HardwareBuilder cc2_8xlarge() {
+ return new EC2HardwareBuilder(InstanceType.CC2_8XLARGE)
+ .ram(60 * 1024 + 512)
+ .processors(ImmutableList.of(new Processor(8.0, 5.5), new Processor(8.0, 5.5)))
+ .volumes(
+ ImmutableList. of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(840.0f,
+ "/dev/sdb", false, false), new VolumeImpl(840.0f, "/dev/sdc", false, false), new VolumeImpl(
+ 840.0f, "/dev/sdb", false, false), new VolumeImpl(840.0f, "/dev/sdc", false, false)))
+ .virtualizationType(VirtualizationType.HVM);
}
@SuppressWarnings("unchecked")
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 62ed6249af..80d13b703d 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
@@ -133,7 +133,21 @@ public class InstanceType {
*
*/
public static final String C1_XLARGE = "c1.xlarge";
-
+
+ /**
+ * Cluster Compute Instance
+ *
+ * - 22 GB of memory
+ * - 33.5 EC2 Compute Units (2 x Intel Xeon X5570, quad-core "Nehalem"
+ * architecture)
+ * - 1690 GB of 64-bit storage (2 x 840 GB, plus 10 GB root partition)
+ * - 10 Gbps Ethernet
+ * - 64-bit platform
+ * - I/O Performance: High
+ *
+ */
+ public static final String CG1_4XLARGE = "cg1.4xlarge";
+
/**
* Cluster Compute Instance
*
@@ -147,5 +161,18 @@ public class InstanceType {
*
*/
public static final String CC1_4XLARGE = "cc1.4xlarge";
+
+ /**
+ * Cluster Compute Eight Extra Large specifications
+ *
+ * - 60.5 GB of memory
+ * - 88 EC2 Compute Units (Eight-core 2 x Intel Xeon)
+ * - 3370 GB of 64-bit storage (4 x 840 GB, plus 10 GB root partition)
+ * - 10 Gbps Ethernet
+ * - 64-bit platform
+ * - I/O Performance: High
+ *
+ */
+ public static final String CC2_8XLARGE = "cc2.8xlarge";
}
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 365161338c..fff76ed9c1 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
@@ -21,6 +21,8 @@ package org.jclouds.aws.ec2.compute.suppliers;
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.cc1_4xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.cc2_8xlarge;
+import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.cg1_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_small32;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_xlarge;
@@ -59,6 +61,8 @@ public class AWSEC2HardwareSupplier extends EC2HardwareSupplier {
public Set extends Hardware> get() {
Builder sizes = ImmutableSet.builder();
sizes.add(cc1_4xlarge().supportsImageIds(ccAmis).build());
+ sizes.add(cg1_4xlarge().supportsImageIds(ccAmis).build());
+ sizes.add(cc2_8xlarge().supportsImageIds(ccAmis).build());
sizes.addAll(ImmutableSet. of(t1_micro().build(), c1_medium().build(), c1_xlarge().build(), m1_large()
.build(), m1_small32().build(), m1_xlarge().build(), m2_xlarge().build(), m2_2xlarge().build(),
m2_4xlarge().build()));
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateBuilderLiveTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateBuilderLiveTest.java
index c203ec721e..7c94f20d30 100644
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateBuilderLiveTest.java
+++ b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateBuilderLiveTest.java
@@ -188,25 +188,25 @@ public class AWSEC2TemplateBuilderLiveTest extends BaseTemplateBuilderLiveTest {
Template fastestTemplate = context.getComputeService().templateBuilder().fastest().osFamily(OsFamily.AMZN_LINUX)
.build();
assert (fastestTemplate.getImage().getProviderId().startsWith("ami-")) : fastestTemplate;
- assertEquals(fastestTemplate.getHardware().getProviderId(), InstanceType.CC1_4XLARGE);
+ assertEquals(fastestTemplate.getHardware().getProviderId(), InstanceType.CC2_8XLARGE);
assertEquals(fastestTemplate.getImage().getOperatingSystem().getVersion(), "2011.09.2");
assertEquals(fastestTemplate.getImage().getOperatingSystem().is64Bit(), true);
assertEquals(fastestTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.AMZN_LINUX);
assertEquals(fastestTemplate.getImage().getUserMetadata().get("rootDeviceType"), "ebs");
assertEquals(fastestTemplate.getLocation().getId(), "us-east-1");
- assertEquals(getCores(fastestTemplate.getHardware()), 8.0d);
+ assertEquals(getCores(fastestTemplate.getHardware()), 16.0d);
assertEquals(fastestTemplate.getImage().getOperatingSystem().getArch(), "hvm");
fastestTemplate = context.getComputeService().templateBuilder().fastest().build();
System.out.println(fastestTemplate.getImage());
assert (fastestTemplate.getImage().getProviderId().startsWith("ami-")) : fastestTemplate;
- assertEquals(fastestTemplate.getHardware().getProviderId(), InstanceType.CC1_4XLARGE);
+ assertEquals(fastestTemplate.getHardware().getProviderId(), InstanceType.CC2_8XLARGE);
assertEquals(fastestTemplate.getImage().getOperatingSystem().getVersion(), "12.04");
assertEquals(fastestTemplate.getImage().getOperatingSystem().is64Bit(), true);
assertEquals(fastestTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU);
assertEquals(fastestTemplate.getImage().getUserMetadata().get("rootDeviceType"), "ebs");
assertEquals(fastestTemplate.getLocation().getId(), "us-east-1");
- assertEquals(getCores(fastestTemplate.getHardware()), 8.0d);
+ assertEquals(getCores(fastestTemplate.getHardware()), 16.0d);
assertEquals(fastestTemplate.getImage().getOperatingSystem().getArch(), "hvm");
}
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/PlacementGroupClientLiveTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/PlacementGroupClientLiveTest.java
index 06d69eb8a9..e4ff0a2dbf 100644
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/PlacementGroupClientLiveTest.java
+++ b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/PlacementGroupClientLiveTest.java
@@ -67,7 +67,7 @@ import com.google.inject.Module;
*
* @author Adrian Cole
*/
-@Test(groups = "live", sequential = true)
+@Test(groups = "live", singleThreaded = true, testName = "PlacementGroupClientLiveTest")
public class PlacementGroupClientLiveTest {
private AWSEC2Client client;
@@ -169,7 +169,7 @@ public class PlacementGroupClientLiveTest {
Template template = context.getComputeService().templateBuilder().fastest().osFamily(OsFamily.AMZN_LINUX).build();
assert template != null : "The returned template was null, but it should have a value.";
- assertEquals(template.getHardware().getProviderId(), InstanceType.CC1_4XLARGE);
+ assertEquals(template.getHardware().getProviderId(), InstanceType.CC2_8XLARGE);
assertEquals(template.getImage().getUserMetadata().get("rootDeviceType"), "ebs");
assertEquals(template.getImage().getUserMetadata().get("virtualizationType"), "hvm");
assertEquals(template.getImage().getUserMetadata().get("hypervisor"), "xen");
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/SpotInstanceClientLiveTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/SpotInstanceClientLiveTest.java
index fdbf33484b..cc7b1a93f1 100644
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/SpotInstanceClientLiveTest.java
+++ b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/SpotInstanceClientLiveTest.java
@@ -143,8 +143,8 @@ public class SpotInstanceClientLiveTest {
ImmutableSet.of("Linux/UNIX", "Linux/UNIX (Amazon VPC)", "SUSE Linux", "SUSE Linux (Amazon VPC)",
"Windows", "Windows (Amazon VPC)")).apply(spot.getProductDescription()) : spot;
assert in(
- ImmutableSet.of("c1.medium", "c1.xlarge", "cc1.4xlarge", "cg1.4xlarge", "m1.large", "m1.small",
- "m1.xlarge", "m2.2xlarge", "m2.4xlarge", "m2.xlarge", "t1.micro")).apply(
+ ImmutableSet.of("c1.medium", "c1.xlarge", "cc1.4xlarge", "cg1.4xlarge", "cc2.8xlarge", "m1.large",
+ "m1.small", "m1.xlarge", "m2.2xlarge", "m2.4xlarge", "m2.xlarge", "t1.micro")).apply(
spot.getInstanceType()) : spot;
}
@@ -167,7 +167,7 @@ public class SpotInstanceClientLiveTest {
"us-west-2",
0.09f,
1,
- LaunchSpecification.builder().imageId("ami-951945d0").instanceType(InstanceType.M1_SMALL).build(),
+ LaunchSpecification.builder().imageId("ami-38fe7308").instanceType(InstanceType.M1_SMALL).build(),
launchGroup(launchGroup).availabilityZoneGroup(launchGroup).validFrom(
new Date(System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(2))).validUntil(
new Date(System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(SPOT_DELAY_SECONDS))));