Issue 859:AWS EC2 Updates: New Medium Instance, 64-bit Ubiquity

This commit is contained in:
Adrian Cole 2012-03-08 10:52:56 -08:00
parent 9ad61ab0b7
commit 4d5b3b3d75
8 changed files with 52 additions and 42 deletions

View File

@ -203,18 +203,6 @@ public class EC2HardwareBuilder extends HardwareBuilder {
return EC2HardwareBuilder.class.cast(super.userMetadata(userMetadata));
}
/**
* @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.<Volume> of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(150.0f,
"/dev/sda2", false, false))).is64Bit(false);
}
/**
* @see InstanceType#M1_SMALL
*/
@ -227,6 +215,19 @@ public class EC2HardwareBuilder extends HardwareBuilder {
"/dev/sda2", false, false)));
}
/**
* @see InstanceType#M1_MEDIUM
*/
public static EC2HardwareBuilder m1_medium() {
return new EC2HardwareBuilder(InstanceType.M1_MEDIUM)
.ram(3750)
.processors(ImmutableList.of(new Processor(1.0, 2.0)))
.volumes(
ImmutableList.<Volume> 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)));
}
/**
* @see InstanceType#T1_MICRO
*/
@ -303,7 +304,7 @@ public class EC2HardwareBuilder extends HardwareBuilder {
.processors(ImmutableList.of(new Processor(2.0, 2.5)))
.volumes(
ImmutableList.<Volume> of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(340.0f,
"/dev/sda2", false, false))).is64Bit(false);
"/dev/sda2", false, false)));
}
/**

View File

@ -47,11 +47,22 @@ public class InstanceType {
* <li>1.7 GB memory</li>
* <li>1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit)</li>
* <li>160 GB instance storage (150 GB plus 10 GB root partition)</li>
* <li>32-bit platform</li>
* <li>32-bit or 64-bit platform</li>
* <li>I/O Performance: Moderate</li>
* </ul>
*/
public static final String M1_SMALL = "m1.small";
/**
* Medium Instance
* <ul>
* <li>3.75 GB memory</li>
* <li>2 EC2 Compute Unit (1 virtual core with 2 EC2 Compute Unit)</li>
* <li>410 GB instance storage</li>
* <li>32-bit or 64-bit platform</li>
* <li>I/O Performance: Moderate</li>
* </ul>
*/
public static final String M1_MEDIUM = "m1.medium";
/**
* Large Instance
* <ul>

View File

@ -26,7 +26,7 @@ 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.m1_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_small32;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_small;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m2_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m2_4xlarge;
@ -217,7 +217,7 @@ public class EC2TemplateBuilderTest {
.<Location> of(location));
Supplier<Set<? extends Hardware>> sizes = Suppliers.<Set<? extends Hardware>> ofInstance(ImmutableSet
.<Hardware> 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(),
m1_small().build(), m1_xlarge().build(), m2_xlarge().build(), m2_2xlarge().build(),
m2_4xlarge().build(), CC1_4XLARGE));
return new EC2TemplateBuilderImpl(locations, images, sizes, Suppliers.ofInstance(location), optionsProvider,

View File

@ -18,7 +18,7 @@
*/
package org.jclouds.ec2.compute.functions;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_small32;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_small;
import static org.testng.Assert.assertEquals;
import java.net.UnknownHostException;
@ -167,7 +167,7 @@ public class RunningInstanceToNodeMetadataTest {
@Test
public void testApplyWhereTagDoesntMatchAndImageHardwareAndLocationFound() throws UnknownHostException {
RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.of(m1_small32().build()), ImmutableSet
RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.of(m1_small().build()), ImmutableSet
.of(provider), EC2ImageParserTest.convertImages("/amzn_images.xml"), ImmutableMap
.<String, Credentials> of());
@ -181,7 +181,7 @@ public class RunningInstanceToNodeMetadataTest {
.privateAddresses(ImmutableSet.of("10.243.42.70"))
.publicAddresses(ImmutableSet.of("174.129.81.68"))
.imageId("us-east-1/ami-82e4b5c7")
.hardware(m1_small32().build())
.hardware(m1_small().build())
.operatingSystem(
new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).version("").arch("paravirtual")
.description("137112412989/amzn-ami-0.9.7-beta.i386-ebs").is64Bit(false).build())
@ -203,7 +203,7 @@ public class RunningInstanceToNodeMetadataTest {
};
LoadingCache<RegionAndName, Image> instanceToImage = CacheBuilder.newBuilder().build(nullReturningFunction);
RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.of(m1_small32().build()), ImmutableSet
RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.of(m1_small().build()), ImmutableSet
.of(provider), ImmutableMap.<String, Credentials> of(),
EC2ComputeServiceDependenciesModule.instanceToNodeState, instanceToImage);
@ -214,7 +214,7 @@ public class RunningInstanceToNodeMetadataTest {
new NodeMetadataBuilder().hostname("ip-10-243-42-70").state(NodeState.RUNNING)
.privateAddresses(ImmutableSet.of("10.243.42.70")).publicAddresses(ImmutableSet.of("174.129.81.68"))
.imageId("us-east-1/ami-82e4b5c7").id("us-east-1/i-0799056f").providerId("i-0799056f")
.hardware(m1_small32().build()).location(provider).build());
.hardware(m1_small().build()).location(provider).build());
}
protected RunningInstance firstInstanceFromResource(String resource) {

View File

@ -102,7 +102,7 @@ public class CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest {
// setup constants
String region = Region.AP_SOUTHEAST_1;
String group = "group";
Hardware size = EC2HardwareBuilder.m1_small32().build();
Hardware size = EC2HardwareBuilder.m1_small().build();
String systemGeneratedKeyPairName = "systemGeneratedKeyPair";
String generatedGroup = "group";
Set<String> generatedGroups = ImmutableSet.of(generatedGroup);
@ -158,7 +158,7 @@ public class CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest {
// setup constants
String region = Region.AP_SOUTHEAST_1;
String group = "group";
Hardware size = EC2HardwareBuilder.m1_small32().build();
Hardware size = EC2HardwareBuilder.m1_small().build();
String systemGeneratedKeyPairName = "systemGeneratedKeyPair";
String generatedGroup = "group";
Set<String> generatedGroups = ImmutableSet.of(generatedGroup);

View File

@ -24,7 +24,8 @@ 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_small;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_medium;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m2_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m2_4xlarge;
@ -64,8 +65,8 @@ public class AWSEC2HardwareSupplier extends EC2HardwareSupplier {
sizes.add(cg1_4xlarge().supportsImageIds(ccAmis).build());
sizes.add(cc2_8xlarge().supportsImageIds(ccAmis).build());
sizes.addAll(ImmutableSet.<Hardware> 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()));
.build(), m1_small().build(), m1_medium().build(), m1_xlarge().build(), m2_xlarge().build(),
m2_2xlarge().build(), m2_4xlarge().build()));
return sizes.build();
}
}

