diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsAsyncClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsAsyncClient.java
index c5e2383c73..305310bc08 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsAsyncClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsAsyncClient.java
@@ -99,7 +99,7 @@ public interface WindowsAsyncClient {
@BinderParam(BindBundleIdsToIndexedFormParams.class) String... bundleTaskIds);
/**
- * @see WindowsClient#getPasswordData
+ * @see WindowsClient#getPasswordDataInRegion
*/
@POST
@Path("/")
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsClient.java
index e22284b118..5a1af0e0ad 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsClient.java
@@ -18,15 +18,14 @@
*/
package org.jclouds.ec2.services;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-
+import org.jclouds.concurrent.Timeout;
+import org.jclouds.ec2.domain.BundleTask;
import org.jclouds.ec2.domain.PasswordData;
+import org.jclouds.ec2.options.BundleInstanceS3StorageOptions;
import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.ec2.domain.BundleTask;
-import org.jclouds.ec2.options.BundleInstanceS3StorageOptions;
-import org.jclouds.concurrent.Timeout;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
/**
* Provides windows services for EC2. For more information, refer to the Amazon
@@ -119,5 +118,5 @@ public interface WindowsClient {
* @param instanceId The ID of the instance to query
* @see
*/
- PasswordData getPasswordData(@Nullable String region, String instanceId);
+ PasswordData getPasswordDataInRegion(@Nullable String region, String instanceId);
}
diff --git a/apis/ec2/src/test/java/org/jclouds/ec2/services/WindowsClientLiveTest.java b/apis/ec2/src/test/java/org/jclouds/ec2/services/WindowsClientLiveTest.java
index 2b7f57fce4..3f1b888eaf 100644
--- a/apis/ec2/src/test/java/org/jclouds/ec2/services/WindowsClientLiveTest.java
+++ b/apis/ec2/src/test/java/org/jclouds/ec2/services/WindowsClientLiveTest.java
@@ -27,7 +27,6 @@ import org.jclouds.compute.BaseVersionedServiceLiveTest;
import org.jclouds.compute.ComputeService;
import org.jclouds.compute.ComputeServiceContext;
import org.jclouds.compute.ComputeServiceContextFactory;
-import org.jclouds.compute.RunNodesException;
import org.jclouds.compute.domain.NodeMetadata;
import org.jclouds.compute.domain.OsFamily;
import org.jclouds.compute.domain.Template;
@@ -43,7 +42,6 @@ import org.jclouds.ec2.domain.InstanceType;
import org.jclouds.ec2.domain.PasswordData;
import org.jclouds.ec2.reference.EC2Constants;
import org.jclouds.encryption.bouncycastle.config.BouncyCastleCryptoModule;
-import org.jclouds.logging.Logger;
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
import org.jclouds.predicates.RetryablePredicate;
import org.jclouds.rest.RestContext;
@@ -51,12 +49,6 @@ import org.testng.annotations.BeforeGroups;
import org.testng.annotations.Test;
import javax.annotation.Nullable;
-import javax.crypto.BadPaddingException;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-import java.security.spec.InvalidKeySpecException;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@@ -95,7 +87,7 @@ public class WindowsClientLiveTest extends BaseVersionedServiceLiveTest {
public void setupClient() {
setupCredentials();
Properties overrides = setupProperties();
- overrides.put(EC2Constants.PROPERTY_EC2_AMI_OWNERS, "206029621532");
+ overrides.put(EC2Constants.PROPERTY_EC2_AMI_OWNERS, "206029621532"); /* Amazon Owner ID */
ComputeServiceContext serviceContext = new ComputeServiceContextFactory(setupRestProperties()).createContext(provider,
ImmutableSet.of(new Log4JLoggingModule(), new BouncyCastleCryptoModule()), overrides);
computeService = serviceContext.getComputeService();
@@ -128,7 +120,7 @@ public class WindowsClientLiveTest extends BaseVersionedServiceLiveTest {
}
@Test
- public void testGetPasswordData() throws Exception {
+ public void testGetPasswordDataInRegion() throws Exception {
// Spin up a new node. Make sure to open the RDP port 3389
Template template = computeService.templateBuilder()
@@ -150,7 +142,7 @@ public class WindowsClientLiveTest extends BaseVersionedServiceLiveTest {
@Override
public boolean apply(@Nullable String s) {
if (Strings.isNullOrEmpty(s)) return false;
- PasswordData data = client.getPasswordData(null, s);
+ PasswordData data = client.getPasswordDataInRegion(null, s);
if (data == null) return false;
return !Strings.isNullOrEmpty(data.getPasswordData());
}
@@ -160,7 +152,7 @@ public class WindowsClientLiveTest extends BaseVersionedServiceLiveTest {
// Now pull together Amazon's encrypted password blob, and the private key that jclouds generated
PasswordDataAndPrivateKey dataAndKey = new PasswordDataAndPrivateKey(
- client.getPasswordData(null, node.getProviderId()),
+ client.getPasswordDataInRegion(null, node.getProviderId()),
node.getCredentials().getPrivateKey());
// And apply it to the decryption function
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/strategy/AWSEC2ImageParserTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/strategy/AWSEC2ImageParserTest.java
index 7e2498a842..e21dbd8d01 100644
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/strategy/AWSEC2ImageParserTest.java
+++ b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/strategy/AWSEC2ImageParserTest.java
@@ -18,11 +18,14 @@
*/
package org.jclouds.aws.ec2.compute.strategy;
-import static org.testng.Assert.assertEquals;
-
-import java.util.Map;
-import java.util.Set;
-
+import com.google.common.base.Predicates;
+import com.google.common.base.Suppliers;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Sets;
+import com.google.gson.Gson;
+import com.google.inject.Guice;
import org.jclouds.compute.config.BaseComputeServiceContextModule;
import org.jclouds.compute.domain.ImageBuilder;
import org.jclouds.compute.domain.OperatingSystem;
@@ -40,14 +43,10 @@ import org.jclouds.json.Json;
import org.jclouds.json.config.GsonModule;
import org.testng.annotations.Test;
-import com.google.common.base.Predicates;
-import com.google.common.base.Suppliers;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Sets;
-import com.google.gson.Gson;
-import com.google.inject.Guice;
+import java.util.Map;
+import java.util.Set;
+
+import static org.testng.Assert.assertEquals;
/**
* @author Adrian Cole
@@ -68,7 +67,12 @@ public class AWSEC2ImageParserTest {
.description("ubuntu-images-us/ubuntu-hardy-8.04-i386-server-20091130.manifest.xml")
.defaultCredentials(new LoginCredentials("ubuntu", false)).id("us-east-1/ami-7e28ca17")
.providerId("ami-7e28ca17").location(defaultLocation).version("20091130")
- .userMetadata(ImmutableMap.of("owner", "099720109477", "rootDeviceType", "instance-store")).build());
+ .userMetadata(ImmutableMap.of(
+ "owner", "099720109477",
+ "rootDeviceType", "instance-store",
+ "virtualizationType", "paravirtual",
+ "hypervisor", "xen"))
+ .build());
assertEquals(
Iterables.get(result, 4),
@@ -84,6 +88,7 @@ public class AWSEC2ImageParserTest {
assertEquals(
Iterables.get(result, 6),
new ImageBuilder()
+ .name("ebs/ubuntu-images/ubuntu-lucid-10.04-i386-server-20100827")
.operatingSystem(
new OperatingSystem.Builder().family(OsFamily.UBUNTU).arch("paravirtual").version("10.04")
.description("099720109477/ebs/ubuntu-images/ubuntu-lucid-10.04-i386-server-20100827")
@@ -91,7 +96,12 @@ public class AWSEC2ImageParserTest {
.description("099720109477/ebs/ubuntu-images/ubuntu-lucid-10.04-i386-server-20100827")
.defaultCredentials(new LoginCredentials("ubuntu", false)).id("us-east-1/ami-10f3a255")
.providerId("ami-10f3a255").location(defaultLocation).version("20100827")
- .userMetadata(ImmutableMap.of("owner", "099720109477", "rootDeviceType", "ebs")).build());
+ .userMetadata(ImmutableMap.of(
+ "owner", "099720109477",
+ "rootDeviceType", "ebs",
+ "virtualizationType", "paravirtual",
+ "hypervisor", "xen"))
+ .build());
}
@@ -120,13 +130,19 @@ public class AWSEC2ImageParserTest {
assertEquals(
Iterables.get(result, 0),
new ImageBuilder()
+ .name("EC2 CentOS 5.4 HVM AMI")
.operatingSystem(
new OperatingSystem.Builder().family(OsFamily.CENTOS).arch("hvm").version("5.4")
.description("amazon/EC2 CentOS 5.4 HVM AMI").is64Bit(true).build())
.description("EC2 CentOS 5.4 HVM AMI")
.defaultCredentials(new LoginCredentials("root", false)).id("us-east-1/ami-7ea24a17")
.providerId("ami-7ea24a17").location(defaultLocation)
- .userMetadata(ImmutableMap.of("owner", "206029621532", "rootDeviceType", "ebs")).build());
+ .userMetadata(ImmutableMap.of(
+ "owner", "206029621532",
+ "rootDeviceType", "ebs",
+ "virtualizationType", "hvm",
+ "hypervisor", "xen"))
+ .build());
}
@@ -147,11 +163,11 @@ public class AWSEC2ImageParserTest {
assertEquals(
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},\"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\",\"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},\"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(
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},\"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\",\"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},\"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() {
@@ -161,17 +177,24 @@ public class AWSEC2ImageParserTest {
assertEquals(
Iterables.get(result, 0),
new ImageBuilder()
+ .name("amzn-ami-0.9.7-beta.i386-ebs")
.operatingSystem(
new OperatingSystem.Builder().family(OsFamily.AMZN_LINUX).arch("paravirtual")
.version("0.9.7-beta").description("137112412989/amzn-ami-0.9.7-beta.i386-ebs")
.is64Bit(false).build()).description("Amazon")
.defaultCredentials(new LoginCredentials("ec2-user", false)).id("us-east-1/ami-82e4b5c7")
.providerId("ami-82e4b5c7").location(defaultLocation).version("0.9.7-beta")
- .userMetadata(ImmutableMap.of("owner", "137112412989", "rootDeviceType", "ebs")).build());
+ .userMetadata(ImmutableMap.of(
+ "owner", "137112412989",
+ "rootDeviceType", "ebs",
+ "virtualizationType", "paravirtual",
+ "hypervisor", "xen"))
+ .build());
assertEquals(
Iterables.get(result, 3),
new ImageBuilder()
+ .name("amzn-ami-0.9.7-beta.x86_64-S3")
.operatingSystem(
new OperatingSystem.Builder().family(OsFamily.AMZN_LINUX).arch("paravirtual")
.version("0.9.7-beta")
@@ -179,7 +202,12 @@ public class AWSEC2ImageParserTest {
.build()).description("Amazon Linux AMI x86_64 S3")
.defaultCredentials(new LoginCredentials("ec2-user", false)).id("us-east-1/ami-f2e4b5b7")
.providerId("ami-f2e4b5b7").location(defaultLocation).version("0.9.7-beta")
- .userMetadata(ImmutableMap.of("owner", "137112412989", "rootDeviceType", "ebs")).build());
+ .userMetadata(ImmutableMap.of(
+ "owner", "137112412989",
+ "rootDeviceType", "ebs",
+ "virtualizationType", "paravirtual",
+ "hypervisor", "xen"))
+ .build());
}
static Location defaultLocation = new LocationBuilder().scope(LocationScope.REGION).id("us-east-1")