added rawState to RunningInstance

This commit is contained in:
Adrian Cole 2012-06-04 13:36:05 -07:00
parent 9bf92e0403
commit ef31f5114d
25 changed files with 253 additions and 157 deletions

View File

@ -127,6 +127,7 @@ public class EC2ImageParser implements Function<org.jclouds.ec2.domain.Image, Im
} }
builder.operatingSystem(osBuilder.build()); builder.operatingSystem(osBuilder.build());
builder.status(toPortableImageStatus.get(from.getImageState())); builder.status(toPortableImageStatus.get(from.getImageState()));
builder.backendStatus(from.getRawState());
return builder.build(); return builder.build();
} }

View File

@ -115,6 +115,7 @@ public class RunningInstanceToNodeMetadata implements Function<RunningInstance,
builder.hostname(instance.getPrivateDnsName().replaceAll("\\..*", "")); builder.hostname(instance.getPrivateDnsName().replaceAll("\\..*", ""));
addCredentialsForInstance(builder, instance); addCredentialsForInstance(builder, instance);
builder.status(instanceToNodeStatus.get(instance.getInstanceState())); builder.status(instanceToNodeStatus.get(instance.getInstanceState()));
builder.backendStatus(instance.getRawState());
// collect all ip addresses into one bundle in case the api mistakenly put a private address // collect all ip addresses into one bundle in case the api mistakenly put a private address
// into the public address field // into the public address field

View File

