mirror of https://github.com/apache/jclouds.git
Fix AWS and EC2 TemplateBuilder live tests
This commit is contained in:
parent
1a27a619d2
commit
569c07b982
|
@ -104,7 +104,7 @@ public class EC2TemplateOptions extends TemplateOptions implements Cloneable {
|
||||||
EC2TemplateOptions that = EC2TemplateOptions.class.cast(o);
|
EC2TemplateOptions that = EC2TemplateOptions.class.cast(o);
|
||||||
return super.equals(that) && equal(this.groupNames, that.groupNames) && equal(this.keyPair, that.keyPair)
|
return super.equals(that) && equal(this.groupNames, that.groupNames) && equal(this.keyPair, that.keyPair)
|
||||||
&& equal(this.noKeyPair, that.noKeyPair) && equal(this.userData, that.userData)
|
&& equal(this.noKeyPair, that.noKeyPair) && equal(this.userData, that.userData)
|
||||||
&& equal(this.blockDeviceMappings, that.blockDeviceMappings)
|
&& equal(this.blockDeviceMappings.build(), that.blockDeviceMappings.build())
|
||||||
&& equal(this.maxCount, that.maxCount)
|
&& equal(this.maxCount, that.maxCount)
|
||||||
&& equal(this.clientToken, that.clientToken);
|
&& equal(this.clientToken, that.clientToken);
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ public class EC2TemplateOptions extends TemplateOptions implements Cloneable {
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return Objects
|
return Objects
|
||||||
.hashCode(super.hashCode(), groupNames, keyPair, noKeyPair, userData, userData, blockDeviceMappings,
|
.hashCode(super.hashCode(), groupNames, keyPair, noKeyPair, userData, userData, blockDeviceMappings.build(),
|
||||||
maxCount, clientToken);
|
maxCount, clientToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
package org.jclouds.ec2.features;
|
package org.jclouds.ec2.features;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
import static com.google.common.collect.Iterables.getOnlyElement;
|
||||||
import static java.util.concurrent.TimeUnit.SECONDS;
|
import static java.util.concurrent.TimeUnit.SECONDS;
|
||||||
import static org.jclouds.ec2.options.CreateVolumeOptions.Builder.fromSnapshotId;
|
import static org.jclouds.ec2.options.CreateVolumeOptions.Builder.fromSnapshotId;
|
||||||
import static org.jclouds.ec2.options.CreateVolumeOptions.Builder.withSize;
|
import static org.jclouds.ec2.options.CreateVolumeOptions.Builder.withSize;
|
||||||
|
@ -25,28 +26,30 @@ import static org.jclouds.util.Predicates2.retry;
|
||||||
import static org.testng.Assert.assertEquals;
|
import static org.testng.Assert.assertEquals;
|
||||||
import static org.testng.Assert.assertFalse;
|
import static org.testng.Assert.assertFalse;
|
||||||
import static org.testng.Assert.assertNotNull;
|
import static org.testng.Assert.assertNotNull;
|
||||||
|
import static org.testng.Assert.assertTrue;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.SortedSet;
|
import java.util.SortedSet;
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
|
||||||
import com.google.common.base.Strings;
|
|
||||||
import com.google.common.collect.ImmutableMultimap;
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
|
||||||
import com.google.common.collect.Iterables;
|
|
||||||
import com.google.common.collect.Sets;
|
|
||||||
import org.jclouds.aws.AWSResponseException;
|
import org.jclouds.aws.AWSResponseException;
|
||||||
import org.jclouds.compute.internal.BaseComputeServiceContextLiveTest;
|
import org.jclouds.compute.internal.BaseComputeServiceContextLiveTest;
|
||||||
import org.jclouds.ec2.EC2Api;
|
import org.jclouds.ec2.EC2Api;
|
||||||
import org.jclouds.ec2.domain.AvailabilityZoneInfo;
|
import org.jclouds.ec2.domain.AvailabilityZoneInfo;
|
||||||
import org.jclouds.ec2.domain.Snapshot;
|
import org.jclouds.ec2.domain.Snapshot;
|
||||||
import org.jclouds.ec2.domain.Volume;
|
import org.jclouds.ec2.domain.Volume;
|
||||||
|
import org.jclouds.ec2.domain.Volume.Status;
|
||||||
import org.jclouds.ec2.predicates.SnapshotCompleted;
|
import org.jclouds.ec2.predicates.SnapshotCompleted;
|
||||||
import org.jclouds.ec2.predicates.VolumeAvailable;
|
import org.jclouds.ec2.predicates.VolumeAvailable;
|
||||||
import org.testng.annotations.AfterClass;
|
import org.testng.annotations.AfterClass;
|
||||||
import org.testng.annotations.BeforeClass;
|
import org.testng.annotations.BeforeClass;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import com.google.common.base.Predicate;
|
||||||
|
import com.google.common.base.Strings;
|
||||||
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
|
import com.google.common.collect.Iterables;
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests behavior of {@code ElasticBlockStoreApi}
|
* Tests behavior of {@code ElasticBlockStoreApi}
|
||||||
*/
|
*/
|
||||||
|
@ -112,9 +115,9 @@ public class ElasticBlockStoreApiLiveTest extends BaseComputeServiceContextLiveT
|
||||||
assertNotNull(allResults);
|
assertNotNull(allResults);
|
||||||
assertFalse(allResults.isEmpty());
|
assertFalse(allResults.isEmpty());
|
||||||
Volume volume = allResults.last();
|
Volume volume = allResults.last();
|
||||||
SortedSet<Volume> result = Sets.newTreeSet(client.describeVolumesInRegionWithFilter(region,
|
client.describeVolumesInRegionWithFilter(region,
|
||||||
ImmutableMultimap.<String, String>builder()
|
ImmutableMultimap.<String, String>builder()
|
||||||
.put("invalid-filter", volume.getId()).build()));
|
.put("invalid-filter", volume.getId()).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -139,7 +142,7 @@ public class ElasticBlockStoreApiLiveTest extends BaseComputeServiceContextLiveT
|
||||||
Predicate<Snapshot> snapshotted = retry(new SnapshotCompleted(client), 600, 10, SECONDS);
|
Predicate<Snapshot> snapshotted = retry(new SnapshotCompleted(client), 600, 10, SECONDS);
|
||||||
assert snapshotted.apply(snapshot);
|
assert snapshotted.apply(snapshot);
|
||||||
|
|
||||||
Snapshot result = Iterables.getOnlyElement(client.describeSnapshotsInRegion(snapshot.getRegion(),
|
Snapshot result = Iterables.getOnlyElement(client.describeSnapshotsInRegion(defaultRegion,
|
||||||
snapshotIds(snapshot.getId())));
|
snapshotIds(snapshot.getId())));
|
||||||
|
|
||||||
assertEquals(result.getProgress(), 100);
|
assertEquals(result.getProgress(), 100);
|
||||||
|
@ -154,13 +157,13 @@ public class ElasticBlockStoreApiLiveTest extends BaseComputeServiceContextLiveT
|
||||||
Predicate<Volume> availabile = retry(new VolumeAvailable(client), 600, 10, SECONDS);
|
Predicate<Volume> availabile = retry(new VolumeAvailable(client), 600, 10, SECONDS);
|
||||||
assert availabile.apply(volume);
|
assert availabile.apply(volume);
|
||||||
|
|
||||||
Volume result = Iterables.getOnlyElement(client.describeVolumesInRegion(snapshot.getRegion(), volume.getId()));
|
Volume result = Iterables.getOnlyElement(client.describeVolumesInRegion(defaultRegion, volume.getId()));
|
||||||
assertEquals(volume.getId(), result.getId());
|
assertEquals(volume.getId(), result.getId());
|
||||||
assertEquals(volume.getSnapshotId(), snapshot.getId());
|
assertEquals(volume.getSnapshotId(), snapshot.getId());
|
||||||
assertEquals(volume.getAvailabilityZone(), defaultZone);
|
assertEquals(volume.getAvailabilityZone(), defaultZone);
|
||||||
assertEquals(result.getStatus(), Volume.Status.AVAILABLE);
|
assertEquals(result.getStatus(), Volume.Status.AVAILABLE);
|
||||||
|
|
||||||
client.deleteVolumeInRegion(snapshot.getRegion(), result.getId());
|
client.deleteVolumeInRegion(defaultRegion, result.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(dependsOnMethods = "testCreateVolumeFromSnapshotInAvailabilityZone")
|
@Test(dependsOnMethods = "testCreateVolumeFromSnapshotInAvailabilityZone")
|
||||||
|
@ -172,13 +175,13 @@ public class ElasticBlockStoreApiLiveTest extends BaseComputeServiceContextLiveT
|
||||||
Predicate<Volume> availabile = retry(new VolumeAvailable(client), 600, 10, SECONDS);
|
Predicate<Volume> availabile = retry(new VolumeAvailable(client), 600, 10, SECONDS);
|
||||||
assert availabile.apply(volume);
|
assert availabile.apply(volume);
|
||||||
|
|
||||||
Volume result = Iterables.getOnlyElement(client.describeVolumesInRegion(snapshot.getRegion(), volume.getId()));
|
Volume result = Iterables.getOnlyElement(client.describeVolumesInRegion(defaultRegion, volume.getId()));
|
||||||
assertEquals(volume.getId(), result.getId());
|
assertEquals(volume.getId(), result.getId());
|
||||||
assertEquals(volume.getSnapshotId(), snapshot.getId());
|
assertEquals(volume.getSnapshotId(), snapshot.getId());
|
||||||
assertEquals(volume.getAvailabilityZone(), defaultZone);
|
assertEquals(volume.getAvailabilityZone(), defaultZone);
|
||||||
assertEquals(result.getStatus(), Volume.Status.AVAILABLE);
|
assertEquals(result.getStatus(), Volume.Status.AVAILABLE);
|
||||||
|
|
||||||
client.deleteVolumeInRegion(snapshot.getRegion(), result.getId());
|
client.deleteVolumeInRegion(defaultRegion, result.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(dependsOnMethods = "testCreateVolumeFromSnapshotInAvailabilityZoneWithOptions")
|
@Test(dependsOnMethods = "testCreateVolumeFromSnapshotInAvailabilityZoneWithOptions")
|
||||||
|
@ -189,14 +192,14 @@ public class ElasticBlockStoreApiLiveTest extends BaseComputeServiceContextLiveT
|
||||||
Predicate<Volume> availabile = retry(new VolumeAvailable(client), 600, 10, SECONDS);
|
Predicate<Volume> availabile = retry(new VolumeAvailable(client), 600, 10, SECONDS);
|
||||||
assert availabile.apply(volume);
|
assert availabile.apply(volume);
|
||||||
|
|
||||||
Volume result = Iterables.getOnlyElement(client.describeVolumesInRegion(snapshot.getRegion(), volume.getId()));
|
Volume result = Iterables.getOnlyElement(client.describeVolumesInRegion(defaultRegion, volume.getId()));
|
||||||
assertEquals(volume.getId(), result.getId());
|
assertEquals(volume.getId(), result.getId());
|
||||||
assertEquals(volume.getSnapshotId(), snapshot.getId());
|
assertEquals(volume.getSnapshotId(), snapshot.getId());
|
||||||
assertEquals(volume.getAvailabilityZone(), defaultZone);
|
assertEquals(volume.getAvailabilityZone(), defaultZone);
|
||||||
assertEquals(volume.getSize(), 2);
|
assertEquals(volume.getSize(), 2);
|
||||||
assertEquals(result.getStatus(), Volume.Status.AVAILABLE);
|
assertEquals(result.getStatus(), Volume.Status.AVAILABLE);
|
||||||
|
|
||||||
client.deleteVolumeInRegion(snapshot.getRegion(), result.getId());
|
client.deleteVolumeInRegion(defaultRegion, result.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -245,9 +248,9 @@ public class ElasticBlockStoreApiLiveTest extends BaseComputeServiceContextLiveT
|
||||||
assertNotNull(allResults);
|
assertNotNull(allResults);
|
||||||
if (!allResults.isEmpty()) {
|
if (!allResults.isEmpty()) {
|
||||||
Snapshot snapshot = allResults.last();
|
Snapshot snapshot = allResults.last();
|
||||||
Snapshot result = Iterables.getOnlyElement(client.describeSnapshotsInRegionWithFilter(region,
|
client.describeSnapshotsInRegionWithFilter(region,
|
||||||
ImmutableMultimap.<String, String>builder()
|
ImmutableMultimap.<String, String>builder()
|
||||||
.put("invalid-filter", snapshot.getId()).build()));
|
.put("invalid-filter", snapshot.getId()).build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -277,29 +280,30 @@ public class ElasticBlockStoreApiLiveTest extends BaseComputeServiceContextLiveT
|
||||||
|
|
||||||
@Test(dependsOnMethods = "testCreateVolumeFromSnapshotInAvailabilityZoneWithSize")
|
@Test(dependsOnMethods = "testCreateVolumeFromSnapshotInAvailabilityZoneWithSize")
|
||||||
public void testGetCreateVolumePermissionForSnapshot() {
|
public void testGetCreateVolumePermissionForSnapshot() {
|
||||||
client.getCreateVolumePermissionForSnapshotInRegion(snapshot.getRegion(), snapshot.getId());
|
client.getCreateVolumePermissionForSnapshotInRegion(defaultRegion, snapshot.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(dependsOnMethods = "testGetCreateVolumePermissionForSnapshot")
|
@Test(dependsOnMethods = "testGetCreateVolumePermissionForSnapshot")
|
||||||
void testDeleteVolumeInRegion() {
|
void testDeleteVolumeInRegion() {
|
||||||
client.deleteVolumeInRegion(defaultRegion, volumeId);
|
client.deleteVolumeInRegion(defaultRegion, volumeId);
|
||||||
assertEquals(client.describeVolumesInRegionWithFilter(defaultRegion,
|
Set<Volume> volumes = client.describeVolumesInRegionWithFilter(defaultRegion, ImmutableMultimap
|
||||||
ImmutableMultimap.<String, String>builder()
|
.<String, String> builder().put("volume-id", volumeId).build());
|
||||||
.put("volume-id", volumeId).build()),
|
// The volume may not exist or remain in "deleting" state for a while
|
||||||
ImmutableSet.of());
|
Volume volume = getOnlyElement(volumes, null);
|
||||||
|
assertTrue(volume == null || Status.DELETING == volume.getStatus());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(dependsOnMethods = "testDeleteVolumeInRegion")
|
@Test(dependsOnMethods = "testDeleteVolumeInRegion")
|
||||||
void testDeleteSnapshotInRegion() {
|
void testDeleteSnapshotInRegion() {
|
||||||
client.deleteSnapshotInRegion(snapshot.getRegion(), snapshot.getId());
|
client.deleteSnapshotInRegion(defaultRegion, snapshot.getId());
|
||||||
assert client.describeSnapshotsInRegion(snapshot.getRegion(), snapshotIds(snapshot.getId())).size() == 0;
|
assert client.describeSnapshotsInRegion(defaultRegion, snapshotIds(snapshot.getId())).size() == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass(groups = { "integration", "live" })
|
@AfterClass(groups = { "integration", "live" })
|
||||||
@Override
|
@Override
|
||||||
protected void tearDownContext() {
|
protected void tearDownContext() {
|
||||||
try {
|
try {
|
||||||
client.deleteSnapshotInRegion(snapshot.getRegion(), snapshot.getId());
|
client.deleteSnapshotInRegion(defaultRegion, snapshot.getId());
|
||||||
client.deleteVolumeInRegion(defaultRegion, volumeId);
|
client.deleteVolumeInRegion(defaultRegion, volumeId);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// we don't really care about any exception here, so just delete away.
|
// we don't really care about any exception here, so just delete away.
|
||||||
|
|
|
@ -852,6 +852,11 @@ public abstract class BaseComputeServiceLiveTest extends BaseComputeServiceConte
|
||||||
|
|
||||||
@Test(enabled = true)
|
@Test(enabled = true)
|
||||||
public void testCompareSizes() throws Exception {
|
public void testCompareSizes() throws Exception {
|
||||||
|
// Allow to override the comparison but keeping testng dependencies happy
|
||||||
|
doCompareSizes();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void doCompareSizes() throws Exception {
|
||||||
Hardware defaultSize = client.templateBuilder().build().getHardware();
|
Hardware defaultSize = client.templateBuilder().build().getHardware();
|
||||||
|
|
||||||
Hardware smallest = client.templateBuilder().smallest().build().getHardware();
|
Hardware smallest = client.templateBuilder().smallest().build().getHardware();
|
||||||
|
|
|
@ -20,6 +20,7 @@ import static com.google.common.collect.Iterables.getOnlyElement;
|
||||||
import static com.google.common.collect.Sets.newTreeSet;
|
import static com.google.common.collect.Sets.newTreeSet;
|
||||||
import static org.jclouds.compute.domain.OsFamily.AMZN_LINUX;
|
import static org.jclouds.compute.domain.OsFamily.AMZN_LINUX;
|
||||||
import static org.jclouds.compute.options.RunScriptOptions.Builder.runAsRoot;
|
import static org.jclouds.compute.options.RunScriptOptions.Builder.runAsRoot;
|
||||||
|
import static org.jclouds.compute.util.ComputeServiceUtils.getCores;
|
||||||
import static org.jclouds.ec2.util.IpPermissions.permit;
|
import static org.jclouds.ec2.util.IpPermissions.permit;
|
||||||
import static org.testng.Assert.assertEquals;
|
import static org.testng.Assert.assertEquals;
|
||||||
|
|
||||||
|
@ -41,6 +42,7 @@ import org.jclouds.cloudwatch.domain.GetMetricStatisticsResponse;
|
||||||
import org.jclouds.cloudwatch.domain.Statistics;
|
import org.jclouds.cloudwatch.domain.Statistics;
|
||||||
import org.jclouds.cloudwatch.domain.Unit;
|
import org.jclouds.cloudwatch.domain.Unit;
|
||||||
import org.jclouds.compute.domain.ExecResponse;
|
import org.jclouds.compute.domain.ExecResponse;
|
||||||
|
import org.jclouds.compute.domain.Hardware;
|
||||||
import org.jclouds.compute.domain.NodeMetadata;
|
import org.jclouds.compute.domain.NodeMetadata;
|
||||||
import org.jclouds.compute.domain.Template;
|
import org.jclouds.compute.domain.Template;
|
||||||
import org.jclouds.compute.predicates.NodePredicates;
|
import org.jclouds.compute.predicates.NodePredicates;
|
||||||
|
@ -189,4 +191,25 @@ public class AWSEC2ComputeServiceLiveTest extends EC2ComputeServiceLiveTest {
|
||||||
cleanupExtendedStuffInRegion(region, securityGroupApi, keyPairApi, group);
|
cleanupExtendedStuffInRegion(region, securityGroupApi, keyPairApi, group);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doCompareSizes() throws Exception {
|
||||||
|
Hardware defaultSize = view.getComputeService().templateBuilder().build().getHardware();
|
||||||
|
|
||||||
|
Hardware smallest = view.getComputeService().templateBuilder().smallest().build().getHardware();
|
||||||
|
Hardware fastest = view.getComputeService().templateBuilder().fastest().build().getHardware();
|
||||||
|
Hardware biggest = view.getComputeService().templateBuilder().biggest().build().getHardware();
|
||||||
|
|
||||||
|
assertEquals(defaultSize, smallest);
|
||||||
|
|
||||||
|
assert getCores(smallest) <= getCores(fastest) : String.format("%s ! <= %s", smallest, fastest);
|
||||||
|
// m4.10xlarge is slower but has more cores than c4.8xlarge
|
||||||
|
// assert getCores(biggest) <= getCores(fastest) : String.format("%s ! <= %s", biggest, fastest);
|
||||||
|
// assert getCores(fastest) >= getCores(biggest) : String.format("%s ! >= %s", fastest, biggest);
|
||||||
|
|
||||||
|
assert biggest.getRam() >= fastest.getRam() : String.format("%s ! >= %s", biggest, fastest);
|
||||||
|
assert biggest.getRam() >= smallest.getRam() : String.format("%s ! >= %s", biggest, smallest);
|
||||||
|
|
||||||
|
assert getCores(fastest) >= getCores(smallest) : String.format("%s ! >= %s", fastest, smallest);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ import org.jclouds.aws.ec2.AWSEC2Api;
|
||||||
import org.jclouds.aws.ec2.AWSEC2ProviderMetadata;
|
import org.jclouds.aws.ec2.AWSEC2ProviderMetadata;
|
||||||
import org.jclouds.aws.ec2.reference.AWSEC2Constants;
|
import org.jclouds.aws.ec2.reference.AWSEC2Constants;
|
||||||
import org.jclouds.compute.ComputeServiceContext;
|
import org.jclouds.compute.ComputeServiceContext;
|
||||||
|
import org.jclouds.compute.domain.Hardware;
|
||||||
import org.jclouds.compute.domain.OsFamily;
|
import org.jclouds.compute.domain.OsFamily;
|
||||||
import org.jclouds.compute.domain.Template;
|
import org.jclouds.compute.domain.Template;
|
||||||
import org.jclouds.ec2.EC2Api;
|
import org.jclouds.ec2.EC2Api;
|
||||||
|
@ -122,7 +123,7 @@ public class AWSEC2TemplateBuilderLiveTest extends EC2TemplateBuilderLiveTest {
|
||||||
public void testTemplateBuilderCanUseImageIdAndHardwareIdAndAZ() {
|
public void testTemplateBuilderCanUseImageIdAndHardwareIdAndAZ() {
|
||||||
|
|
||||||
Template template = view.getComputeService().templateBuilder().imageId("us-east-1/ami-ccb35ea5")
|
Template template = view.getComputeService().templateBuilder().imageId("us-east-1/ami-ccb35ea5")
|
||||||
.hardwareId(InstanceType.M2_2XLARGE).locationId("us-east-1a").build();
|
.hardwareId(InstanceType.M2_2XLARGE).locationId("us-east-1b").build();
|
||||||
|
|
||||||
assert template.getImage().getProviderId().startsWith("ami-") : template;
|
assert template.getImage().getProviderId().startsWith("ami-") : template;
|
||||||
assertEquals(template.getImage().getOperatingSystem().getVersion(), "5.4");
|
assertEquals(template.getImage().getOperatingSystem().getVersion(), "5.4");
|
||||||
|
@ -130,7 +131,7 @@ public class AWSEC2TemplateBuilderLiveTest extends EC2TemplateBuilderLiveTest {
|
||||||
assertEquals(template.getImage().getOperatingSystem().getFamily(), OsFamily.CENTOS);
|
assertEquals(template.getImage().getOperatingSystem().getFamily(), OsFamily.CENTOS);
|
||||||
assertEquals(template.getImage().getVersion(), "4.4.10");
|
assertEquals(template.getImage().getVersion(), "4.4.10");
|
||||||
assertEquals(template.getImage().getUserMetadata().get("rootDeviceType"), "instance-store");
|
assertEquals(template.getImage().getUserMetadata().get("rootDeviceType"), "instance-store");
|
||||||
assertEquals(template.getLocation().getId(), "us-east-1a");
|
assertEquals(template.getLocation().getId(), "us-east-1b");
|
||||||
assertEquals(template.getImage().getLocation().getId(), "us-east-1");
|
assertEquals(template.getImage().getLocation().getId(), "us-east-1");
|
||||||
assertEquals(getCores(template.getHardware()), 4.0d);
|
assertEquals(getCores(template.getHardware()), 4.0d);
|
||||||
assertEquals(template.getHardware().getId(), InstanceType.M2_2XLARGE);
|
assertEquals(template.getHardware().getId(), InstanceType.M2_2XLARGE);
|
||||||
|
@ -326,6 +327,27 @@ public class AWSEC2TemplateBuilderLiveTest extends EC2TemplateBuilderLiveTest {
|
||||||
assertEquals(defaultTemplate.getImage().getId(), imageId);
|
assertEquals(defaultTemplate.getImage().getId(), imageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void testCompareSizes() throws Exception {
|
||||||
|
Hardware defaultSize = view.getComputeService().templateBuilder().build().getHardware();
|
||||||
|
|
||||||
|
Hardware smallest = view.getComputeService().templateBuilder().smallest().build().getHardware();
|
||||||
|
Hardware fastest = view.getComputeService().templateBuilder().fastest().build().getHardware();
|
||||||
|
Hardware biggest = view.getComputeService().templateBuilder().biggest().build().getHardware();
|
||||||
|
|
||||||
|
assertEquals(defaultSize, smallest);
|
||||||
|
|
||||||
|
assert getCores(smallest) <= getCores(fastest) : String.format("%s ! <= %s", smallest, fastest);
|
||||||
|
// m4.10xlarge is slower but has more cores than c4.8xlarge
|
||||||
|
// assert getCores(biggest) <= getCores(fastest) : String.format("%s ! <= %s", biggest, fastest);
|
||||||
|
// assert getCores(fastest) >= getCores(biggest) : String.format("%s ! >= %s", fastest, biggest);
|
||||||
|
|
||||||
|
assert biggest.getRam() >= fastest.getRam() : String.format("%s ! >= %s", biggest, fastest);
|
||||||
|
assert biggest.getRam() >= smallest.getRam() : String.format("%s ! >= %s", biggest, smallest);
|
||||||
|
|
||||||
|
assert getCores(fastest) >= getCores(smallest) : String.format("%s ! >= %s", fastest, smallest);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAssignability() {
|
public void testAssignability() {
|
||||||
view.unwrapApi(EC2Api.class);
|
view.unwrapApi(EC2Api.class);
|
||||||
|
|
Loading…
Reference in New Issue