View File

@ -93,9 +93,9 @@ public class AWSEC2TemplateBuilderLiveTest extends EC2TemplateBuilderLiveTest {
}
@Test
public void testTemplateBuilderM1SMALLWithNegativeLookaroundDoesntMatchTestImages() {
public void testTemplateBuilderM1MEDIUMWithNegativeLookaroundDoesntMatchTestImages() {
Template template = context.getComputeService().templateBuilder().hardwareId(InstanceType.M1_SMALL)
Template template = context.getComputeService().templateBuilder().hardwareId(InstanceType.M1_MEDIUM)
// need to select versions with double-digits so that lexicographic
// doesn't end up prefering 9.x vs 11.x
.osVersionMatches("1[012].[10][04]")
@ -114,7 +114,7 @@ public class AWSEC2TemplateBuilderLiveTest extends EC2TemplateBuilderLiveTest {
assertEquals(template.getImage().getUserMetadata().get("rootDeviceType"), "instance-store");
assertEquals(template.getLocation().getId(), "us-east-1");
assertEquals(getCores(template.getHardware()), 1.0d);
assertEquals(template.getHardware().getId(), InstanceType.M1_SMALL);
assertEquals(template.getHardware().getId(), InstanceType.M1_MEDIUM);
assertEquals(template.getImage().getOperatingSystem().getArch(), "paravirtual");
}
@ -185,7 +185,7 @@ public class AWSEC2TemplateBuilderLiveTest extends EC2TemplateBuilderLiveTest {
.imageMatches(EC2ImagePredicates.rootDeviceType(RootDeviceType.INSTANCE_STORE)).build();
assert (defaultTemplate.getImage().getProviderId().startsWith("ami-")) : defaultTemplate;
assertEquals(defaultTemplate.getImage().getOperatingSystem().getVersion(), "2011.09.2");
assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), false);
assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true);
assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.AMZN_LINUX);
assertEquals(defaultTemplate.getImage().getUserMetadata().get("rootDeviceType"), "instance-store");
assertEquals(defaultTemplate.getLocation().getId(), "us-east-1");
@ -259,9 +259,8 @@ public class AWSEC2TemplateBuilderLiveTest extends EC2TemplateBuilderLiveTest {
assertEquals(template.getImage().getVersion(), "4.4.10");
assertEquals(template.getImage().getUserMetadata().get("rootDeviceType"), "instance-store");
assertEquals(template.getLocation().getId(), "us-east-1");
assertEquals(getCores(template.getHardware()), 2.0d);
assertEquals(template.getHardware().getId(), "m1.large"); // because it
// is 64bit
assertEquals(getCores(template.getHardware()), 1.0d);
assertEquals(template.getHardware().getId(), "m1.small");
// ensure we cache the new image for next time
assertEquals(context.getComputeService().listImages().size(), 1);
@ -295,9 +294,8 @@ public class AWSEC2TemplateBuilderLiveTest extends EC2TemplateBuilderLiveTest {
assertEquals(template.getImage().getVersion(), "4.4.10");
assertEquals(template.getImage().getUserMetadata().get("rootDeviceType"), "instance-store");
assertEquals(template.getLocation().getId(), "us-east-1");
assertEquals(getCores(template.getHardware()), 2.0d);
assertEquals(template.getHardware().getId(), "m1.large"); // because it
// is 64bit
assertEquals(getCores(template.getHardware()), 1.0d);
assertEquals(template.getHardware().getId(), "m1.small");
// ensure we cache the new image for next time
assertEquals(context.getComputeService().listImages().size(), 1);
@ -333,9 +331,8 @@ public class AWSEC2TemplateBuilderLiveTest extends EC2TemplateBuilderLiveTest {
assertEquals(template.getImage().getVersion(), "4.4.10");
assertEquals(template.getImage().getUserMetadata().get("rootDeviceType"), "instance-store");
assertEquals(template.getLocation().getId(), "us-east-1");
assertEquals(getCores(template.getHardware()), 2.0d);
assertEquals(template.getHardware().getId(), "m1.large"); // because it
// is 64bit
assertEquals(getCores(template.getHardware()), 1.0d);
assertEquals(template.getHardware().getId(), "m1.small");
} finally {
if (context != null)

View File

@ -80,7 +80,7 @@ public class CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptionsT
// setup constants
String region = Region.AP_SOUTHEAST_1;
String group = "group";
Hardware size = EC2HardwareBuilder.m1_small32().build();
Hardware size = EC2HardwareBuilder.m1_small().build();
String systemGeneratedKeyPairName = "systemGeneratedKeyPair";
String generatedGroup = "group";
Set<String> generatedGroups = ImmutableSet.of(generatedGroup);
@ -275,7 +275,7 @@ public class CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptionsT
// setup constants
String region = Region.AP_SOUTHEAST_1;
String group = "group";
Hardware size = EC2HardwareBuilder.m1_small32().build();
Hardware size = EC2HardwareBuilder.m1_small().build();
String systemGeneratedKeyPairName = "systemGeneratedKeyPair";
// create mocks
@ -335,7 +335,7 @@ public class CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptionsT
// setup constants
String region = Region.AP_SOUTHEAST_1;
String group = "group";
Hardware size = EC2HardwareBuilder.m1_small32().build();
Hardware size = EC2HardwareBuilder.m1_small().build();
String systemGeneratedKeyPairName = "systemGeneratedKeyPair";
String generatedGroup = "group";
Set<String> generatedGroups = ImmutableSet.of(generatedGroup);