@ -47,6 +47,7 @@ public class Image implements Comparable<Image> {
private final String imageLocation; private final String imageLocation;
private final String imageOwnerId; private final String imageOwnerId;
private final ImageState imageState; private final ImageState imageState;
private final String rawState;
private final ImageType imageType; private final ImageType imageType;
private final boolean isPublic; private final boolean isPublic;
@Nullable @Nullable
@ -73,10 +74,11 @@ public class Image implements Comparable<Image> {
} }
public Image(String region, Architecture architecture, @Nullable String name, @Nullable String description, public Image(String region, Architecture architecture, @Nullable String name, @Nullable String description,
String imageId, String imageLocation, String imageOwnerId, ImageState imageState, ImageType imageType, String imageId, String imageLocation, String imageOwnerId, ImageState imageState, String rawState,
boolean isPublic, Iterable<String> productCodes, @Nullable String kernelId, @Nullable String platform, ImageType imageType, boolean isPublic, Iterable<String> productCodes, @Nullable String kernelId,
@Nullable String ramdiskId, RootDeviceType rootDeviceType, @Nullable String rootDeviceName, @Nullable String platform, @Nullable String ramdiskId, RootDeviceType rootDeviceType,
Map<String, EbsBlockDevice> ebsBlockDevices, VirtualizationType virtualizationType, Hypervisor hypervisor) { @Nullable String rootDeviceName, Map<String, EbsBlockDevice> ebsBlockDevices,
VirtualizationType virtualizationType, Hypervisor hypervisor) {
this.region = checkNotNull(region, "region"); this.region = checkNotNull(region, "region");
this.architecture = architecture; this.architecture = architecture;
this.imageId = checkNotNull(imageId, "imageId"); this.imageId = checkNotNull(imageId, "imageId");
@ -86,6 +88,7 @@ public class Image implements Comparable<Image> {
this.imageLocation = checkNotNull(imageLocation, "imageLocation"); this.imageLocation = checkNotNull(imageLocation, "imageLocation");
this.imageOwnerId = checkNotNull(imageOwnerId, "imageOwnerId"); this.imageOwnerId = checkNotNull(imageOwnerId, "imageOwnerId");
this.imageState = checkNotNull(imageState, "imageState"); this.imageState = checkNotNull(imageState, "imageState");
this.rawState = checkNotNull(rawState, "rawState");
this.imageType = checkNotNull(imageType, "imageType"); this.imageType = checkNotNull(imageType, "imageType");
this.isPublic = isPublic; this.isPublic = isPublic;
this.kernelId = kernelId; this.kernelId = kernelId;
@ -260,6 +263,13 @@ public class Image implements Comparable<Image> {
return imageState; return imageState;
} }
/**
* raw form of {@link #getImageState()} as taken directly from the api response xml document/
*/
public String getRawState() {
return rawState;
}
/** /**
* The type of image (machine, kernel, or ramdisk). * The type of image (machine, kernel, or ramdisk).
*/ */
@ -345,7 +355,6 @@ public class Image implements Comparable<Image> {
result = prime * result + ((imageId == null) ? 0 : imageId.hashCode()); result = prime * result + ((imageId == null) ? 0 : imageId.hashCode());
result = prime * result + ((imageLocation == null) ? 0 : imageLocation.hashCode()); result = prime * result + ((imageLocation == null) ? 0 : imageLocation.hashCode());
result = prime * result + ((imageOwnerId == null) ? 0 : imageOwnerId.hashCode()); result = prime * result + ((imageOwnerId == null) ? 0 : imageOwnerId.hashCode());
result = prime * result + ((imageState == null) ? 0 : imageState.hashCode());
result = prime * result + ((imageType == null) ? 0 : imageType.hashCode()); result = prime * result + ((imageType == null) ? 0 : imageType.hashCode());
result = prime * result + (isPublic ? 1231 : 1237); result = prime * result + (isPublic ? 1231 : 1237);
result = prime * result + ((kernelId == null) ? 0 : kernelId.hashCode()); result = prime * result + ((kernelId == null) ? 0 : kernelId.hashCode());
@ -400,11 +409,6 @@ public class Image implements Comparable<Image> {
return false; return false;
} else if (!imageOwnerId.equals(other.imageOwnerId)) } else if (!imageOwnerId.equals(other.imageOwnerId))
return false; return false;
if (imageState == null) {
if (other.imageState != null)
return false;
} else if (!imageState.equals(other.imageState))
return false;
if (imageType == null) { if (imageType == null) {
if (other.imageType != null) if (other.imageType != null)
return false; return false;
@ -469,7 +473,7 @@ public class Image implements Comparable<Image> {
public String toString() { public String toString() {
return "Image [architecture=" + architecture + ", description=" + description + ", ebsBlockDevices=" return "Image [architecture=" + architecture + ", description=" + description + ", ebsBlockDevices="
+ ebsBlockDevices + ", imageId=" + imageId + ", imageLocation=" + imageLocation + ", imageOwnerId=" + ebsBlockDevices + ", imageId=" + imageId + ", imageLocation=" + imageLocation + ", imageOwnerId="
+ imageOwnerId + ", imageState=" + imageState + ", imageType=" + imageType + ", isPublic=" + isPublic + imageOwnerId + ", imageState=" + rawState + ", imageType=" + imageType + ", isPublic=" + isPublic
+ ", kernelId=" + kernelId + ", name=" + name + ", platform=" + platform + ", productCodes=" + ", kernelId=" + kernelId + ", name=" + name + ", platform=" + platform + ", productCodes="
+ productCodes + ", ramdiskId=" + ramdiskId + ", region=" + region + ", rootDeviceName=" + productCodes + ", ramdiskId=" + ramdiskId + ", region=" + region + ", rootDeviceName="
+ rootDeviceName + ", rootDeviceType=" + rootDeviceType + ", virtualizationType=" + virtualizationType + rootDeviceName + ", rootDeviceType=" + rootDeviceType + ", virtualizationType=" + virtualizationType

View File

@ -50,6 +50,7 @@ public class RunningInstance implements Comparable<RunningInstance> {
protected String imageId; protected String imageId;
protected String instanceId; protected String instanceId;
protected InstanceState instanceState; protected InstanceState instanceState;
protected String rawState;
protected String instanceType; protected String instanceType;
protected String ipAddress; protected String ipAddress;
protected String kernelId; protected String kernelId;
@ -107,6 +108,11 @@ public class RunningInstance implements Comparable<RunningInstance> {
return this; return this;
} }
public Builder rawState(String rawState) {
this.rawState = rawState;
return this;
}
public Builder instanceType(String instanceType) { public Builder instanceType(String instanceType) {
this.instanceType = instanceType; this.instanceType = instanceType;
return this; return this;
@ -190,9 +196,9 @@ public class RunningInstance implements Comparable<RunningInstance> {
public RunningInstance build() { public RunningInstance build() {
return new RunningInstance(region, groupIds, amiLaunchIndex, dnsName, imageId, instanceId, instanceState, return new RunningInstance(region, groupIds, amiLaunchIndex, dnsName, imageId, instanceId, instanceState,
instanceType, ipAddress, kernelId, keyName, launchTime, availabilityZone, virtualizationType, rawState, instanceType, ipAddress, kernelId, keyName, launchTime, availabilityZone,
platform, privateDnsName, privateIpAddress, ramdiskId, reason, rootDeviceType, rootDeviceName, virtualizationType, platform, privateDnsName, privateIpAddress, ramdiskId, reason, rootDeviceType,
ebsBlockDevices); rootDeviceName, ebsBlockDevices);
} }
public String getDnsName() { public String getDnsName() {
@ -221,6 +227,7 @@ public class RunningInstance implements Comparable<RunningInstance> {
protected final String imageId; protected final String imageId;
protected final String instanceId; protected final String instanceId;
protected final InstanceState instanceState; protected final InstanceState instanceState;
protected final String rawState;
protected final String instanceType; protected final String instanceType;
@Nullable @Nullable
protected final String ipAddress; protected final String ipAddress;
@ -251,7 +258,7 @@ public class RunningInstance implements Comparable<RunningInstance> {
} }
protected RunningInstance(String region, Iterable<String> groupIds, @Nullable String amiLaunchIndex, protected RunningInstance(String region, Iterable<String> groupIds, @Nullable String amiLaunchIndex,
@Nullable String dnsName, String imageId, String instanceId, InstanceState instanceState, @Nullable String dnsName, String imageId, String instanceId, InstanceState instanceState, String rawState,
String instanceType, @Nullable String ipAddress, @Nullable String kernelId, @Nullable String keyName, String instanceType, @Nullable String ipAddress, @Nullable String kernelId, @Nullable String keyName,
Date launchTime, String availabilityZone, String virtualizationType, @Nullable String platform, Date launchTime, String availabilityZone, String virtualizationType, @Nullable String platform,
@Nullable String privateDnsName, @Nullable String privateIpAddress, @Nullable String ramdiskId, @Nullable String privateDnsName, @Nullable String privateIpAddress, @Nullable String ramdiskId,
@ -263,6 +270,7 @@ public class RunningInstance implements Comparable<RunningInstance> {
this.imageId = imageId; // nullable on runinstances. this.imageId = imageId; // nullable on runinstances.
this.instanceId = checkNotNull(instanceId, "instanceId"); this.instanceId = checkNotNull(instanceId, "instanceId");
this.instanceState = checkNotNull(instanceState, "instanceState"); this.instanceState = checkNotNull(instanceState, "instanceState");
this.rawState = checkNotNull(rawState, "rawState");
this.instanceType = checkNotNull(instanceType, "instanceType"); this.instanceType = checkNotNull(instanceType, "instanceType");
this.ipAddress = ipAddress; this.ipAddress = ipAddress;
this.kernelId = kernelId; this.kernelId = kernelId;
@ -328,6 +336,13 @@ public class RunningInstance implements Comparable<RunningInstance> {
return instanceState; return instanceState;
} }
/**
* The current state of the instance, as returned literally from the input XML
*/
public String getRawState() {
return rawState;
}
/** /**
* The instance type. * The instance type.
*/ */
@ -577,7 +592,7 @@ public class RunningInstance implements Comparable<RunningInstance> {
@Override @Override
public String toString() { public String toString() {
return "[region=" + region + ", availabilityZone=" + availabilityZone + ", instanceId=" + instanceId return "[region=" + region + ", availabilityZone=" + availabilityZone + ", instanceId=" + instanceId
+ ", instanceState=" + instanceState + ", instanceType=" + instanceType + ", virtualizationType=" + ", instanceState=" + rawState + ", instanceType=" + instanceType + ", virtualizationType="
+ virtualizationType + ", imageId=" + imageId + ", ipAddress=" + ipAddress + ", dnsName=" + dnsName + virtualizationType + ", imageId=" + imageId + ", ipAddress=" + ipAddress + ", dnsName=" + dnsName
+ ", privateIpAddress=" + privateIpAddress + ", privateDnsName=" + privateDnsName + ", keyName=" + ", privateIpAddress=" + privateIpAddress + ", privateDnsName=" + privateDnsName + ", keyName="
+ keyName + ", groupIds=" + groupIds + ", platform=" + platform + ", launchTime=" + launchTime + ", rootDeviceName=" + keyName + ", groupIds=" + groupIds + ", platform=" + platform + ", launchTime=" + launchTime + ", rootDeviceName="

View File

@ -122,7 +122,11 @@ public abstract class BaseReservationHandler<T> extends HandlerForGeneratedReque
} else if (equalsOrSuffix(qName, "instanceId")) { } else if (equalsOrSuffix(qName, "instanceId")) {
builder.instanceId(currentOrNull(currentText)); builder.instanceId(currentOrNull(currentText));
} else if (equalsOrSuffix(qName, "name")) { } else if (equalsOrSuffix(qName, "name")) {
builder.instanceState(InstanceState.fromValue(currentOrNull(currentText))); String rawState = currentOrNull(currentText);
if (rawState != null) {
builder.rawState(rawState);
builder.instanceState(InstanceState.fromValue(rawState));
}
} else if (equalsOrSuffix(qName, "instanceType")) { } else if (equalsOrSuffix(qName, "instanceType")) {
builder.instanceType(currentOrNull(currentText)); builder.instanceType(currentOrNull(currentText));
} else if (equalsOrSuffix(qName, "ipAddress")) { } else if (equalsOrSuffix(qName, "ipAddress")) {

View File

@ -18,6 +18,8 @@
*/ */
package org.jclouds.ec2.xml; package org.jclouds.ec2.xml;
import static org.jclouds.util.SaxUtils.currentOrNull;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -27,12 +29,12 @@ import javax.inject.Inject;
import org.jclouds.aws.util.AWSUtils; import org.jclouds.aws.util.AWSUtils;
import org.jclouds.ec2.domain.Hypervisor; import org.jclouds.ec2.domain.Hypervisor;
import org.jclouds.ec2.domain.Image; import org.jclouds.ec2.domain.Image;
import org.jclouds.ec2.domain.RootDeviceType;
import org.jclouds.ec2.domain.VirtualizationType;
import org.jclouds.ec2.domain.Image.Architecture; import org.jclouds.ec2.domain.Image.Architecture;
import org.jclouds.ec2.domain.Image.EbsBlockDevice; import org.jclouds.ec2.domain.Image.EbsBlockDevice;
import org.jclouds.ec2.domain.Image.ImageState; import org.jclouds.ec2.domain.Image.ImageState;
import org.jclouds.ec2.domain.Image.ImageType; import org.jclouds.ec2.domain.Image.ImageType;
import org.jclouds.ec2.domain.RootDeviceType;
import org.jclouds.ec2.domain.VirtualizationType;
import org.jclouds.http.functions.ParseSax; import org.jclouds.http.functions.ParseSax;
import org.jclouds.location.Region; import org.jclouds.location.Region;
import org.jclouds.logging.Logger; import org.jclouds.logging.Logger;
@ -72,6 +74,7 @@ public class DescribeImagesResponseHandler extends ParseSax.HandlerForGeneratedR
private String imageLocation; private String imageLocation;
private String imageOwnerId; private String imageOwnerId;
private ImageState imageState; private ImageState imageState;
private String rawState;
private ImageType imageType; private ImageType imageType;
private boolean isPublic; private boolean isPublic;
private String kernelId; private String kernelId;
@ -124,7 +127,8 @@ public class DescribeImagesResponseHandler extends ParseSax.HandlerForGeneratedR
} else if (qName.equals("imageOwnerId")) { } else if (qName.equals("imageOwnerId")) {
imageOwnerId = currentText.toString().trim(); imageOwnerId = currentText.toString().trim();
} else if (qName.equals("imageState")) { } else if (qName.equals("imageState")) {
imageState = ImageState.fromValue(currentText.toString().trim()); rawState = currentOrNull(currentText);
imageState = ImageState.fromValue(rawState);
// eucalyptus // eucalyptus
} else if (qName.equals("imageType") || qName.equals("type")) { } else if (qName.equals("imageType") || qName.equals("type")) {
imageType = ImageType.fromValue(currentText.toString().trim()); imageType = ImageType.fromValue(currentText.toString().trim());
@ -169,8 +173,8 @@ public class DescribeImagesResponseHandler extends ParseSax.HandlerForGeneratedR
if (region == null) if (region == null)
region = defaultRegion.get(); region = defaultRegion.get();
contents.add(new Image(region, architecture, this.name, description, imageId, imageLocation, contents.add(new Image(region, architecture, this.name, description, imageId, imageLocation,
imageOwnerId, imageState, imageType, isPublic, productCodes, kernelId, platform, ramdiskId, imageOwnerId, imageState, rawState, imageType, isPublic, productCodes, kernelId, platform,
rootDeviceType, rootDeviceName, ebsBlockDevices, virtualizationType, hypervisor)); ramdiskId, rootDeviceType, rootDeviceName, ebsBlockDevices, virtualizationType, hypervisor));
} catch (NullPointerException e) { } catch (NullPointerException e) {
logger.warn(e, "malformed image: %s", imageId); logger.warn(e, "malformed image: %s", imageId);
} }
@ -181,6 +185,7 @@ public class DescribeImagesResponseHandler extends ParseSax.HandlerForGeneratedR
this.imageLocation = null; this.imageLocation = null;
this.imageOwnerId = null; this.imageOwnerId = null;
this.imageState = null; this.imageState = null;
this.rawState = null;
this.imageType = null; this.imageType = null;
this.isPublic = false; this.isPublic = false;
this.kernelId = null; this.kernelId = null;

View File

@ -27,6 +27,7 @@ import org.jclouds.compute.config.BaseComputeServiceContextModule;
import org.jclouds.compute.domain.ImageBuilder; import org.jclouds.compute.domain.ImageBuilder;
import org.jclouds.compute.domain.OperatingSystem; import org.jclouds.compute.domain.OperatingSystem;
import org.jclouds.compute.domain.OsFamily; import org.jclouds.compute.domain.OsFamily;
import org.jclouds.compute.domain.Image.Status;
import org.jclouds.compute.reference.ComputeServiceConstants; import org.jclouds.compute.reference.ComputeServiceConstants;
import org.jclouds.domain.Location; import org.jclouds.domain.Location;
import org.jclouds.domain.LocationBuilder; import org.jclouds.domain.LocationBuilder;
@ -58,8 +59,10 @@ public class EC2ImageParserTest {
public void testParseAmznImage() { public void testParseAmznImage() {
Set<org.jclouds.compute.domain.Image> result = convertImages("/amzn_images.xml"); Set<org.jclouds.compute.domain.Image> result = convertImages("/amzn_images.xml");
for (org.jclouds.compute.domain.Image image : result) for (org.jclouds.compute.domain.Image image : result) {
assertEquals(image.getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE); assertEquals(image.getStatus(), Status.AVAILABLE);
assertEquals(image.getBackendStatus(), "available");
}
assertEquals(Iterables.get(result, 0), new ImageBuilder().operatingSystem( assertEquals(Iterables.get(result, 0), new ImageBuilder().operatingSystem(
new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).arch("paravirtual").version("").description( new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).arch("paravirtual").version("").description(
@ -67,7 +70,7 @@ public class EC2ImageParserTest {
.defaultCredentials(new LoginCredentials("ec2-user", false)).id("us-east-1/ami-82e4b5c7").name( .defaultCredentials(new LoginCredentials("ec2-user", false)).id("us-east-1/ami-82e4b5c7").name(
"amzn-ami-0.9.7-beta.i386-ebs").providerId("ami-82e4b5c7").location(defaultLocation) "amzn-ami-0.9.7-beta.i386-ebs").providerId("ami-82e4b5c7").location(defaultLocation)
.userMetadata(ImmutableMap.of("owner", "137112412989", "rootDeviceType", "ebs")).status( .userMetadata(ImmutableMap.of("owner", "137112412989", "rootDeviceType", "ebs")).status(
org.jclouds.compute.domain.Image.Status.AVAILABLE).build()); Status.AVAILABLE).build());
assertEquals(Iterables.get(result, 3), new ImageBuilder().operatingSystem( assertEquals(Iterables.get(result, 3), new ImageBuilder().operatingSystem(
new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).arch("paravirtual").version("").description( new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).arch("paravirtual").version("").description(
@ -76,8 +79,7 @@ public class EC2ImageParserTest {
.id("us-east-1/ami-f2e4b5b7").providerId("ami-f2e4b5b7").name("amzn-ami-0.9.7-beta.x86_64-S3").location( .id("us-east-1/ami-f2e4b5b7").providerId("ami-f2e4b5b7").name("amzn-ami-0.9.7-beta.x86_64-S3").location(
defaultLocation) defaultLocation)
.userMetadata(ImmutableMap.of("owner", "137112412989", "rootDeviceType", "ebs")).status( .userMetadata(ImmutableMap.of("owner", "137112412989", "rootDeviceType", "ebs")).status(
org.jclouds.compute.domain.Image.Status.AVAILABLE).build()); Status.AVAILABLE).build());
;
} }
static Location defaultLocation = new LocationBuilder().scope(LocationScope.REGION).id("us-east-1").description( static Location defaultLocation = new LocationBuilder().scope(LocationScope.REGION).id("us-east-1").description(

View File

@ -62,7 +62,7 @@ import com.google.inject.name.Names;
/** /**
* @author Adrian Cole * @author Adrian Cole
*/ */
@Test(groups = "unit") @Test(groups = "unit", testName = "RunningInstanceToNodeMetadataTest")
public class RunningInstanceToNodeMetadataTest { public class RunningInstanceToNodeMetadataTest {
public void testAllStatesCovered() { public void testAllStatesCovered() {
@ -76,27 +76,27 @@ public class RunningInstanceToNodeMetadataTest {
@Test @Test
public void testPrivateIpAddressIncorrectlyInPublicAddressFieldGoesToPrivateAddressCollection() { public void testPrivateIpAddressIncorrectlyInPublicAddressFieldGoesToPrivateAddressCollection() {
RunningInstance instance = RunningInstance.builder().instanceId("id").imageId("image").instanceType("m1.small") RunningInstance instance = RunningInstance.builder().instanceId("id").imageId("image").instanceType("m1.small")
.instanceState(InstanceState.RUNNING).region("us-east-1").ipAddress("10.1.1.1").build(); .instanceState(InstanceState.RUNNING).rawState("running").region("us-east-1").ipAddress("10.1.1.1").build();
RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet
.<Location> of(), ImmutableSet.<Image> of(), ImmutableMap.<String, Credentials> of()); .<Location> of(), ImmutableSet.<Image> of(), ImmutableMap.<String, Credentials> of());
assertEquals(parser.apply(instance), new NodeMetadataBuilder().status(Status.RUNNING).publicAddresses( assertEquals(parser.apply(instance).toString(), new NodeMetadataBuilder().status(Status.RUNNING).backendStatus("running").publicAddresses(
ImmutableSet.<String> of()).privateAddresses(ImmutableSet.of("10.1.1.1")).id("us-east-1/id").imageId( ImmutableSet.<String> of()).privateAddresses(ImmutableSet.of("10.1.1.1")).id("us-east-1/id").imageId(
"us-east-1/image").providerId("id").build()); "us-east-1/image").providerId("id").build().toString());
} }
@Test @Test
public void testPublicIpAddressIncorrectlyInPrivateAddressFieldGoesToPublicAddressCollection() { public void testPublicIpAddressIncorrectlyInPrivateAddressFieldGoesToPublicAddressCollection() {
RunningInstance instance = RunningInstance.builder().instanceId("id").imageId("image").instanceType("m1.small") RunningInstance instance = RunningInstance.builder().instanceId("id").imageId("image").instanceType("m1.small")
.instanceState(InstanceState.RUNNING).region("us-east-1").privateIpAddress("1.1.1.1").build(); .instanceState(InstanceState.RUNNING).rawState("running").region("us-east-1").privateIpAddress("1.1.1.1").build();
RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet RunningInstanceToNodeMetadata parser = createNodeParser(ImmutableSet.<Hardware> of(), ImmutableSet
.<Location> of(), ImmutableSet.<Image> of(), ImmutableMap.<String, Credentials> of()); .<Location> of(), ImmutableSet.<Image> of(), ImmutableMap.<String, Credentials> of());
assertEquals(parser.apply(instance), new NodeMetadataBuilder().status(Status.RUNNING).privateAddresses( assertEquals(parser.apply(instance).toString(), new NodeMetadataBuilder().status(Status.RUNNING).backendStatus("running").privateAddresses(
ImmutableSet.<String> of()).publicAddresses(ImmutableSet.of("1.1.1.1")).id("us-east-1/id").imageId( ImmutableSet.<String> of()).publicAddresses(ImmutableSet.of("1.1.1.1")).id("us-east-1/id").imageId(
"us-east-1/image").providerId("id").build()); "us-east-1/image").providerId("id").build().toString());
} }
static Location provider = new LocationBuilder().scope(LocationScope.REGION).id("us-east-1") static Location provider = new LocationBuilder().scope(LocationScope.REGION).id("us-east-1")
@ -114,11 +114,11 @@ public class RunningInstanceToNodeMetadataTest {
RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml");
assertEquals( assertEquals(
parser.apply(server), parser.apply(server).toString(),
new NodeMetadataBuilder().status(Status.RUNNING).hostname("ip-10-243-42-70") new NodeMetadataBuilder().status(Status.RUNNING).backendStatus("running").hostname("ip-10-243-42-70")
.publicAddresses(ImmutableSet.<String> of()).privateAddresses(ImmutableSet.of("10.243.42.70")) .publicAddresses(ImmutableSet.<String> of()).privateAddresses(ImmutableSet.of("10.243.42.70"))
.publicAddresses(ImmutableSet.of("174.129.81.68")).credentials(creds) .publicAddresses(ImmutableSet.of("174.129.81.68")).credentials(creds)
.imageId("us-east-1/ami-82e4b5c7").id("us-east-1/i-0799056f").providerId("i-0799056f").build()); .imageId("us-east-1/ami-82e4b5c7").id("us-east-1/i-0799056f").providerId("i-0799056f").build().toString());
} }
@Test @Test
@ -128,11 +128,11 @@ public class RunningInstanceToNodeMetadataTest {
RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml");
assertEquals(parser.apply(server), assertEquals(parser.apply(server).toString(),
new NodeMetadataBuilder().hostname("ip-10-243-42-70").status(Status.RUNNING) new NodeMetadataBuilder().hostname("ip-10-243-42-70").status(Status.RUNNING).backendStatus("running")
.publicAddresses(ImmutableSet.<String> of()).privateAddresses(ImmutableSet.of("10.243.42.70")) .publicAddresses(ImmutableSet.<String> of()).privateAddresses(ImmutableSet.of("10.243.42.70"))
.publicAddresses(ImmutableSet.of("174.129.81.68")).imageId("us-east-1/ami-82e4b5c7") .publicAddresses(ImmutableSet.of("174.129.81.68")).imageId("us-east-1/ami-82e4b5c7")
.id("us-east-1/i-0799056f").providerId("i-0799056f").build()); .id("us-east-1/i-0799056f").providerId("i-0799056f").build().toString());
} }
@Test @Test
@ -141,12 +141,12 @@ public class RunningInstanceToNodeMetadataTest {
ImmutableSet.<Image> of(), ImmutableMap.<String, Credentials> of()); ImmutableSet.<Image> of(), ImmutableMap.<String, Credentials> of());
RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml");
NodeMetadata expected = new NodeMetadataBuilder().hostname("ip-10-243-42-70").status(Status.RUNNING) NodeMetadata expected = new NodeMetadataBuilder().hostname("ip-10-243-42-70").status(Status.RUNNING).backendStatus("running")
.privateAddresses(ImmutableSet.of("10.243.42.70")).publicAddresses(ImmutableSet.of("174.129.81.68")) .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") .imageId("us-east-1/ami-82e4b5c7").id("us-east-1/i-0799056f").providerId("i-0799056f")
.location(provider).build(); .location(provider).build();
assertEquals(parser.apply(server), expected); assertEquals(parser.apply(server).toString(), expected.toString());
} }
@Test @Test
@ -157,9 +157,9 @@ public class RunningInstanceToNodeMetadataTest {
RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml");
assertEquals( assertEquals(
parser.apply(server), parser.apply(server).toString(),
new NodeMetadataBuilder() new NodeMetadataBuilder()
.status(Status.RUNNING) .status(Status.RUNNING).backendStatus("running")
.hostname("ip-10-243-42-70") .hostname("ip-10-243-42-70")
.privateAddresses(ImmutableSet.of("10.243.42.70")) .privateAddresses(ImmutableSet.of("10.243.42.70"))
.publicAddresses(ImmutableSet.of("174.129.81.68")) .publicAddresses(ImmutableSet.of("174.129.81.68"))
@ -167,7 +167,7 @@ public class RunningInstanceToNodeMetadataTest {
.operatingSystem( .operatingSystem(
new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).version("").arch("paravirtual") new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).version("").arch("paravirtual")
.description("137112412989/amzn-ami-0.9.7-beta.i386-ebs").is64Bit(false).build()) .description("137112412989/amzn-ami-0.9.7-beta.i386-ebs").is64Bit(false).build())
.id("us-east-1/i-0799056f").providerId("i-0799056f").location(provider).build()); .id("us-east-1/i-0799056f").providerId("i-0799056f").location(provider).build().toString());
} }
@Test @Test
@ -179,10 +179,10 @@ public class RunningInstanceToNodeMetadataTest {
RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml");
assertEquals( assertEquals(
parser.apply(server), parser.apply(server).toString(),
new NodeMetadataBuilder() new NodeMetadataBuilder()
.hostname("ip-10-243-42-70") .hostname("ip-10-243-42-70")
.status(Status.RUNNING) .status(Status.RUNNING).backendStatus("running")
.privateAddresses(ImmutableSet.of("10.243.42.70")) .privateAddresses(ImmutableSet.of("10.243.42.70"))
.publicAddresses(ImmutableSet.of("174.129.81.68")) .publicAddresses(ImmutableSet.of("174.129.81.68"))
.imageId("us-east-1/ami-82e4b5c7") .imageId("us-east-1/ami-82e4b5c7")
@ -190,7 +190,7 @@ public class RunningInstanceToNodeMetadataTest {
.operatingSystem( .operatingSystem(
new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).version("").arch("paravirtual") new OperatingSystem.Builder().family(OsFamily.UNRECOGNIZED).version("").arch("paravirtual")
.description("137112412989/amzn-ami-0.9.7-beta.i386-ebs").is64Bit(false).build()) .description("137112412989/amzn-ami-0.9.7-beta.i386-ebs").is64Bit(false).build())
.id("us-east-1/i-0799056f").providerId("i-0799056f").location(provider).build()); .id("us-east-1/i-0799056f").providerId("i-0799056f").location(provider).build().toString());
} }
@Test @Test
@ -215,24 +215,24 @@ public class RunningInstanceToNodeMetadataTest {
RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml"); RunningInstance server = firstInstanceFromResource("/describe_instances_running.xml");
assertEquals( assertEquals(
parser.apply(server), parser.apply(server).toString(),
new NodeMetadataBuilder().hostname("ip-10-243-42-70").status(Status.RUNNING) new NodeMetadataBuilder().hostname("ip-10-243-42-70").status(Status.RUNNING).backendStatus("running")
.privateAddresses(ImmutableSet.of("10.243.42.70")).publicAddresses(ImmutableSet.of("174.129.81.68")) .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") .imageId("us-east-1/ami-82e4b5c7").id("us-east-1/i-0799056f").providerId("i-0799056f")
.hardware(m1_small().build()).location(provider).build()); .hardware(m1_small().build()).location(provider).build().toString());
} }
@Test @Test
public void testGroupNameIsSetWhenCustomKeyNameIsSetAndSecurityGroupIsGenerated() { public void testGroupNameIsSetWhenCustomKeyNameIsSetAndSecurityGroupIsGenerated() {
checkGroupName(RunningInstance.builder().instanceId("id").imageId("image").instanceType("m1.small") checkGroupName(RunningInstance.builder().instanceId("id").imageId("image").instanceType("m1.small")
.instanceState(InstanceState.RUNNING).region("us-east-1").keyName("custom-key") .instanceState(InstanceState.RUNNING).rawState("running").region("us-east-1").keyName("custom-key")
.groupId("jclouds#groupname").build()); .groupId("jclouds#groupname").build());
} }
@Test @Test
public void testGroupNameIsSetWhenCustomSecurityGroupIsSetAndKeyNameIsGenerated() { public void testGroupNameIsSetWhenCustomSecurityGroupIsSetAndKeyNameIsGenerated() {
checkGroupName(RunningInstance.builder().instanceId("id").imageId("image").instanceType("m1.small") checkGroupName(RunningInstance.builder().instanceId("id").imageId("image").instanceType("m1.small")
.instanceState(InstanceState.RUNNING).region("us-east-1").groupId("custom-sec") .instanceState(InstanceState.RUNNING).rawState("running").region("us-east-1").groupId("custom-sec")
.keyName("jclouds#groupname#23").build()); .keyName("jclouds#groupname#23").build());
} }

View File

@ -18,6 +18,7 @@
*/ */
package org.jclouds.ec2.xml; package org.jclouds.ec2.xml;
import static com.google.common.collect.Iterables.get;
import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertEquals;
import java.io.InputStream; import java.io.InputStream;
@ -26,12 +27,12 @@ import java.util.Set;
import org.jclouds.ec2.compute.functions.EC2ImageParserTest; import org.jclouds.ec2.compute.functions.EC2ImageParserTest;
import org.jclouds.ec2.domain.Hypervisor; import org.jclouds.ec2.domain.Hypervisor;
import org.jclouds.ec2.domain.Image; import org.jclouds.ec2.domain.Image;
import org.jclouds.ec2.domain.RootDeviceType;
import org.jclouds.ec2.domain.VirtualizationType;
import org.jclouds.ec2.domain.Image.Architecture; import org.jclouds.ec2.domain.Image.Architecture;
import org.jclouds.ec2.domain.Image.EbsBlockDevice; import org.jclouds.ec2.domain.Image.EbsBlockDevice;
import org.jclouds.ec2.domain.Image.ImageState; import org.jclouds.ec2.domain.Image.ImageState;
import org.jclouds.ec2.domain.Image.ImageType; import org.jclouds.ec2.domain.Image.ImageType;
import org.jclouds.ec2.domain.RootDeviceType;
import org.jclouds.ec2.domain.VirtualizationType;
import org.jclouds.http.functions.ParseSax; import org.jclouds.http.functions.ParseSax;
import org.jclouds.http.functions.config.SaxParserModule; import org.jclouds.http.functions.config.SaxParserModule;
import org.jclouds.location.Region; import org.jclouds.location.Region;
@ -52,50 +53,56 @@ import com.google.inject.TypeLiteral;
* *
* @author Adrian Cole * @author Adrian Cole
*/ */
@Test(groups = "unit") @Test(groups = "unit", testName = "DescribeImagesResponseHandlerTest")
public class DescribeImagesResponseHandlerTest { public class DescribeImagesResponseHandlerTest {
public void testUNIX() { public void testUNIX() {
Set<Image> contents = ImmutableSet.of(new Image("us-east-1", Architecture.I386, null, null, "ami-be3adfd7", Set<Image> contents = ImmutableSet.of(new Image("us-east-1", Architecture.I386, null, null, "ami-be3adfd7",
"ec2-public-images/fedora-8-i386-base-v1.04.manifest.xml", "206029621532", ImageState.AVAILABLE, "ec2-public-images/fedora-8-i386-base-v1.04.manifest.xml", "206029621532", ImageState.AVAILABLE, "available",
ImageType.MACHINE, false, Sets.<String> newHashSet("9961934F"), "aki-4438dd2d", null, "ari-4538dd2c", ImageType.MACHINE, false, Sets.<String> newHashSet("9961934F"), "aki-4438dd2d", null, "ari-4538dd2c",
RootDeviceType.INSTANCE_STORE, null, ImmutableMap.<String, EbsBlockDevice> of(), RootDeviceType.INSTANCE_STORE, null, ImmutableMap.<String, EbsBlockDevice> of(),
VirtualizationType.PARAVIRTUAL, Hypervisor.XEN)); VirtualizationType.PARAVIRTUAL, Hypervisor.XEN));
Set<Image> result = parseImages("/describe_images.xml"); Set<Image> result = parseImages("/describe_images.xml");
assertEquals(result, contents); assertEquals(result.toString(), contents.toString());
assertEquals(get(result, 0).getImageState(), ImageState.AVAILABLE);
assertEquals(get(result, 0).getRawState(), "available");
} }
public void testWindows() { public void testWindows() {
Set<Image> contents = ImmutableSet.of(new Image("us-east-1", Architecture.X86_64, null, null, "ami-02eb086b", Set<Image> contents = ImmutableSet.of(new Image("us-east-1", Architecture.X86_64, null, null, "ami-02eb086b",
"aws-solutions-amis/SqlSvrStd2003r2-x86_64-Win_SFWBasic5.1-v1.0.manifest.xml", "771350841976", "aws-solutions-amis/SqlSvrStd2003r2-x86_64-Win_SFWBasic5.1-v1.0.manifest.xml", "771350841976",
ImageState.AVAILABLE, ImageType.MACHINE, true, Sets.<String> newHashSet("5771E9A6"), null, "windows", ImageState.AVAILABLE, "available", ImageType.MACHINE, true, Sets.<String> newHashSet("5771E9A6"), null, "windows",
null, RootDeviceType.INSTANCE_STORE, null, ImmutableMap.<String, EbsBlockDevice> of(), null, RootDeviceType.INSTANCE_STORE, null, ImmutableMap.<String, EbsBlockDevice> of(),
VirtualizationType.PARAVIRTUAL, Hypervisor.XEN)); VirtualizationType.PARAVIRTUAL, Hypervisor.XEN));
Set<Image> result = parseImages("/describe_images_windows.xml"); Set<Image> result = parseImages("/describe_images_windows.xml");
assertEquals(result, contents); assertEquals(result.toString(), contents.toString());
assertEquals(get(result, 0).getImageState(), ImageState.AVAILABLE);
assertEquals(get(result, 0).getRawState(), "available");
} }
public void testEBS() { public void testEBS() {
Set<Image> contents = ImmutableSet.of(new Image("us-east-1", Architecture.I386, "websrv_2009-12-10", Set<Image> contents = ImmutableSet.of(new Image("us-east-1", Architecture.I386, "websrv_2009-12-10",
"Web Server AMI", "ami-246f8d4d", "706093390852/websrv_2009-12-10", "706093390852", "Web Server AMI", "ami-246f8d4d", "706093390852/websrv_2009-12-10", "706093390852",
ImageState.AVAILABLE, ImageType.MACHINE, true, Sets.<String> newHashSet(), null, "windows", null, ImageState.AVAILABLE, "available", ImageType.MACHINE, true, Sets.<String> newHashSet(), null, "windows", null,
RootDeviceType.EBS, "/dev/sda1", ImmutableMap.<String, EbsBlockDevice> of("/dev/sda1", RootDeviceType.EBS, "/dev/sda1", ImmutableMap.<String, EbsBlockDevice> of("/dev/sda1",
new EbsBlockDevice("snap-d01272b9", 30, true), "xvdf", new EbsBlockDevice("snap-d31272ba", 250, new EbsBlockDevice("snap-d01272b9", 30, true), "xvdf", new EbsBlockDevice("snap-d31272ba", 250,
false)), VirtualizationType.HVM, Hypervisor.XEN)); false)), VirtualizationType.HVM, Hypervisor.XEN));
Set<Image> result = parseImages("/describe_images_ebs.xml"); Set<Image> result = parseImages("/describe_images_ebs.xml");
assertEquals(result, contents); assertEquals(result.toString(), contents.toString());
assertEquals(get(result, 0).getImageState(), ImageState.AVAILABLE);
assertEquals(get(result, 0).getRawState(), "available");
} }
public void testDiabloWithIncorrectDisplayNameField() { public void testDiabloWithIncorrectDisplayNameField() {
Set<Image> contents = ImmutableSet.of(new Image("us-east-1", Architecture.X86_64, "CentOS 6.2 Server 64-bit 20120125", "", "ami-0000054e", Set<Image> contents = ImmutableSet.of(new Image("us-east-1", Architecture.X86_64, "CentOS 6.2 Server 64-bit 20120125", "", "ami-0000054e",
"local (CentOS 6.2 Server 64-bit 20120125)", "", ImageState.AVAILABLE, "local (CentOS 6.2 Server 64-bit 20120125)", "", ImageState.AVAILABLE, "available",
ImageType.MACHINE, true, Sets.<String> newHashSet(), "aki-0000054c", null, "ari-0000054d", ImageType.MACHINE, true, Sets.<String> newHashSet(), "aki-0000054c", null, "ari-0000054d",
RootDeviceType.INSTANCE_STORE, "/dev/sda1", ImmutableMap.<String, EbsBlockDevice> of(), RootDeviceType.INSTANCE_STORE, "/dev/sda1", ImmutableMap.<String, EbsBlockDevice> of(),
VirtualizationType.PARAVIRTUAL, Hypervisor.XEN)); VirtualizationType.PARAVIRTUAL, Hypervisor.XEN));
@ -103,6 +110,8 @@ public class DescribeImagesResponseHandlerTest {
Set<Image> result = parseImages("/describe_images_nova.xml"); Set<Image> result = parseImages("/describe_images_nova.xml");
assertEquals(result.toString(), contents.toString()); assertEquals(result.toString(), contents.toString());
assertEquals(get(result, 0).getImageState(), ImageState.AVAILABLE);
assertEquals(get(result, 0).getRawState(), "available");
} }
static ParseSax<Set<Image>> createParser() { static ParseSax<Set<Image>> createParser() {

View File

@ -41,6 +41,7 @@ import org.testng.annotations.Test;
import com.google.common.base.Supplier; import com.google.common.base.Supplier;
import com.google.common.base.Suppliers; import com.google.common.base.Suppliers;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import static com.google.common.collect.Iterables.*;
import com.google.inject.AbstractModule; import com.google.inject.AbstractModule;
import com.google.inject.Guice; import com.google.inject.Guice;
import com.google.inject.Injector; import com.google.inject.Injector;
@ -71,40 +72,44 @@ public class DescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest {
ImmutableSet.of("adriancole.ec2ingress"), ImmutableSet.of(new RunningInstance.Builder().region( ImmutableSet.of("adriancole.ec2ingress"), ImmutableSet.of(new RunningInstance.Builder().region(
defaultRegion).groupId("adriancole.ec2ingress").amiLaunchIndex("0").dnsName( defaultRegion).groupId("adriancole.ec2ingress").amiLaunchIndex("0").dnsName(
"ec2-174-129-81-68.compute-1.amazonaws.com").imageId("ami-82e4b5c7").instanceId("i-0799056f") "ec2-174-129-81-68.compute-1.amazonaws.com").imageId("ami-82e4b5c7").instanceId("i-0799056f")
.instanceState(InstanceState.RUNNING).instanceType(InstanceType.M1_SMALL).ipAddress( .instanceState(InstanceState.RUNNING).rawState("running").instanceType(InstanceType.M1_SMALL)
"174.129.81.68").kernelId("aki-a71cf9ce").keyName("adriancole.ec21").launchTime( .ipAddress("174.129.81.68").kernelId("aki-a71cf9ce").keyName("adriancole.ec21").launchTime(
dateService.iso8601DateParse("2009-11-09T03:00:34.000Z")) dateService.iso8601DateParse("2009-11-09T03:00:34.000Z"))
// MonitoringState.DISABLED, // MonitoringState.DISABLED,
.availabilityZone("us-east-1c").virtualizationType("paravirtual") .availabilityZone("us-east-1c").virtualizationType("paravirtual").privateDnsName(
.privateDnsName("ip-10-243-42-70.ec2.internal").privateIpAddress("10.243.42.70").ramdiskId( "ip-10-243-42-70.ec2.internal").privateIpAddress("10.243.42.70").ramdiskId(
"ari-a51cf9cc").rootDeviceType(RootDeviceType.INSTANCE_STORE).build()), "ari-a51cf9cc").rootDeviceType(RootDeviceType.INSTANCE_STORE).build()),
"993194456877", null, "r-a3c508cb")); "993194456877", null, "r-a3c508cb"));
Set<Reservation<? extends RunningInstance>> result = parseRunningInstances("/describe_instances_running.xml"); Set<Reservation<? extends RunningInstance>> result = parseRunningInstances("/describe_instances_running.xml");
assertEquals(result, contents); assertEquals(result, contents);
assertEquals(get(get(result, 0), 0).getInstanceState(), InstanceState.RUNNING);
assertEquals(get(get(result, 0), 0).getRawState(), "running");
} }
public void testApplyInputStream() { public void testApplyInputStream() {
Set<Reservation<RunningInstance>> contents = ImmutableSet.of(new Reservation<RunningInstance>(defaultRegion, Set<Reservation<RunningInstance>> contents = ImmutableSet.of(new Reservation<RunningInstance>(defaultRegion,
ImmutableSet.of("default"), ImmutableSet.of(new RunningInstance.Builder().region(defaultRegion).groupId( ImmutableSet.of("default"), ImmutableSet.of(new RunningInstance.Builder().region(defaultRegion).groupId(
"default").amiLaunchIndex("23").dnsName("ec2-72-44-33-4.compute-1.amazonaws.com").imageId( "default").amiLaunchIndex("23").dnsName("ec2-72-44-33-4.compute-1.amazonaws.com").imageId(
"ami-6ea54007").instanceId("i-28a64341").instanceState(InstanceState.RUNNING).instanceType( "ami-6ea54007").instanceId("i-28a64341").instanceState(InstanceState.RUNNING).rawState(
InstanceType.M1_LARGE).kernelId("aki-ba3adfd3").keyName("example-key-name").launchTime( "running").instanceType(InstanceType.M1_LARGE).kernelId("aki-ba3adfd3").keyName(
dateService.iso8601DateParse("2007-08-07T11:54:42.000Z")) "example-key-name").launchTime(dateService.iso8601DateParse("2007-08-07T11:54:42.000Z"))
// MonitoringState.DISABLED, // MonitoringState.DISABLED,
.availabilityZone("us-east-1b").virtualizationType("paravirtual") .availabilityZone("us-east-1b").virtualizationType("paravirtual").privateDnsName(
.privateDnsName("10-251-50-132.ec2.internal")// product codes "10-251-50-132.ec2.internal")// product codes
// ImmutableSet.of("774F4FF8") // ImmutableSet.of("774F4FF8")
.ramdiskId("ari-badbad00").rootDeviceType(RootDeviceType.INSTANCE_STORE).build(), .ramdiskId("ari-badbad00").rootDeviceType(RootDeviceType.INSTANCE_STORE).build(),
new RunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("23") new RunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("23")
.dnsName("ec2-72-44-33-6.compute-1.amazonaws.com").imageId("ami-6ea54007").instanceId( .dnsName("ec2-72-44-33-6.compute-1.amazonaws.com").imageId("ami-6ea54007").instanceId(
"i-28a64435").instanceState(InstanceState.RUNNING).instanceType( "i-28a64435").instanceState(InstanceState.RUNNING).rawState("running")
InstanceType.M1_LARGE).kernelId("aki-ba3adfd3").keyName("example-key-name") .instanceType(InstanceType.M1_LARGE).kernelId("aki-ba3adfd3").keyName(
.launchTime(dateService.iso8601DateParse("2007-08-07T11:54:42.000Z")) "example-key-name").launchTime(
dateService.iso8601DateParse("2007-08-07T11:54:42.000Z"))
// MonitoringState.DISABLED, // MonitoringState.DISABLED,
.availabilityZone("us-east-1b").virtualizationType("paravirtual") .availabilityZone("us-east-1b").virtualizationType("paravirtual").privateDnsName(
.privateDnsName("10-251-50-134.ec2.internal")// product codes "10-251-50-134.ec2.internal")// product codes
// ImmutableSet.of("774F4FF8") // ImmutableSet.of("774F4FF8")
.ramdiskId("ari-badbad00").rootDeviceType(RootDeviceType.INSTANCE_STORE).build()), .ramdiskId("ari-badbad00").rootDeviceType(RootDeviceType.INSTANCE_STORE).build()),
"UYY3TLBUXIEON5NQVUUX6OMPWBZIQNFM", null, "r-44a5402d")); "UYY3TLBUXIEON5NQVUUX6OMPWBZIQNFM", null, "r-44a5402d"));
@ -112,6 +117,9 @@ public class DescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest {
Set<Reservation<? extends RunningInstance>> result = parseRunningInstances("/describe_instances.xml"); Set<Reservation<? extends RunningInstance>> result = parseRunningInstances("/describe_instances.xml");
assertEquals(result, contents); assertEquals(result, contents);
assertEquals(get(get(result, 0), 0).getInstanceState(), InstanceState.RUNNING);
assertEquals(get(get(result, 0), 0).getRawState(), "running");
} }
public void testEBS() throws UnknownHostException { public void testEBS() throws UnknownHostException {
@ -120,8 +128,8 @@ public class DescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest {
ImmutableSet.of("adriancole.ec2ebsingress"), ImmutableSet.of(new RunningInstance.Builder().region( ImmutableSet.of("adriancole.ec2ebsingress"), ImmutableSet.of(new RunningInstance.Builder().region(
defaultRegion).groupId("adriancole.ec2ebsingress").amiLaunchIndex("0").dnsName( defaultRegion).groupId("adriancole.ec2ebsingress").amiLaunchIndex("0").dnsName(
"ec2-75-101-203-146.compute-1.amazonaws.com").imageId("ami-849875ed").instanceId("i-e564438d") "ec2-75-101-203-146.compute-1.amazonaws.com").imageId("ami-849875ed").instanceId("i-e564438d")
.instanceState(InstanceState.RUNNING).instanceType(InstanceType.M1_SMALL).ipAddress( .instanceState(InstanceState.RUNNING).rawState("running").instanceType(InstanceType.M1_SMALL)
"75.101.203.146").kernelId("aki-a71cf9ce") .ipAddress("75.101.203.146").kernelId("aki-a71cf9ce")
.keyName("adriancole.ec2ebs1") .keyName("adriancole.ec2ebs1")
.launchTime(dateService.iso8601DateParse("2009-12-30T04:06:23.000Z")) .launchTime(dateService.iso8601DateParse("2009-12-30T04:06:23.000Z"))
// MonitoringState.DISABLED // MonitoringState.DISABLED
@ -138,6 +146,8 @@ public class DescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest {
Set<Reservation<? extends RunningInstance>> result = parseRunningInstances("/describe_instances_ebs.xml"); Set<Reservation<? extends RunningInstance>> result = parseRunningInstances("/describe_instances_ebs.xml");
assertEquals(result, contents); assertEquals(result, contents);
assertEquals(get(get(result, 0), 0).getInstanceState(), InstanceState.RUNNING);
assertEquals(get(get(result, 0), 0).getRawState(), "running");
} }
static ParseSax<Set<Reservation<? extends RunningInstance>>> createParser() { static ParseSax<Set<Reservation<? extends RunningInstance>>> createParser() {

View File

@ -65,20 +65,20 @@ public class RunInstancesResponseHandlerTest extends BaseEC2HandlerTest {
.of("default"), ImmutableSet.of( .of("default"), ImmutableSet.of(
new RunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("0") new RunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("0")
.imageId("ami-60a54009").instanceId("i-2ba64342").instanceState(InstanceState.PENDING).instanceType( .imageId("ami-60a54009").instanceId("i-2ba64342").instanceState(InstanceState.PENDING).rawState(
InstanceType.M1_SMALL).keyName("example-key-name").launchTime( "pending").instanceType(InstanceType.M1_SMALL).keyName("example-key-name").launchTime(
dateService.iso8601DateParse("2007-08-07T11:51:50.000Z"))// MonitoringState.ENABLED, dateService.iso8601DateParse("2007-08-07T11:51:50.000Z"))// MonitoringState.ENABLED,
.availabilityZone("us-east-1b").build(), .availabilityZone("us-east-1b").build(),
new RunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("1") new RunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("1")
.imageId("ami-60a54009").instanceId("i-2bc64242").instanceState(InstanceState.PENDING).instanceType( .imageId("ami-60a54009").instanceId("i-2bc64242").instanceState(InstanceState.PENDING).rawState(
InstanceType.M1_SMALL).keyName("example-key-name").launchTime( "pending").instanceType(InstanceType.M1_SMALL).keyName("example-key-name").launchTime(
dateService.iso8601DateParse("2007-08-07T11:51:50.000Z"))// MonitoringState.ENABLED, dateService.iso8601DateParse("2007-08-07T11:51:50.000Z"))// MonitoringState.ENABLED,
.availabilityZone("us-east-1b").build(), .availabilityZone("us-east-1b").build(),
new RunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("2") new RunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("2")
.imageId("ami-60a54009").instanceId("i-2be64332").instanceState(InstanceState.PENDING).instanceType( .imageId("ami-60a54009").instanceId("i-2be64332").instanceState(InstanceState.PENDING).rawState(
InstanceType.M1_SMALL).keyName("example-key-name").launchTime( "pending").instanceType(InstanceType.M1_SMALL).keyName("example-key-name").launchTime(
dateService.iso8601DateParse("2007-08-07T11:51:50.000Z"))// MonitoringState.ENABLED, dateService.iso8601DateParse("2007-08-07T11:51:50.000Z"))// MonitoringState.ENABLED,
.availabilityZone("us-east-1b").build()) .availabilityZone("us-east-1b").build())
@ -87,7 +87,7 @@ public class RunInstancesResponseHandlerTest extends BaseEC2HandlerTest {
RunInstancesResponseHandler handler = injector.getInstance(RunInstancesResponseHandler.class); RunInstancesResponseHandler handler = injector.getInstance(RunInstancesResponseHandler.class);
addDefaultRegionToHandler(handler); addDefaultRegionToHandler(handler);
Reservation<? extends RunningInstance> result = factory.create(handler).parse(is); Reservation<? extends RunningInstance> result = factory.create(handler).parse(is);
assertEquals(result, expected); assertEquals(result.toString(), expected.toString());
} }
private void addDefaultRegionToHandler(ParseSax.HandlerWithResult<?> handler) { private void addDefaultRegionToHandler(ParseSax.HandlerWithResult<?> handler) {

View File

@ -76,6 +76,7 @@ public class NovaReviseParsedImageTest {
.providerId("ami-000004d6") .providerId("ami-000004d6")
.location(defaultLocation) .location(defaultLocation)
.status(org.jclouds.compute.domain.Image.Status.AVAILABLE) .status(org.jclouds.compute.domain.Image.Status.AVAILABLE)
.backendStatus("available")
.userMetadata( .userMetadata(
ImmutableMap.of("owner", "", "rootDeviceType", "instance-store", "virtualizationType", ImmutableMap.of("owner", "", "rootDeviceType", "instance-store", "virtualizationType",
"paravirtual", "hypervisor", "xen")).build().toString()); "paravirtual", "hypervisor", "xen")).build().toString());

View File

@ -160,6 +160,11 @@ public class AWSRunningInstance extends RunningInstance {
return Builder.class.cast(super.instanceState(instanceState)); return Builder.class.cast(super.instanceState(instanceState));
} }
@Override
public Builder rawState(String rawState) {
return Builder.class.cast(super.rawState(rawState));
}
@Override @Override
public Builder instanceType(String instanceType) { public Builder instanceType(String instanceType) {
return Builder.class.cast(super.instanceType(instanceType)); return Builder.class.cast(super.instanceType(instanceType));
@ -248,7 +253,7 @@ public class AWSRunningInstance extends RunningInstance {
@Override @Override
public AWSRunningInstance build() { public AWSRunningInstance build() {
return new AWSRunningInstance(region, securityGroupIdToNames, amiLaunchIndex, dnsName, imageId, instanceId, return new AWSRunningInstance(region, securityGroupIdToNames, amiLaunchIndex, dnsName, imageId, instanceId,
instanceState, instanceType, ipAddress, kernelId, keyName, launchTime, availabilityZone, instanceState, rawState, instanceType, ipAddress, kernelId, keyName, launchTime, availabilityZone,
virtualizationType, platform, privateDnsName, privateIpAddress, ramdiskId, reason, rootDeviceType, virtualizationType, platform, privateDnsName, privateIpAddress, ramdiskId, reason, rootDeviceType,
rootDeviceName, ebsBlockDevices, monitoringState, placementGroup, productCodes, subnetId, rootDeviceName, ebsBlockDevices, monitoringState, placementGroup, productCodes, subnetId,
spotInstanceRequestId, vpcId, hypervisor, tags); spotInstanceRequestId, vpcId, hypervisor, tags);
@ -271,15 +276,17 @@ public class AWSRunningInstance extends RunningInstance {
private final Map<String, String> tags; private final Map<String, String> tags;
protected AWSRunningInstance(String region, Map<String, String> securityGroupIdToNames, String amiLaunchIndex, protected AWSRunningInstance(String region, Map<String, String> securityGroupIdToNames, String amiLaunchIndex,
String dnsName, String imageId, String instanceId, InstanceState instanceState, String instanceType, String dnsName, String imageId, String instanceId, InstanceState instanceState, String rawState,
String ipAddress, String kernelId, String keyName, Date launchTime, String availabilityZone, String instanceType, String ipAddress, String kernelId, String keyName, Date launchTime,
String virtualizationType, String platform, String privateDnsName, String privateIpAddress, String ramdiskId, String availabilityZone, String virtualizationType, String platform, String privateDnsName,
String reason, RootDeviceType rootDeviceType, String rootDeviceName, Map<String, BlockDevice> ebsBlockDevices, String privateIpAddress, String ramdiskId, String reason, RootDeviceType rootDeviceType,
MonitoringState monitoringState, String placementGroup, Iterable<String> productCodes, String subnetId, String rootDeviceName, Map<String, BlockDevice> ebsBlockDevices, MonitoringState monitoringState,
String spotInstanceRequestId, String vpcId, Hypervisor hypervisor, Map<String, String> tags) { String placementGroup, Iterable<String> productCodes, String subnetId, String spotInstanceRequestId,
String vpcId, Hypervisor hypervisor, Map<String, String> tags) {
super(region, securityGroupIdToNames.values(), amiLaunchIndex, dnsName, imageId, instanceId, instanceState, super(region, securityGroupIdToNames.values(), amiLaunchIndex, dnsName, imageId, instanceId, instanceState,
instanceType, ipAddress, kernelId, keyName, launchTime, availabilityZone, virtualizationType, platform, rawState, instanceType, ipAddress, kernelId, keyName, launchTime, availabilityZone, virtualizationType,
privateDnsName, privateIpAddress, ramdiskId, reason, rootDeviceType, rootDeviceName, ebsBlockDevices); platform, privateDnsName, privateIpAddress, ramdiskId, reason, rootDeviceType, rootDeviceName,
ebsBlockDevices);
this.monitoringState = checkNotNull(monitoringState, "monitoringState"); this.monitoringState = checkNotNull(monitoringState, "monitoringState");
this.placementGroup = placementGroup; this.placementGroup = placementGroup;
this.productCodes = ImmutableSet.copyOf(checkNotNull(productCodes, "productCodes")); this.productCodes = ImmutableSet.copyOf(checkNotNull(productCodes, "productCodes"));
@ -417,7 +424,7 @@ public class AWSRunningInstance extends RunningInstance {
@Override @Override
public String toString() { public String toString() {
return "[region=" + region + ", availabilityZone=" + availabilityZone + ", instanceId=" + instanceId return "[region=" + region + ", availabilityZone=" + availabilityZone + ", instanceId=" + instanceId
+ ", instanceState=" + instanceState + ", instanceType=" + instanceType + ", virtualizationType=" + ", instanceState=" + rawState + ", instanceType=" + instanceType + ", virtualizationType="
+ virtualizationType + ", imageId=" + imageId + ", ipAddress=" + ipAddress + ", dnsName=" + dnsName + virtualizationType + ", imageId=" + imageId + ", ipAddress=" + ipAddress + ", dnsName=" + dnsName
+ ", privateIpAddress=" + privateIpAddress + ", privateDnsName=" + privateDnsName + ", keyName=" + ", privateIpAddress=" + privateIpAddress + ", privateDnsName=" + privateDnsName + ", keyName="
+ keyName + ", platform=" + platform + ", launchTime=" + launchTime + ", rootDeviceName=" + keyName + ", platform=" + platform + ", launchTime=" + launchTime + ", rootDeviceName="

View File

@ -53,6 +53,7 @@ public class SpotInstanceRequest implements Comparable<SpotInstanceRequest> {
private String id; private String id;
private float spotPrice; private float spotPrice;
private State state; private State state;
private String rawState;
private Type type; private Type type;
private Date validFrom; private Date validFrom;
private Date validUntil; private Date validUntil;
@ -72,6 +73,7 @@ public class SpotInstanceRequest implements Comparable<SpotInstanceRequest> {
this.id = null; this.id = null;
this.spotPrice = 0; this.spotPrice = 0;
this.state = null; this.state = null;
this.rawState = null;
this.type = null; this.type = null;
this.validFrom = null; this.validFrom = null;
this.validUntil = null; this.validUntil = null;
@ -154,6 +156,11 @@ public class SpotInstanceRequest implements Comparable<SpotInstanceRequest> {
return this; return this;
} }
public Builder rawState(String rawState) {
this.rawState = rawState;
return this;
}
public Builder type(Type type) { public Builder type(Type type) {
this.type = type; this.type = type;
return this; return this;
@ -172,7 +179,7 @@ public class SpotInstanceRequest implements Comparable<SpotInstanceRequest> {
public SpotInstanceRequest build() { public SpotInstanceRequest build() {
return new SpotInstanceRequest(region, availabilityZoneGroup, launchedAvailabilityZone, createTime, faultCode, return new SpotInstanceRequest(region, availabilityZoneGroup, launchedAvailabilityZone, createTime, faultCode,
faultMessage, instanceId, launchGroup, launchSpecification, productDescription, id, spotPrice, state, faultMessage, instanceId, launchGroup, launchSpecification, productDescription, id, spotPrice, state,
type, validFrom, validUntil, tags); rawState, type, validFrom, validUntil, tags);
} }
} }
@ -231,6 +238,7 @@ public class SpotInstanceRequest implements Comparable<SpotInstanceRequest> {
private final String id; private final String id;
private final float spotPrice; private final float spotPrice;
private final State state; private final State state;
private final String rawState;
private final Type type; private final Type type;
private final Date validFrom; private final Date validFrom;
private final Date validUntil; private final Date validUntil;
@ -238,8 +246,8 @@ public class SpotInstanceRequest implements Comparable<SpotInstanceRequest> {
public SpotInstanceRequest(String region, String availabilityZoneGroup, @Nullable String launchedAvailabilityZone, public SpotInstanceRequest(String region, String availabilityZoneGroup, @Nullable String launchedAvailabilityZone,
Date createTime, String faultCode, String faultMessage, String instanceId, String launchGroup, Date createTime, String faultCode, String faultMessage, String instanceId, String launchGroup,
LaunchSpecification launchSpecification, String productDescription, String id, float spotPrice, State state, LaunchSpecification launchSpecification, String productDescription, String id, float spotPrice,
Type type, Date validFrom, Date validUntil, Map<String, String> tags) { State state, String rawState, Type type, Date validFrom, Date validUntil, Map<String, String> tags) {
this.region = checkNotNull(region, "region"); this.region = checkNotNull(region, "region");
this.availabilityZoneGroup = availabilityZoneGroup; this.availabilityZoneGroup = availabilityZoneGroup;
this.launchedAvailabilityZone = launchedAvailabilityZone; this.launchedAvailabilityZone = launchedAvailabilityZone;
@ -253,6 +261,7 @@ public class SpotInstanceRequest implements Comparable<SpotInstanceRequest> {
this.id = checkNotNull(id, "id"); this.id = checkNotNull(id, "id");
this.spotPrice = spotPrice; this.spotPrice = spotPrice;
this.state = checkNotNull(state, "state"); this.state = checkNotNull(state, "state");
this.rawState = checkNotNull(rawState, "rawState");
this.type = checkNotNull(type, "type"); this.type = checkNotNull(type, "type");
this.validFrom = validFrom; this.validFrom = validFrom;
this.validUntil = validUntil; this.validUntil = validUntil;
@ -314,6 +323,10 @@ public class SpotInstanceRequest implements Comparable<SpotInstanceRequest> {
return state; return state;
} }
public String getRawState() {
return rawState;
}
public Type getType() { public Type getType() {
return type; return type;
} }
@ -451,7 +464,7 @@ public class SpotInstanceRequest implements Comparable<SpotInstanceRequest> {
+ launchedAvailabilityZone + ", createTime=" + createTime + ", faultCode=" + faultCode + ", faultMessage=" + launchedAvailabilityZone + ", createTime=" + createTime + ", faultCode=" + faultCode + ", faultMessage="
+ faultMessage + ", instanceId=" + instanceId + ", launchGroup=" + launchGroup + ", launchSpecification=" + faultMessage + ", instanceId=" + instanceId + ", launchGroup=" + launchGroup + ", launchSpecification="
+ launchSpecification + ", productDescription=" + productDescription + ", id=" + id + ", spotPrice=" + launchSpecification + ", productDescription=" + productDescription + ", id=" + id + ", spotPrice="
+ spotPrice + ", state=" + state + ", type=" + type + ", validFrom=" + validFrom + ", validUntil=" + spotPrice + ", state=" + rawState + ", type=" + type + ", validFrom=" + validFrom + ", validUntil="
+ validUntil + ", tags=" + tags + "]"; + validUntil + ", tags=" + tags + "]";
} }

View File

@ -45,6 +45,7 @@ public class SpotInstanceRequestToAWSRunningInstance implements Function<SpotIns
builder.spotInstanceRequestId(request.getId()); builder.spotInstanceRequestId(request.getId());
builder.instanceId(request.getId()); builder.instanceId(request.getId());
builder.instanceState(InstanceState.PENDING); builder.instanceState(InstanceState.PENDING);
builder.rawState(request.getRawState());
builder.region(request.getRegion()); builder.region(request.getRegion());
builder.tags(request.getTags()); builder.tags(request.getTags());
LaunchSpecification spec = request.getLaunchSpecification(); LaunchSpecification spec = request.getLaunchSpecification();

View File

@ -158,7 +158,9 @@ public abstract class BaseAWSReservationHandler<T> extends HandlerForGeneratedRe
} else if (equalsOrSuffix(qName, "instanceId")) { } else if (equalsOrSuffix(qName, "instanceId")) {
builder.instanceId(currentOrNull(currentText)); builder.instanceId(currentOrNull(currentText));
} else if (equalsOrSuffix(qName, "name")) { } else if (equalsOrSuffix(qName, "name")) {
builder.instanceState(InstanceState.fromValue(currentOrNull(currentText))); String rawState = currentOrNull(currentText);
builder.rawState(rawState);
builder.instanceState(InstanceState.fromValue(rawState));
} else if (equalsOrSuffix(qName, "instanceType")) { } else if (equalsOrSuffix(qName, "instanceType")) {
builder.instanceType(currentOrNull(currentText)); builder.instanceType(currentOrNull(currentText));
} else if (equalsOrSuffix(qName, "ipAddress")) { } else if (equalsOrSuffix(qName, "ipAddress")) {

View File

@ -124,9 +124,11 @@ public class SpotInstanceHandler extends ParseSax.HandlerForGeneratedRequestWith
if (type != null) if (type != null)
builder.type(SpotInstanceRequest.Type.fromValue(type)); builder.type(SpotInstanceRequest.Type.fromValue(type));
} else if (qName.equals("state")) { } else if (qName.equals("state")) {
String state = currentOrNull(currentText); String rawState = currentOrNull(currentText);
if (state != null) if (rawState != null) {
builder.state(SpotInstanceRequest.State.fromValue(state)); builder.rawState(rawState);
builder.state(SpotInstanceRequest.State.fromValue(rawState));
}
} else if (qName.equals("createTime")) { } else if (qName.equals("createTime")) {
String createTime = currentOrNull(currentText); String createTime = currentOrNull(currentText);
if (createTime != null) if (createTime != null)

View File

@ -88,6 +88,7 @@ public class AWSRunningInstanceToNodeMetadataTest {
.instanceId("i-911444f0") .instanceId("i-911444f0")
.imageId("ami-63be790a") .imageId("ami-63be790a")
.instanceState(InstanceState.RUNNING) .instanceState(InstanceState.RUNNING)
.rawState("running")
.privateDnsName("ip-10-212-81-7.ec2.internal") .privateDnsName("ip-10-212-81-7.ec2.internal")
.dnsName("ec2-174-129-173-155.compute-1.amazonaws.com") .dnsName("ec2-174-129-173-155.compute-1.amazonaws.com")
.keyName("jclouds#zkclustertest#23") .keyName("jclouds#zkclustertest#23")
@ -113,6 +114,7 @@ public class AWSRunningInstanceToNodeMetadataTest {
.instanceId("i-931444f2") .instanceId("i-931444f2")
.imageId("ami-63be790a") .imageId("ami-63be790a")
.instanceState(InstanceState.RUNNING) .instanceState(InstanceState.RUNNING)
.rawState("running")
.privateDnsName("ip-10-212-185-8.ec2.internal") .privateDnsName("ip-10-212-185-8.ec2.internal")
.dnsName("ec2-50-19-207-248.compute-1.amazonaws.com") .dnsName("ec2-50-19-207-248.compute-1.amazonaws.com")
.keyName("jclouds#zkclustertest#23") .keyName("jclouds#zkclustertest#23")
@ -136,6 +138,7 @@ public class AWSRunningInstanceToNodeMetadataTest {
parser.apply(Iterables.get(contents, 0)).toString(), parser.apply(Iterables.get(contents, 0)).toString(),
new NodeMetadataBuilder() new NodeMetadataBuilder()
.status(Status.RUNNING) .status(Status.RUNNING)
.backendStatus("running")
.group("zkclustertest") .group("zkclustertest")
.name("foo") .name("foo")
.hostname("ip-10-212-81-7") .hostname("ip-10-212-81-7")
@ -147,9 +150,10 @@ public class AWSRunningInstanceToNodeMetadataTest {
.tags(ImmutableSet.of("Empty")) .tags(ImmutableSet.of("Empty"))
.userMetadata(ImmutableMap.of("Name", "foo")).build().toString()); .userMetadata(ImmutableMap.of("Name", "foo")).build().toString());
assertEquals( assertEquals(
parser.apply(Iterables.get(contents, 1)), parser.apply(Iterables.get(contents, 1)).toString(),
new NodeMetadataBuilder() new NodeMetadataBuilder()
.status(Status.RUNNING) .status(Status.RUNNING)
.backendStatus("running")
.group("zkclustertest") .group("zkclustertest")
.hostname("ip-10-212-185-8") .hostname("ip-10-212-185-8")
.privateAddresses(ImmutableSet.of("10.212.185.8")) .privateAddresses(ImmutableSet.of("10.212.185.8"))
@ -157,7 +161,7 @@ public class AWSRunningInstanceToNodeMetadataTest {
.imageId("us-east-1/ami-63be790a") .imageId("us-east-1/ami-63be790a")
.id("us-east-1/i-931444f2") .id("us-east-1/i-931444f2")
.providerId("i-931444f2") .providerId("i-931444f2")
.build()); .build().toString());
} }
protected AWSRunningInstanceToNodeMetadata createNodeParser(final ImmutableSet<Hardware> hardware, protected AWSRunningInstanceToNodeMetadata createNodeParser(final ImmutableSet<Hardware> hardware,

View File

@ -75,6 +75,7 @@ public class AWSEC2ImageParserTest {
"virtualizationType", "paravirtual", "virtualizationType", "paravirtual",
"hypervisor", "xen")) "hypervisor", "xen"))
.status(org.jclouds.compute.domain.Image.Status.AVAILABLE) .status(org.jclouds.compute.domain.Image.Status.AVAILABLE)
.backendStatus("available")
.build()); .build());
assertEquals(Iterables.get(result, 0).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE); assertEquals(Iterables.get(result, 0).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE);
@ -88,7 +89,7 @@ public class AWSEC2ImageParserTest {
.defaultCredentials(new LoginCredentials("ubuntu", false)).id("us-east-1/ami-c0fa1ea9") .defaultCredentials(new LoginCredentials("ubuntu", false)).id("us-east-1/ami-c0fa1ea9")
.providerId("ami-c0fa1ea9").location(defaultLocation).version("20080905") .providerId("ami-c0fa1ea9").location(defaultLocation).version("20080905")
.userMetadata(ImmutableMap.of("owner", "063491364108", "rootDeviceType", "instance-store")) .userMetadata(ImmutableMap.of("owner", "063491364108", "rootDeviceType", "instance-store"))
.status(org.jclouds.compute.domain.Image.Status.AVAILABLE).build()); .status(org.jclouds.compute.domain.Image.Status.AVAILABLE).backendStatus("available").build());
assertEquals(Iterables.get(result, 4).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE); assertEquals(Iterables.get(result, 4).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE);
assertEquals( assertEquals(
@ -107,7 +108,7 @@ public class AWSEC2ImageParserTest {
"rootDeviceType", "ebs", "rootDeviceType", "ebs",
"virtualizationType", "paravirtual", "virtualizationType", "paravirtual",
"hypervisor", "xen")) "hypervisor", "xen"))
.status(org.jclouds.compute.domain.Image.Status.AVAILABLE).build()); .status(org.jclouds.compute.domain.Image.Status.AVAILABLE).backendStatus("available").build());
assertEquals(Iterables.get(result, 6).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE); assertEquals(Iterables.get(result, 6).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE);
} }
@ -169,16 +170,16 @@ public class AWSEC2ImageParserTest {
.defaultCredentials(new LoginCredentials("root", false)).id("us-east-1/ami-ccb35ea5") .defaultCredentials(new LoginCredentials("root", false)).id("us-east-1/ami-ccb35ea5")
.providerId("ami-ccb35ea5").location(defaultLocation).version("4.4.10") .providerId("ami-ccb35ea5").location(defaultLocation).version("4.4.10")
.userMetadata(ImmutableMap.of("owner", "admin", "rootDeviceType", "instance-store")) .userMetadata(ImmutableMap.of("owner", "admin", "rootDeviceType", "instance-store"))
.status(org.jclouds.compute.domain.Image.Status.AVAILABLE).build()); .status(org.jclouds.compute.domain.Image.Status.AVAILABLE).backendStatus("available").build());
assertEquals(Iterables.get(result, 0).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE); assertEquals(Iterables.get(result, 0).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE);
assertEquals( assertEquals(
new Gson().toJson(Iterables.get(result, 1)), new Gson().toJson(Iterables.get(result, 1)),
"{\"operatingSystem\":{\"family\":\"UBUNTU\",\"arch\":\"paravirtual\",\"version\":\"9.10\",\"description\":\"411009282317/RightImage_Ubuntu_9.10_x64_v4.5.3_EBS_Alpha\",\"is64Bit\":true},\"status\":\"AVAILABLE\",\"version\":\"4.5.3_EBS_Alpha\",\"description\":\"RightImage_Ubuntu_9.10_x64_v4.5.3_EBS_Alpha\",\"defaultCredentials\":{\"authenticateSudo\":false,\"identity\":\"root\"},\"id\":\"us-east-1/ami-c19db6b5\",\"type\":\"IMAGE\",\"tags\":[],\"providerId\":\"ami-c19db6b5\",\"name\":\"RightImage_Ubuntu_9.10_x64_v4.5.3_EBS_Alpha\",\"location\":{\"scope\":\"REGION\",\"id\":\"us-east-1\",\"description\":\"us-east-1\",\"iso3166Codes\":[],\"metadata\":{}},\"userMetadata\":{\"owner\":\"411009282317\",\"rootDeviceType\":\"ebs\",\"virtualizationType\":\"paravirtual\",\"hypervisor\":\"xen\"}}"); "{\"operatingSystem\":{\"family\":\"UBUNTU\",\"arch\":\"paravirtual\",\"version\":\"9.10\",\"description\":\"411009282317/RightImage_Ubuntu_9.10_x64_v4.5.3_EBS_Alpha\",\"is64Bit\":true},\"status\":\"AVAILABLE\",\"backendStatus\":\"available\",\"version\":\"4.5.3_EBS_Alpha\",\"description\":\"RightImage_Ubuntu_9.10_x64_v4.5.3_EBS_Alpha\",\"defaultCredentials\":{\"authenticateSudo\":false,\"identity\":\"root\"},\"id\":\"us-east-1/ami-c19db6b5\",\"type\":\"IMAGE\",\"tags\":[],\"providerId\":\"ami-c19db6b5\",\"name\":\"RightImage_Ubuntu_9.10_x64_v4.5.3_EBS_Alpha\",\"location\":{\"scope\":\"REGION\",\"id\":\"us-east-1\",\"description\":\"us-east-1\",\"iso3166Codes\":[],\"metadata\":{}},\"userMetadata\":{\"owner\":\"411009282317\",\"rootDeviceType\":\"ebs\",\"virtualizationType\":\"paravirtual\",\"hypervisor\":\"xen\"}}");
assertEquals( assertEquals(
new Gson().toJson(Iterables.get(result, 2)), new Gson().toJson(Iterables.get(result, 2)),
"{\"operatingSystem\":{\"family\":\"WINDOWS\",\"arch\":\"hvm\",\"version\":\"2003\",\"description\":\"411009282317/RightImage Windows_2003_i386_v5.4.3\",\"is64Bit\":false},\"status\":\"AVAILABLE\",\"version\":\"5.4.3\",\"description\":\"Built by RightScale\",\"defaultCredentials\":{\"authenticateSudo\":false,\"identity\":\"root\"},\"id\":\"us-east-1/ami-710c2605\",\"type\":\"IMAGE\",\"tags\":[],\"providerId\":\"ami-710c2605\",\"name\":\"RightImage Windows_2003_i386_v5.4.3\",\"location\":{\"scope\":\"REGION\",\"id\":\"us-east-1\",\"description\":\"us-east-1\",\"iso3166Codes\":[],\"metadata\":{}},\"userMetadata\":{\"owner\":\"411009282317\",\"rootDeviceType\":\"ebs\",\"virtualizationType\":\"hvm\",\"hypervisor\":\"xen\"}}"); "{\"operatingSystem\":{\"family\":\"WINDOWS\",\"arch\":\"hvm\",\"version\":\"2003\",\"description\":\"411009282317/RightImage Windows_2003_i386_v5.4.3\",\"is64Bit\":false},\"status\":\"AVAILABLE\",\"backendStatus\":\"available\",\"version\":\"5.4.3\",\"description\":\"Built by RightScale\",\"defaultCredentials\":{\"authenticateSudo\":false,\"identity\":\"root\"},\"id\":\"us-east-1/ami-710c2605\",\"type\":\"IMAGE\",\"tags\":[],\"providerId\":\"ami-710c2605\",\"name\":\"RightImage Windows_2003_i386_v5.4.3\",\"location\":{\"scope\":\"REGION\",\"id\":\"us-east-1\",\"description\":\"us-east-1\",\"iso3166Codes\":[],\"metadata\":{}},\"userMetadata\":{\"owner\":\"411009282317\",\"rootDeviceType\":\"ebs\",\"virtualizationType\":\"hvm\",\"hypervisor\":\"xen\"}}");
} }
public void testParseAmznImage() { public void testParseAmznImage() {

View File

@ -103,7 +103,7 @@ public class AWSEC2ReviseParsedImageTest {
Map<String, Image.EbsBlockDevice> ebsBlockDevices = Collections.emptyMap(); Map<String, Image.EbsBlockDevice> ebsBlockDevices = Collections.emptyMap();
VirtualizationType virtualizationType = VirtualizationType.HVM; VirtualizationType virtualizationType = VirtualizationType.HVM;
Hypervisor hypervisor = Hypervisor.XEN; Hypervisor hypervisor = Hypervisor.XEN;
Image from = new Image(region, architecture, imageName, description, imageId, imageOwnerId + "/" + imageName, imageOwnerId, imageState, imageType, isPublic, productCodes, kernelId, platform, ramdiskId, rootDeviceType, rootDeviceName, ebsBlockDevices, virtualizationType, hypervisor); Image from = new Image(region, architecture, imageName, description, imageId, imageOwnerId + "/" + imageName, imageOwnerId, imageState, "available", imageType, isPublic, productCodes, kernelId, platform, ramdiskId, rootDeviceType, rootDeviceName, ebsBlockDevices, virtualizationType, hypervisor);
return from; return from;
} }
} }

View File

@ -24,6 +24,8 @@ import org.jclouds.aws.ec2.domain.AWSRunningInstance;
import org.jclouds.aws.ec2.domain.LaunchSpecification; import org.jclouds.aws.ec2.domain.LaunchSpecification;
import org.jclouds.aws.ec2.domain.MonitoringState; import org.jclouds.aws.ec2.domain.MonitoringState;
import org.jclouds.aws.ec2.domain.SpotInstanceRequest; import org.jclouds.aws.ec2.domain.SpotInstanceRequest;
import org.jclouds.aws.ec2.domain.SpotInstanceRequest.State;
import org.jclouds.aws.ec2.domain.SpotInstanceRequest.Type;
import org.jclouds.date.internal.SimpleDateFormatDateService; import org.jclouds.date.internal.SimpleDateFormatDateService;
import org.jclouds.ec2.domain.Hypervisor; import org.jclouds.ec2.domain.Hypervisor;
import org.jclouds.ec2.domain.InstanceState; import org.jclouds.ec2.domain.InstanceState;
@ -45,8 +47,9 @@ public class SpotInstanceRequestToAWSRunningInstanceTest {
.region("us-east-1") .region("us-east-1")
.id("sir-228e6406") .id("sir-228e6406")
.spotPrice(0.001f) .spotPrice(0.001f)
.type(SpotInstanceRequest.Type.ONE_TIME) .type(Type.ONE_TIME)
.state(SpotInstanceRequest.State.OPEN) .state(State.OPEN)
.rawState("open")
.launchSpecification( .launchSpecification(
LaunchSpecification.builder().imageId("ami-595a0a1c").securityGroupName("default") LaunchSpecification.builder().imageId("ami-595a0a1c").securityGroupName("default")
.instanceType("m1.large").mapNewVolumeToDevice("/dev/sda1", 1, true) .instanceType("m1.large").mapNewVolumeToDevice("/dev/sda1", 1, true)
@ -59,31 +62,32 @@ public class SpotInstanceRequestToAWSRunningInstanceTest {
.build(); .build();
assertEquals( assertEquals(
new SpotInstanceRequestToAWSRunningInstance().apply(input), new SpotInstanceRequestToAWSRunningInstance().apply(input).toString(),
AWSRunningInstance.builder().region("us-east-1").instanceId("sir-228e6406") AWSRunningInstance.builder().region("us-east-1").instanceId("sir-228e6406")
.spotInstanceRequestId("sir-228e6406").instanceState(InstanceState.PENDING).imageId("ami-595a0a1c") .spotInstanceRequestId("sir-228e6406").instanceState(InstanceState.PENDING)
.rawState("open").imageId("ami-595a0a1c")
.groupId("default").instanceType("m1.large") .groupId("default").instanceType("m1.large")
.tag("foo", "bar") .tag("foo", "bar")
.tag("empty", "") .tag("empty", "")
.hypervisor(Hypervisor.XEN) .hypervisor(Hypervisor.XEN)
.monitoringState(MonitoringState.PENDING).build()); .monitoringState(MonitoringState.DISABLED).build().toString());
} }
public void testConvertWhenNotOpenReturnsNull() { public void testConvertWhenNotOpenReturnsNull() {
assertEquals( assertEquals(
new SpotInstanceRequestToAWSRunningInstance().apply(SpotInstanceRequest.builder().region("us-east-1") new SpotInstanceRequestToAWSRunningInstance().apply(SpotInstanceRequest.builder().region("us-east-1")
.id("sir-228e6406").type(SpotInstanceRequest.Type.ONE_TIME).state(SpotInstanceRequest.State.ACTIVE) .id("sir-228e6406").type(Type.ONE_TIME).state(State.ACTIVE).rawState("active")
.build()), null); .build()), null);
assertEquals( assertEquals(
new SpotInstanceRequestToAWSRunningInstance().apply(SpotInstanceRequest.builder().region("us-east-1") new SpotInstanceRequestToAWSRunningInstance().apply(SpotInstanceRequest.builder().region("us-east-1")
.id("sir-228e6406").type(SpotInstanceRequest.Type.ONE_TIME) .id("sir-228e6406").type(Type.ONE_TIME).rawState("one-time")
.state(SpotInstanceRequest.State.CANCELLED).build()), null); .state(State.CANCELLED).build()), null);
assertEquals( assertEquals(
new SpotInstanceRequestToAWSRunningInstance().apply(SpotInstanceRequest.builder().region("us-east-1") new SpotInstanceRequestToAWSRunningInstance().apply(SpotInstanceRequest.builder().region("us-east-1")
.id("sir-228e6406").type(SpotInstanceRequest.Type.ONE_TIME) .id("sir-228e6406").type(Type.ONE_TIME).rawState("one-time")
.state(SpotInstanceRequest.State.UNRECOGNIZED).build()), null); .state(State.UNRECOGNIZED).build()), null);
} }
} }

View File

@ -83,6 +83,7 @@ public class AWSDescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest
.imageId("ami-82e4b5c7") .imageId("ami-82e4b5c7")
.instanceId("i-0799056f") .instanceId("i-0799056f")
.instanceState(InstanceState.RUNNING) .instanceState(InstanceState.RUNNING)
.rawState("running")
.instanceType(InstanceType.M1_SMALL) .instanceType(InstanceType.M1_SMALL)
.ipAddress("174.129.81.68") .ipAddress("174.129.81.68")
.kernelId("aki-a71cf9ce") .kernelId("aki-a71cf9ce")
@ -112,6 +113,7 @@ public class AWSDescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest
.instanceId("i-911444f0") .instanceId("i-911444f0")
.imageId("ami-63be790a") .imageId("ami-63be790a")
.instanceState(InstanceState.RUNNING) .instanceState(InstanceState.RUNNING)
.rawState("running")
.privateDnsName("ip-10-212-81-7.ec2.internal") .privateDnsName("ip-10-212-81-7.ec2.internal")
.dnsName("ec2-174-129-173-155.compute-1.amazonaws.com") .dnsName("ec2-174-129-173-155.compute-1.amazonaws.com")
.keyName("jclouds#zkclustertest#us-east-1#23") .keyName("jclouds#zkclustertest#us-east-1#23")
@ -139,6 +141,7 @@ public class AWSDescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest
.instanceId("i-931444f2") .instanceId("i-931444f2")
.imageId("ami-63be790a") .imageId("ami-63be790a")
.instanceState(InstanceState.RUNNING) .instanceState(InstanceState.RUNNING)
.rawState("running")
.privateDnsName("ip-10-212-185-8.ec2.internal") .privateDnsName("ip-10-212-185-8.ec2.internal")
.dnsName("ec2-50-19-207-248.compute-1.amazonaws.com") .dnsName("ec2-50-19-207-248.compute-1.amazonaws.com")
.keyName("jclouds#zkclustertest#us-east-1#23") .keyName("jclouds#zkclustertest#us-east-1#23")
@ -177,7 +180,7 @@ public class AWSDescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest
defaultRegion, ImmutableSet.of("default"), ImmutableSet.of( defaultRegion, ImmutableSet.of("default"), ImmutableSet.of(
new AWSRunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("23") new AWSRunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("23")
.dnsName("ec2-72-44-33-4.compute-1.amazonaws.com").imageId("ami-6ea54007") .dnsName("ec2-72-44-33-4.compute-1.amazonaws.com").imageId("ami-6ea54007")
.instanceId("i-28a64341").instanceState(InstanceState.RUNNING) .instanceId("i-28a64341").instanceState(InstanceState.RUNNING).rawState("running")
.instanceType(InstanceType.M1_LARGE).kernelId("aki-ba3adfd3").keyName("example-key-name") .instanceType(InstanceType.M1_LARGE).kernelId("aki-ba3adfd3").keyName("example-key-name")
.launchTime(dateService.iso8601DateParse("2007-08-07T11:54:42.000Z")) .launchTime(dateService.iso8601DateParse("2007-08-07T11:54:42.000Z"))
.monitoringState(MonitoringState.DISABLED).availabilityZone("us-east-1b") .monitoringState(MonitoringState.DISABLED).availabilityZone("us-east-1b")
@ -187,7 +190,7 @@ public class AWSDescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest
.rootDeviceType(RootDeviceType.INSTANCE_STORE).build(), .rootDeviceType(RootDeviceType.INSTANCE_STORE).build(),
new AWSRunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("23") new AWSRunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("23")
.dnsName("ec2-72-44-33-6.compute-1.amazonaws.com").imageId("ami-6ea54007") .dnsName("ec2-72-44-33-6.compute-1.amazonaws.com").imageId("ami-6ea54007")
.instanceId("i-28a64435").instanceState(InstanceState.RUNNING) .instanceId("i-28a64435").instanceState(InstanceState.RUNNING).rawState("running")
.instanceType(InstanceType.M1_LARGE).kernelId("aki-ba3adfd3").keyName("example-key-name") .instanceType(InstanceType.M1_LARGE).kernelId("aki-ba3adfd3").keyName("example-key-name")
.launchTime(dateService.iso8601DateParse("2007-08-07T11:54:42.000Z")) .launchTime(dateService.iso8601DateParse("2007-08-07T11:54:42.000Z"))
.monitoringState(MonitoringState.DISABLED).availabilityZone("us-east-1b") .monitoringState(MonitoringState.DISABLED).availabilityZone("us-east-1b")
@ -214,6 +217,7 @@ public class AWSDescribeInstancesResponseHandlerTest extends BaseEC2HandlerTest
.imageId("ami-849875ed") .imageId("ami-849875ed")
.instanceId("i-e564438d") .instanceId("i-e564438d")
.instanceState(InstanceState.RUNNING) .instanceState(InstanceState.RUNNING)
.rawState("running")
.instanceType(InstanceType.M1_SMALL) .instanceType(InstanceType.M1_SMALL)
.ipAddress("75.101.203.146") .ipAddress("75.101.203.146")
.kernelId("aki-a71cf9ce") .kernelId("aki-a71cf9ce")

View File

@ -85,25 +85,22 @@ public class AWSRunInstancesResponseHandlerTest extends BaseEC2HandlerTest {
Reservation<? extends AWSRunningInstance> expected = new Reservation<AWSRunningInstance>(defaultRegion, Reservation<? extends AWSRunningInstance> expected = new Reservation<AWSRunningInstance>(defaultRegion,
ImmutableSet.of("default"), ImmutableSet.of( ImmutableSet.of("default"), ImmutableSet.of(
new AWSRunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("0") new AWSRunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("0").imageId(
.imageId("ami-60a54009").instanceId("i-2ba64342").instanceState(InstanceState.PENDING) "ami-60a54009").instanceId("i-2ba64342").instanceState(InstanceState.PENDING).rawState(
.instanceType(InstanceType.M1_SMALL).keyName("example-key-name") "pending").instanceType(InstanceType.M1_SMALL).keyName("example-key-name").launchTime(
.launchTime(dateService.iso8601DateParse("2007-08-07T11:51:50.000Z")) dateService.iso8601DateParse("2007-08-07T11:51:50.000Z")).hypervisor(Hypervisor.XEN)
.hypervisor(Hypervisor.XEN)
.monitoringState(MonitoringState.ENABLED).availabilityZone("us-east-1b").build(), .monitoringState(MonitoringState.ENABLED).availabilityZone("us-east-1b").build(),
new AWSRunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("1") new AWSRunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("1").imageId(
.imageId("ami-60a54009").instanceId("i-2bc64242").instanceState(InstanceState.PENDING) "ami-60a54009").instanceId("i-2bc64242").instanceState(InstanceState.PENDING).rawState(
.instanceType(InstanceType.M1_SMALL).keyName("example-key-name") "pending").instanceType(InstanceType.M1_SMALL).keyName("example-key-name").launchTime(
.launchTime(dateService.iso8601DateParse("2007-08-07T11:51:50.000Z")) dateService.iso8601DateParse("2007-08-07T11:51:50.000Z")).hypervisor(Hypervisor.XEN)
.hypervisor(Hypervisor.XEN)
.monitoringState(MonitoringState.ENABLED).availabilityZone("us-east-1b").build(), .monitoringState(MonitoringState.ENABLED).availabilityZone("us-east-1b").build(),
new AWSRunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("2") new AWSRunningInstance.Builder().region(defaultRegion).groupId("default").amiLaunchIndex("2").imageId(
.imageId("ami-60a54009").instanceId("i-2be64332").instanceState(InstanceState.PENDING) "ami-60a54009").instanceId("i-2be64332").instanceState(InstanceState.PENDING).rawState(
.instanceType(InstanceType.M1_SMALL).keyName("example-key-name") "pending").instanceType(InstanceType.M1_SMALL).keyName("example-key-name").launchTime(
.launchTime(dateService.iso8601DateParse("2007-08-07T11:51:50.000Z")) dateService.iso8601DateParse("2007-08-07T11:51:50.000Z")).hypervisor(Hypervisor.XEN)
.hypervisor(Hypervisor.XEN)
.monitoringState(MonitoringState.ENABLED).availabilityZone("us-east-1b").build()) .monitoringState(MonitoringState.ENABLED).availabilityZone("us-east-1b").build())
, "AIDADH4IGTRXXKCD", null, "r-47a5402e"); , "AIDADH4IGTRXXKCD", null, "r-47a5402e");

View File

@ -27,6 +27,8 @@ import java.io.InputStream;
import org.jclouds.aws.ec2.domain.LaunchSpecification; import org.jclouds.aws.ec2.domain.LaunchSpecification;
import org.jclouds.aws.ec2.domain.SpotInstanceRequest; import org.jclouds.aws.ec2.domain.SpotInstanceRequest;
import org.jclouds.aws.ec2.domain.SpotInstanceRequest.State;
import org.jclouds.aws.ec2.domain.SpotInstanceRequest.Type;
import org.jclouds.date.DateService; import org.jclouds.date.DateService;
import org.jclouds.date.internal.SimpleDateFormatDateService; import org.jclouds.date.internal.SimpleDateFormatDateService;
import org.jclouds.ec2.xml.BaseEC2HandlerTest; import org.jclouds.ec2.xml.BaseEC2HandlerTest;
@ -81,8 +83,9 @@ public class SpotInstanceHandlerTest extends BaseEC2HandlerTest {
.region("us-east-1") .region("us-east-1")
.id("sir-228e6406") .id("sir-228e6406")
.spotPrice(0.001f) .spotPrice(0.001f)
.type(SpotInstanceRequest.Type.ONE_TIME) .type(Type.ONE_TIME)
.state(SpotInstanceRequest.State.OPEN) .state(State.OPEN)
.rawState("open")
.launchSpecification( .launchSpecification(
LaunchSpecification.builder().imageId("ami-595a0a1c").securityGroupIdToName("sg-83e1c4ea", "default") LaunchSpecification.builder().imageId("ami-595a0a1c").securityGroupIdToName("sg-83e1c4ea", "default")
.instanceType("m1.large").mapNewVolumeToDevice("/dev/sda1", 1, true) .instanceType("m1.large").mapNewVolumeToDevice("/dev/sda1", 1, true)
@ -94,6 +97,9 @@ public class SpotInstanceHandlerTest extends BaseEC2HandlerTest {
addDefaultRegionToHandler(handler); addDefaultRegionToHandler(handler);
SpotInstanceRequest result = factory.create(handler).parse(is); SpotInstanceRequest result = factory.create(handler).parse(is);
assertEquals(result.toString(), expected.toString()); assertEquals(result.toString(), expected.toString());
assertEquals(result.getState(), State.OPEN);
assertEquals(result.getRawState(), "open");
} }
public void testApplyInputStream1() { public void testApplyInputStream1() {
@ -106,8 +112,9 @@ public class SpotInstanceHandlerTest extends BaseEC2HandlerTest {
.id("sir-1ede0012") .id("sir-1ede0012")
.instanceId("i-ef308e8e") .instanceId("i-ef308e8e")
.spotPrice(0.300000f) .spotPrice(0.300000f)
.type(SpotInstanceRequest.Type.ONE_TIME) .type(Type.ONE_TIME)
.state(SpotInstanceRequest.State.ACTIVE) .state(State.ACTIVE)
.rawState("active")
.launchedAvailabilityZone("us-east-1b") .launchedAvailabilityZone("us-east-1b")
.launchSpecification( .launchSpecification(
LaunchSpecification.builder().imageId("ami-8e1fece7") LaunchSpecification.builder().imageId("ami-8e1fece7")
@ -123,7 +130,9 @@ public class SpotInstanceHandlerTest extends BaseEC2HandlerTest {
SpotInstanceHandler handler = injector.getInstance(SpotInstanceHandler.class); SpotInstanceHandler handler = injector.getInstance(SpotInstanceHandler.class);
addDefaultRegionToHandler(handler); addDefaultRegionToHandler(handler);
SpotInstanceRequest result = factory.create(handler).parse(is); SpotInstanceRequest result = factory.create(handler).parse(is);
assertEquals(result, expected); assertEquals(result.toString(), expected.toString());
assertEquals(result.getState(), State.ACTIVE);
assertEquals(result.getRawState(), "active");
} }
private void addDefaultRegionToHandler(ParseSax.HandlerWithResult<?> handler) { private void addDefaultRegionToHandler(ParseSax.HandlerWithResult<?> handler) {

View File

@ -76,7 +76,7 @@ public class EucalyptusPartnerCloudReviseParsedImageTest {
.userMetadata( .userMetadata(
ImmutableMap.of("owner", "admin", "rootDeviceType", "instance-store", "virtualizationType", ImmutableMap.of("owner", "admin", "rootDeviceType", "instance-store", "virtualizationType",
"paravirtual", "hypervisor", "xen")) "paravirtual", "hypervisor", "xen"))
.status(org.jclouds.compute.domain.Image.Status.AVAILABLE).build().toString()); .status(org.jclouds.compute.domain.Image.Status.AVAILABLE).backendStatus("available").build().toString());
assertEquals(Iterables.get(result, 0).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE); assertEquals(Iterables.get(result, 0).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE);
assertEquals( assertEquals(
@ -94,7 +94,7 @@ public class EucalyptusPartnerCloudReviseParsedImageTest {
.userMetadata( .userMetadata(
ImmutableMap.of("owner", "admin", "rootDeviceType", "instance-store", "virtualizationType", ImmutableMap.of("owner", "admin", "rootDeviceType", "instance-store", "virtualizationType",
"paravirtual", "hypervisor", "xen")) "paravirtual", "hypervisor", "xen"))
.status(org.jclouds.compute.domain.Image.Status.AVAILABLE).build().toString()); .status(org.jclouds.compute.domain.Image.Status.AVAILABLE).backendStatus("available").build().toString());
assertEquals(Iterables.get(result, 1).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE); assertEquals(Iterables.get(result, 1).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE);
assertEquals( assertEquals(
@ -112,7 +112,7 @@ public class EucalyptusPartnerCloudReviseParsedImageTest {
.userMetadata( .userMetadata(
ImmutableMap.of("owner", "admin", "rootDeviceType", "instance-store", "virtualizationType", ImmutableMap.of("owner", "admin", "rootDeviceType", "instance-store", "virtualizationType",
"paravirtual", "hypervisor", "xen")) "paravirtual", "hypervisor", "xen"))
.status(org.jclouds.compute.domain.Image.Status.AVAILABLE).build().toString()); .status(org.jclouds.compute.domain.Image.Status.AVAILABLE).backendStatus("available").build().toString());
assertEquals(Iterables.get(result, 2).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE); assertEquals(Iterables.get(result, 2).getStatus(), org.jclouds.compute.domain.Image.Status.AVAILABLE);
} }