You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2014/07/18 16:17:49 UTC
git commit: JCLOUDS-549: Fix NPE in LoginCredentials.toString
Repository: jclouds
Updated Branches:
refs/heads/master fb60d7670 -> 1fb286809
JCLOUDS-549: Fix NPE in LoginCredentials.toString
- also deprecates LoginCredentails.get(Password|PrivateKey)
- use getOptionalPassword and getOptionalPrivateKey instead
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/1fb28680
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/1fb28680
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/1fb28680
Branch: refs/heads/master
Commit: 1fb286809e14e77e051ec22d91afe32bd1ecdebd
Parents: fb60d76
Author: Aled Sage <al...@gmail.com>
Authored: Sat May 17 21:59:17 2014 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Fri Jul 18 14:09:18 2014 +0100
----------------------------------------------------------------------
...oudStackComputeServiceAdapterExpectTest.java | 13 +++---
.../features/FirewallApiLiveTest.java | 2 +-
.../features/LoadBalancerApiLiveTest.java | 2 +-
.../features/SecurityGroupApiLiveTest.java | 2 +-
.../features/VirtualMachineApiExpectTest.java | 2 +-
.../features/VirtualMachineApiLiveTest.java | 2 +-
...taticNATVirtualMachineInNetworkLiveTest.java | 2 +-
...wsLoginCredentialsFromEncryptedDataTest.java | 2 +-
.../compute/EC2ComputeServiceExpectTest.java | 5 ++-
...wsLoginCredentialsFromEncryptedDataTest.java | 2 +-
...tyGroupsAsNeededAndReturnRunOptionsTest.java | 2 +-
.../compute/NovaComputeServiceExpectTest.java | 7 ++--
.../callables/RunScriptOnNodeUsingSsh.java | 6 +--
.../compute/callables/SudoAwareInitManager.java | 4 +-
.../PrioritizeCredentialsFromTemplate.java | 8 ++--
.../org/jclouds/domain/LoginCredentials.java | 43 ++++++++++----------
.../rest/config/CredentialStoreModule.java | 4 +-
.../jclouds/domain/LoginCredentialsTest.java | 12 ++++++
.../jclouds/rest/CredentialStoreModuleTest.java | 30 ++++++++++++++
.../org/jclouds/ssh/jsch/JschSshClient.java | 10 ++---
.../org/jclouds/ssh/jsch/SessionConnection.java | 6 +--
.../org/jclouds/sshj/SSHClientConnection.java | 6 +--
.../java/org/jclouds/sshj/SshjSshClient.java | 10 ++---
.../compute/strategy/AWSEC2ImageParserTest.java | 4 +-
...tyGroupsAsNeededAndReturnRunOptionsTest.java | 2 +-
25 files changed, 117 insertions(+), 71 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackComputeServiceAdapterExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackComputeServiceAdapterExpectTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackComputeServiceAdapterExpectTest.java
index 5aa61b8..877b0fe 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackComputeServiceAdapterExpectTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackComputeServiceAdapterExpectTest.java
@@ -18,6 +18,7 @@ package org.jclouds.cloudstack.compute;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
import java.io.IOException;
import java.util.Map;
@@ -179,7 +180,7 @@ public class CloudStackComputeServiceAdapterExpectTest extends BaseCloudStackCom
NodeAndInitialCredentials<VirtualMachine> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92",
template);
assertNotNull(server);
- assertEquals(server.getCredentials().getPrivateKey(), privKey);
+ assertEquals(server.getCredentials().getOptionalPrivateKey().get(), privKey);
}
public void testCreateNodeWithGroupEncodedIntoNameWithGenerateKeyPair() throws IOException {
@@ -226,7 +227,7 @@ public class CloudStackComputeServiceAdapterExpectTest extends BaseCloudStackCom
NodeAndInitialCredentials<VirtualMachine> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92",
template);
assertNotNull(server);
- assertNotNull(server.getCredentials().getPrivateKey());
+ assertTrue(server.getCredentials().getOptionalPrivateKey().isPresent());
}
public void testCreateNodeWithGroupEncodedIntoNameWithKeyPairDefaultSecurityGroup() throws IOException {
@@ -277,7 +278,7 @@ public class CloudStackComputeServiceAdapterExpectTest extends BaseCloudStackCom
NodeAndInitialCredentials<VirtualMachine> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92",
template);
assertNotNull(server);
- assertEquals(server.getCredentials().getPrivateKey(), privKey);
+ assertEquals(server.getCredentials().getOptionalPrivateKey().get(), privKey);
}
public void testCreateNodeWithGroupEncodedIntoNameWithKeyPairDefaultSecurityGroupAndDisk() throws IOException {
@@ -333,7 +334,7 @@ public class CloudStackComputeServiceAdapterExpectTest extends BaseCloudStackCom
NodeAndInitialCredentials<VirtualMachine> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92",
template);
assertNotNull(server);
- assertEquals(server.getCredentials().getPrivateKey(), privKey);
+ assertEquals(server.getCredentials().getOptionalPrivateKey().get(), privKey);
}
public void testCreateNodeWithGroupEncodedIntoNameWithKeyPairGenerateSecurityGroup() throws IOException {
@@ -391,7 +392,7 @@ public class CloudStackComputeServiceAdapterExpectTest extends BaseCloudStackCom
NodeAndInitialCredentials<VirtualMachine> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92",
template);
assertNotNull(server);
- assertEquals(server.getCredentials().getPrivateKey(), privKey);
+ assertEquals(server.getCredentials().getOptionalPrivateKey().get(), privKey);
}
public void testCreateNodeWithGroupEncodedIntoNameWithKeyPairAssignedToAccountAndDomain() throws IOException {
@@ -444,7 +445,7 @@ public class CloudStackComputeServiceAdapterExpectTest extends BaseCloudStackCom
NodeAndInitialCredentials<VirtualMachine> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92",
template);
assertNotNull(server);
- assertEquals(server.getCredentials().getPrivateKey(), privKey);
+ assertEquals(server.getCredentials().getOptionalPrivateKey().get(), privKey);
}
@Override
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/FirewallApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/FirewallApiLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/FirewallApiLiveTest.java
index 1baf8a4..edce600 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/FirewallApiLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/FirewallApiLiveTest.java
@@ -77,7 +77,7 @@ public class FirewallApiLiveTest extends BaseCloudStackApiLiveTest {
defaultTemplateOrPreferredInZone(defaultTemplate, client, network.getZoneId()),
client, jobComplete, virtualMachineRunning);
- if (vm.getPassword() != null && loginCredentials.getOptionalPassword() == null)
+ if (vm.getPassword() != null && !loginCredentials.getOptionalPassword().isPresent())
loginCredentials = loginCredentials.toBuilder().password(vm.getPassword()).build();
} catch (NoSuchElementException e) {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/LoadBalancerApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/LoadBalancerApiLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/LoadBalancerApiLiveTest.java
index b2e12d5..82d3a62 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/LoadBalancerApiLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/LoadBalancerApiLiveTest.java
@@ -89,7 +89,7 @@ public class LoadBalancerApiLiveTest extends BaseCloudStackApiLiveTest {
vm = VirtualMachineApiLiveTest.createVirtualMachineInNetwork(network,
defaultTemplateOrPreferredInZone(defaultTemplate, client, network.getZoneId()),
client, jobComplete, virtualMachineRunning);
- if (vm.getPassword() != null && loginCredentials.getOptionalPassword() == null)
+ if (vm.getPassword() != null && !loginCredentials.getOptionalPassword().isPresent())
loginCredentials = loginCredentials.toBuilder().password(vm.getPassword()).build();
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/SecurityGroupApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/SecurityGroupApiLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/SecurityGroupApiLiveTest.java
index 3697612..a4bb788 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/SecurityGroupApiLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/SecurityGroupApiLiveTest.java
@@ -177,7 +177,7 @@ public class SecurityGroupApiLiveTest extends BaseCloudStackApiLiveTest {
vm = VirtualMachineApiLiveTest.createVirtualMachineWithSecurityGroupInZone(zone.getId(),
defaultTemplateOrPreferredInZone(defaultTemplate, client, zone.getId()), group.getId(), client,
jobComplete, virtualMachineRunning);
- if (vm.getPassword() != null && loginCredentials.getOptionalPassword() == null)
+ if (vm.getPassword() != null && !loginCredentials.getOptionalPassword().isPresent())
loginCredentials = loginCredentials.toBuilder().password(vm.getPassword()).build();
// ingress port 22
checkSSH(HostAndPort.fromParts(vm.getIPAddress(), 22));
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiExpectTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiExpectTest.java
index 139a7c6..3b8b043 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiExpectTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiExpectTest.java
@@ -74,7 +74,7 @@ public class VirtualMachineApiExpectTest extends BaseCloudStackExpectTest<Virtua
WindowsLoginCredentialsFromEncryptedData passwordDecrypt = new WindowsLoginCredentialsFromEncryptedData(new JCECrypto());
assertEquals(passwordDecrypt.apply(
- EncryptedPasswordAndPrivateKey.builder().encryptedPassword(actual).privateKey(privateKey).build()).getPassword(), "bX7vvptvw");
+ EncryptedPasswordAndPrivateKey.builder().encryptedPassword(actual).privateKey(privateKey).build()).getOptionalPassword().get(), "bX7vvptvw");
}
HttpRequest deployVirtualMachineInZone = HttpRequest.builder().method("GET")
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiLiveTest.java
index fd31a2e..a0dc153 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiLiveTest.java
@@ -279,7 +279,7 @@ public class VirtualMachineApiLiveTest extends BaseCloudStackApiLiveTest {
}
private void conditionallyCheckSSH() {
- if (vm.getPassword() != null && loginCredentials.getOptionalPassword() == null)
+ if (vm.getPassword() != null && !loginCredentials.getOptionalPassword().isPresent())
loginCredentials = loginCredentials.toBuilder().password(vm.getPassword()).build();
assert HostSpecifier.isValid(vm.getIPAddress());
if (!InetAddresses2.isPrivateIPAddress(vm.getIPAddress())) {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/apis/cloudstack/src/test/java/org/jclouds/cloudstack/functions/StaticNATVirtualMachineInNetworkLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/functions/StaticNATVirtualMachineInNetworkLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/functions/StaticNATVirtualMachineInNetworkLiveTest.java
index c9a0841..75bfd18 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/functions/StaticNATVirtualMachineInNetworkLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/functions/StaticNATVirtualMachineInNetworkLiveTest.java
@@ -62,7 +62,7 @@ public class StaticNATVirtualMachineInNetworkLiveTest extends NATApiLiveTest {
vm = VirtualMachineApiLiveTest.createVirtualMachineInNetwork(network,
defaultTemplateOrPreferredInZone(defaultTemplate, client, network.getZoneId()), client, jobComplete,
virtualMachineRunning);
- if (vm.getPassword() != null && loginCredentials.getOptionalPassword() == null)
+ if (vm.getPassword() != null && !loginCredentials.getOptionalPassword().isPresent())
loginCredentials = loginCredentials.toBuilder().password(vm.getPassword()).build();
} catch (NoSuchElementException e) {
networksDisabled = true;
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/apis/cloudstack/src/test/java/org/jclouds/cloudstack/functions/WindowsLoginCredentialsFromEncryptedDataTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/functions/WindowsLoginCredentialsFromEncryptedDataTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/functions/WindowsLoginCredentialsFromEncryptedDataTest.java
index adca977..a59ecad 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/functions/WindowsLoginCredentialsFromEncryptedDataTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/functions/WindowsLoginCredentialsFromEncryptedDataTest.java
@@ -62,7 +62,7 @@ public class WindowsLoginCredentialsFromEncryptedDataTest {
LoginCredentials credentials = f.apply(new EncryptedPasswordAndPrivateKey(ENCRYPTED_PASSWORD, PRIVATE_KEY));
assertEquals(credentials.getUser(), "Administrator");
- assertEquals(credentials.getPassword(), "u4.y9mb;nR.");
+ assertEquals(credentials.getOptionalPassword().get(), "u4.y9mb;nR.");
assertFalse(credentials.getOptionalPrivateKey().isPresent());
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/apis/ec2/src/test/java/org/jclouds/ec2/compute/EC2ComputeServiceExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/test/java/org/jclouds/ec2/compute/EC2ComputeServiceExpectTest.java b/apis/ec2/src/test/java/org/jclouds/ec2/compute/EC2ComputeServiceExpectTest.java
index 6a6c4b7..4ffad1f 100644
--- a/apis/ec2/src/test/java/org/jclouds/ec2/compute/EC2ComputeServiceExpectTest.java
+++ b/apis/ec2/src/test/java/org/jclouds/ec2/compute/EC2ComputeServiceExpectTest.java
@@ -20,6 +20,7 @@ import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.blockUn
import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.maxCount;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
import javax.ws.rs.core.MediaType;
import java.util.Set;
@@ -132,7 +133,7 @@ public class EC2ComputeServiceExpectTest extends BaseEC2ComputeServiceExpectTest
blockUntilRunning(false).overrideLoginUser("ec2-user")));
assertEquals(node.getCredentials().getUser(), "ec2-user");
System.out.println(node.getImageId());
- assertNotNull(node.getCredentials().getPrivateKey());
+ assertTrue(node.getCredentials().getOptionalPrivateKey().isPresent());
}
public void testCreateThreeNodesWithMaxCountThree() throws Exception {
@@ -312,7 +313,7 @@ public class EC2ComputeServiceExpectTest extends BaseEC2ComputeServiceExpectTest
apiThatCreatesNode.createNodesInGroup("test", 1,
apiThatCreatesNode.templateBuilder().from("osDescriptionMatches=.*fedora.*,loginUser=ec2-user").build()));
assertEquals(node.getCredentials().getUser(), "ec2-user");
- assertNotNull(node.getCredentials().getPrivateKey());
+ assertTrue(node.getCredentials().getOptionalPrivateKey().isPresent());
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/apis/ec2/src/test/java/org/jclouds/ec2/compute/functions/WindowsLoginCredentialsFromEncryptedDataTest.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/test/java/org/jclouds/ec2/compute/functions/WindowsLoginCredentialsFromEncryptedDataTest.java b/apis/ec2/src/test/java/org/jclouds/ec2/compute/functions/WindowsLoginCredentialsFromEncryptedDataTest.java
index 9560c4c..3859f53 100644
--- a/apis/ec2/src/test/java/org/jclouds/ec2/compute/functions/WindowsLoginCredentialsFromEncryptedDataTest.java
+++ b/apis/ec2/src/test/java/org/jclouds/ec2/compute/functions/WindowsLoginCredentialsFromEncryptedDataTest.java
@@ -68,7 +68,7 @@ public class WindowsLoginCredentialsFromEncryptedDataTest {
LoginCredentials credentials = f.apply(new PasswordDataAndPrivateKey(passwordData, PRIVATE_KEY));
assertEquals(credentials.getUser(), "Administrator");
- assertEquals(credentials.getPassword(), "u4.y9mb;nR.");
+ assertEquals(credentials.getOptionalPassword().get(), "u4.y9mb;nR.");
assertFalse(credentials.getOptionalPrivateKey().isPresent());
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/apis/ec2/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java b/apis/ec2/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
index 0e91b87..527123a 100644
--- a/apis/ec2/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
+++ b/apis/ec2/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
@@ -317,7 +317,7 @@ public class CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest {
// setup expectations
expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
- expect(options.getLoginPrivateKey()).andReturn(CREDENTIALS.getPrivateKey()).atLeastOnce();
+ expect(options.getLoginPrivateKey()).andReturn(CREDENTIALS.getOptionalPrivateKey().get()).atLeastOnce();
// Notice that the fingerprint and sha1 generated
expect(strategy.credentialsMap.put(new RegionAndName(region, userSuppliedKeyPair), KEYPAIR)).andReturn(null);
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java
index d15f2c9..f87f66e 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java
@@ -20,6 +20,7 @@ import static org.jclouds.compute.util.ComputeServiceUtils.getCores;
import static org.jclouds.openstack.nova.v2_0.compute.options.NovaTemplateOptions.Builder.blockUntilRunning;
import static org.jclouds.openstack.nova.v2_0.compute.options.NovaTemplateOptions.Builder.keyPairName;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
@@ -267,7 +268,7 @@ public class NovaComputeServiceExpectTest extends BaseNovaComputeServiceExpectTe
NodeMetadata node = Iterables.getOnlyElement(apiThatCreatesNode.createNodesInGroup("test", 1,
blockUntilRunning(false).generateKeyPair(true)));
- assertNotNull(node.getCredentials().getPrivateKey());
+ assertTrue(node.getCredentials().getOptionalPrivateKey().isPresent());
}
@Test
@@ -323,7 +324,7 @@ public class NovaComputeServiceExpectTest extends BaseNovaComputeServiceExpectTe
NodeMetadata node = Iterables.getOnlyElement(apiThatCreatesNode.createNodesInGroup("test", 1,
keyPairName("fooPair").blockUntilRunning(false)));
// we don't have access to this private key
- assertEquals(node.getCredentials().getPrivateKey(), null);
+ assertFalse(node.getCredentials().getOptionalPrivateKey().isPresent());
}
@@ -374,7 +375,7 @@ public class NovaComputeServiceExpectTest extends BaseNovaComputeServiceExpectTe
NodeMetadata node = Iterables.getOnlyElement(apiThatCreatesNode.createNodesInGroup("test", 1,
keyPairName("fooPair").securityGroupNames("mygroup").blockUntilRunning(false)));
// we don't have access to this private key
- assertEquals(node.getCredentials().getPrivateKey(), null);
+ assertFalse(node.getCredentials().getOptionalPrivateKey().isPresent());
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/compute/src/main/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSsh.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSsh.java b/compute/src/main/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSsh.java
index ba72a7b..419109d 100644
--- a/compute/src/main/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSsh.java
+++ b/compute/src/main/java/org/jclouds/compute/callables/RunScriptOnNodeUsingSsh.java
@@ -102,8 +102,8 @@ public class RunScriptOnNodeUsingSsh implements RunScriptOnNode {
protected ExecResponse runCommand(String command) {
ExecResponse returnVal;
- logger.debug(">> running [%s] as %s@%s", command.replace(node.getCredentials().getPassword() != null ? node
- .getCredentials().getPassword() : "XXXXX", "XXXXX"), ssh.getUsername(), ssh.getHostAddress());
+ logger.debug(">> running [%s] as %s@%s", command.replace(node.getCredentials().getOptionalPassword().isPresent() ? node
+ .getCredentials().getOptionalPassword().get() : "XXXXX", "XXXXX"), ssh.getUsername(), ssh.getHostAddress());
returnVal = ssh.exec(command);
return returnVal;
}
@@ -112,7 +112,7 @@ public class RunScriptOnNodeUsingSsh implements RunScriptOnNode {
public String execAsRoot(String command) {
if (node.getCredentials().identity.equals("root")) {
} else if (node.getCredentials().shouldAuthenticateSudo()) {
- command = String.format("sudo -S sh <<'%s'\n%s\n%s%s\n", MARKER, node.getCredentials().getPassword(), command, MARKER);
+ command = String.format("sudo -S sh <<'%s'\n%s\n%s%s\n", MARKER, node.getCredentials().getOptionalPassword().get(), command, MARKER);
} else {
command = String.format("sudo sh <<'%s'\n%s%s\n", MARKER, command, MARKER);
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/compute/src/main/java/org/jclouds/compute/callables/SudoAwareInitManager.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/callables/SudoAwareInitManager.java b/compute/src/main/java/org/jclouds/compute/callables/SudoAwareInitManager.java
index ee0d85d..cef8056 100644
--- a/compute/src/main/java/org/jclouds/compute/callables/SudoAwareInitManager.java
+++ b/compute/src/main/java/org/jclouds/compute/callables/SudoAwareInitManager.java
@@ -95,7 +95,7 @@ public class SudoAwareInitManager {
ExecResponse runCommand(String command) {
String statement = String.format("[%s] as %s@%s", command.replace(
- node.getCredentials().getPassword() != null ? node.getCredentials().getPassword() : "XXXXX", "XXXXX"), ssh
+ node.getCredentials().getOptionalPassword().isPresent() ? node.getCredentials().getOptionalPassword().get() : "XXXXX", "XXXXX"), ssh
.getUsername(), ssh.getHostAddress());
if (command.endsWith("status") || command.endsWith("stdout") || command.endsWith("stderr"))
logger.trace(">> running %s", statement);
@@ -113,7 +113,7 @@ public class SudoAwareInitManager {
if (node.getCredentials().identity.equals("root")) {
command = initFile + " " + action;
} else if (node.getCredentials().shouldAuthenticateSudo()) {
- command = String.format("echo '%s'|sudo -S %s %s", node.getCredentials().getPassword(),
+ command = String.format("echo '%s'|sudo -S %s %s", node.getCredentials().getOptionalPassword().get(),
initFile, action);
} else {
command = "sudo " + initFile + " " + action;
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/compute/src/main/java/org/jclouds/compute/strategy/PrioritizeCredentialsFromTemplate.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/strategy/PrioritizeCredentialsFromTemplate.java b/compute/src/main/java/org/jclouds/compute/strategy/PrioritizeCredentialsFromTemplate.java
index 5b8416d..26251fb 100644
--- a/compute/src/main/java/org/jclouds/compute/strategy/PrioritizeCredentialsFromTemplate.java
+++ b/compute/src/main/java/org/jclouds/compute/strategy/PrioritizeCredentialsFromTemplate.java
@@ -44,10 +44,10 @@ public class PrioritizeCredentialsFromTemplate {
Builder builder = LoginCredentials.builder(creds);
if (credsFromParameters.getUser() != null)
builder.user(credsFromParameters.getUser());
- if (credsFromParameters.getPassword() != null)
- builder.password(credsFromParameters.getPassword());
- if (credsFromParameters.getPrivateKey() != null)
- builder.privateKey(credsFromParameters.getPrivateKey());
+ if (credsFromParameters.getOptionalPassword().isPresent())
+ builder.password(credsFromParameters.getOptionalPassword().get());
+ if (credsFromParameters.getOptionalPrivateKey().isPresent())
+ builder.privateKey(credsFromParameters.getOptionalPrivateKey().get());
if (credsFromParameters.shouldAuthenticateSudo())
builder.authenticateSudo(true);
creds = builder.build();
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/core/src/main/java/org/jclouds/domain/LoginCredentials.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/domain/LoginCredentials.java b/core/src/main/java/org/jclouds/domain/LoginCredentials.java
index 262b8bf..d115f73 100644
--- a/core/src/main/java/org/jclouds/domain/LoginCredentials.java
+++ b/core/src/main/java/org/jclouds/domain/LoginCredentials.java
@@ -16,6 +16,7 @@
*/
package org.jclouds.domain;
+import static com.google.common.base.Preconditions.checkNotNull;
import static org.jclouds.crypto.Pems.PRIVATE_PKCS1_MARKER;
import static org.jclouds.crypto.Pems.PRIVATE_PKCS8_MARKER;
@@ -54,8 +55,8 @@ public class LoginCredentials extends Credentials {
public static class Builder extends Credentials.Builder<LoginCredentials> {
private boolean authenticateSudo;
- private Optional<String> password;
- private Optional<String> privateKey;
+ private Optional<String> password = Optional.absent();
+ private Optional<String> privateKey = Optional.absent();
public Builder identity(String identity) {
return Builder.class.cast(super.identity(identity));
@@ -67,8 +68,6 @@ public class LoginCredentials extends Credentials {
public Builder password(String password) {
this.password = Optional.fromNullable(password);
- if (privateKey == null)
- noPrivateKey();
return this;
}
@@ -79,8 +78,6 @@ public class LoginCredentials extends Credentials {
public Builder privateKey(String privateKey) {
this.privateKey = Optional.fromNullable(privateKey);
- if (password == null)
- noPassword();
return this;
}
@@ -103,7 +100,7 @@ public class LoginCredentials extends Credentials {
}
public LoginCredentials build() {
- if (identity == null && password == null && privateKey == null && !authenticateSudo)
+ if (identity == null && !password.isPresent() && !privateKey.isPresent() && !authenticateSudo)
return null;
return new LoginCredentials(identity, password, privateKey, authenticateSudo);
}
@@ -113,13 +110,13 @@ public class LoginCredentials extends Credentials {
private final Optional<String> password;
private final Optional<String> privateKey;
- private LoginCredentials(String username, @Nullable Optional<String> password, @Nullable Optional<String> privateKey, boolean authenticateSudo) {
- super(username, privateKey != null && privateKey.isPresent() && isPrivateKeyCredential(privateKey.get())
+ private LoginCredentials(String username, Optional<String> password, Optional<String> privateKey, boolean authenticateSudo) {
+ super(username, privateKey.isPresent() && isPrivateKeyCredential(privateKey.get())
? privateKey.get()
- : (password != null && password.isPresent() ? password.get() : null));
+ : password.orNull());
this.authenticateSudo = authenticateSudo;
- this.password = password;
- this.privateKey = privateKey;
+ this.password = checkNotNull(password, "password");
+ this.privateKey = checkNotNull(privateKey, "privateKey");
}
/**
@@ -131,41 +128,45 @@ public class LoginCredentials extends Credentials {
/**
* @return the password of the login user or null
+ *
+ * @deprecated since 1.8; instead use {@link #getOptionalPassword()}
*/
@Nullable
+ @Deprecated
public String getPassword() {
- return (password != null) ? password.orNull() : null;
+ return password.orNull();
}
/**
- * @return the optional password of the user or null
+ * @return the optional password of the user (Optional.absent if none supplied).
*/
- @Nullable
public Optional<String> getOptionalPassword() {
return password;
}
/**
* @return the private ssh key of the user or null
+ *
+ * @deprecated since 1.8; instead use {@link #getOptionalPrivateKey()}
*/
@Nullable
+ @Deprecated
public String getPrivateKey() {
- return (privateKey != null) ? privateKey.orNull() : null;
+ return privateKey.orNull();
}
/**
* @return true if there is a private key attached that is not encrypted
*/
public boolean hasUnencryptedPrivateKey() {
- return getPrivateKey() != null
- && !getPrivateKey().isEmpty()
- && !getPrivateKey().contains(Pems.PROC_TYPE_ENCRYPTED);
+ return getOptionalPrivateKey().isPresent()
+ && !getOptionalPrivateKey().get().isEmpty()
+ && !getOptionalPrivateKey().get().contains(Pems.PROC_TYPE_ENCRYPTED);
}
/**
- * @return the optional private ssh key of the user or null
+ * @return the optional private ssh key of the user (Optional.absent if none supplied).
*/
- @Nullable
public Optional<String> getOptionalPrivateKey() {
return privateKey;
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/core/src/main/java/org/jclouds/rest/config/CredentialStoreModule.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/rest/config/CredentialStoreModule.java b/core/src/main/java/org/jclouds/rest/config/CredentialStoreModule.java
index 93157ca..8e7e508 100644
--- a/core/src/main/java/org/jclouds/rest/config/CredentialStoreModule.java
+++ b/core/src/main/java/org/jclouds/rest/config/CredentialStoreModule.java
@@ -85,8 +85,8 @@ public class CredentialStoreModule extends AbstractModule {
LoginCredentials login = LoginCredentials.class.cast(from);
JsonLoginCredentials val = new JsonLoginCredentials();
val.user = login.getUser();
- val.password = login.getPassword();
- val.privateKey = login.getPrivateKey();
+ val.password = login.getOptionalPassword().orNull();
+ val.privateKey = login.getOptionalPrivateKey().orNull();
if (login.shouldAuthenticateSudo())
val.authenticateSudo = login.shouldAuthenticateSudo();
return ByteSource.wrap(json.toJson(val).getBytes(Charsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/core/src/test/java/org/jclouds/domain/LoginCredentialsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/domain/LoginCredentialsTest.java b/core/src/test/java/org/jclouds/domain/LoginCredentialsTest.java
index d235647..608f5e3 100644
--- a/core/src/test/java/org/jclouds/domain/LoginCredentialsTest.java
+++ b/core/src/test/java/org/jclouds/domain/LoginCredentialsTest.java
@@ -17,6 +17,7 @@
package org.jclouds.domain;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
import org.testng.annotations.Test;
@@ -48,4 +49,15 @@ public class LoginCredentialsTest {
assertEquals(toTest.getOptionalPassword(), Optional.of("password"));
assertEquals(toTest.getOptionalPrivateKey(), Optional.of("key"));
}
+
+
+ public void testToStringWhenNullPasswordAndKey() {
+ LoginCredentials toTest = LoginCredentials.builder().user("myuser").build();
+ assertNotNull(toTest.toString());
+ }
+
+ public void testToString() {
+ LoginCredentials toTest = LoginCredentials.builder().user("myuser").password("password").privateKey("key").build();
+ assertNotNull(toTest.toString());
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/core/src/test/java/org/jclouds/rest/CredentialStoreModuleTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/rest/CredentialStoreModuleTest.java b/core/src/test/java/org/jclouds/rest/CredentialStoreModuleTest.java
index 1f5ce4d..9e4635b 100644
--- a/core/src/test/java/org/jclouds/rest/CredentialStoreModuleTest.java
+++ b/core/src/test/java/org/jclouds/rest/CredentialStoreModuleTest.java
@@ -34,6 +34,7 @@ import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.google.common.base.Charsets;
+import com.google.common.base.Function;
import com.google.common.io.ByteSource;
import com.google.inject.Guice;
import com.google.inject.Injector;
@@ -124,6 +125,25 @@ public class CredentialStoreModuleTest {
remove(map, getStore(createInjector()), "test");
}
+ public void testCredentialsToByteSourceConversion() throws Exception {
+ Function<Credentials, ByteSource> toBytesFunc = getCredentialsToByteStoreFunction(createInjector());
+ Function<ByteSource, Credentials> fromBytesFunc = getByteStoreToCredentialsFunction(createInjector());
+
+ LoginCredentials creds = LoginCredentials.builder().user("myuser").password("mypass").authenticateSudo(true).build();
+ ByteSource bytes = toBytesFunc.apply(creds);
+ LoginCredentials deserializedCreds = (LoginCredentials) fromBytesFunc.apply(bytes);
+
+ String json = bytes.asCharSource(Charsets.UTF_8).read();
+ assertEquals(json, "{\"user\":\"myuser\",\"password\":\"mypass\",\"authenticateSudo\":true}");
+
+ assertEquals(deserializedCreds.identity, creds.identity);
+ assertEquals(deserializedCreds.credential, creds.credential);
+ assertEquals(deserializedCreds.getUser(), creds.getUser());
+ assertEquals(deserializedCreds.getOptionalPassword(), creds.getOptionalPassword());
+ assertEquals(deserializedCreds.getOptionalPrivateKey(), creds.getOptionalPrivateKey());
+ assertEquals(deserializedCreds.shouldAuthenticateSudo(), creds.shouldAuthenticateSudo());
+ }
+
protected Map<String, Credentials> getStore(Injector injector) {
return injector.getInstance(Key.get(new TypeLiteral<Map<String, Credentials>>() {
}));
@@ -134,6 +154,16 @@ public class CredentialStoreModuleTest {
}));
}
+ protected Function<ByteSource, Credentials> getByteStoreToCredentialsFunction(Injector injector) {
+ return injector.getInstance(Key.get(new TypeLiteral<Function<ByteSource, Credentials>>() {
+ }));
+ }
+
+ protected Function<Credentials, ByteSource> getCredentialsToByteStoreFunction(Injector injector) {
+ return injector.getInstance(Key.get(new TypeLiteral<Function<Credentials, ByteSource>>() {
+ }));
+ }
+
protected Injector createInjectorWithProvidedMap(Map<String, ByteSource> map) {
return Guice.createInjector(new CredentialStoreModule(map), new GsonModule());
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/JschSshClient.java
----------------------------------------------------------------------
diff --git a/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/JschSshClient.java b/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/JschSshClient.java
index 4aca51b..2413b9f 100644
--- a/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/JschSshClient.java
+++ b/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/JschSshClient.java
@@ -128,16 +128,16 @@ public class JschSshClient implements SshClient {
this.user = checkNotNull(loginCredentials, "loginCredentials").getUser();
this.host = checkNotNull(socket, "socket").getHostText();
checkArgument(socket.getPort() > 0, "ssh port must be greater then zero" + socket.getPort());
- checkArgument(loginCredentials.getPassword() != null || loginCredentials.hasUnencryptedPrivateKey() || agentConnector.isPresent(),
+ checkArgument(loginCredentials.getOptionalPassword().isPresent() || loginCredentials.hasUnencryptedPrivateKey() || agentConnector.isPresent(),
"you must specify a password, a key or an SSH agent needs to be available");
this.backoffLimitedRetryHandler = checkNotNull(backoffLimitedRetryHandler, "backoffLimitedRetryHandler");
- if (loginCredentials.getPassword() != null) {
+ if (loginCredentials.getOptionalPassword().isPresent()) {
this.toString = String.format("%s:pw[%s]@%s:%d", loginCredentials.getUser(),
- base16().lowerCase().encode(md5().hashString(loginCredentials.getPassword(), UTF_8).asBytes()), host,
+ base16().lowerCase().encode(md5().hashString(loginCredentials.getOptionalPassword().get(), UTF_8).asBytes()), host,
socket.getPort());
} else if (loginCredentials.hasUnencryptedPrivateKey()) {
- String fingerPrint = fingerprintPrivateKey(loginCredentials.getPrivateKey());
- String sha1 = sha1PrivateKey(loginCredentials.getPrivateKey());
+ String fingerPrint = fingerprintPrivateKey(loginCredentials.getOptionalPrivateKey().get());
+ String sha1 = sha1PrivateKey(loginCredentials.getOptionalPrivateKey().get());
this.toString = String.format("%s:rsa[fingerprint(%s),sha1(%s)]@%s:%d", loginCredentials.getUser(),
fingerPrint, sha1, host, socket.getPort());
} else {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/SessionConnection.java
----------------------------------------------------------------------
diff --git a/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/SessionConnection.java b/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/SessionConnection.java
index f15fc8f..987d8b9 100644
--- a/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/SessionConnection.java
+++ b/drivers/jsch/src/main/java/org/jclouds/ssh/jsch/SessionConnection.java
@@ -169,10 +169,10 @@ public final class SessionConnection implements Connection<Session> {
.getSession(loginCredentials.getUser(), hostAndPort.getHostText(), hostAndPort.getPortOrDefault(22));
if (sessionTimeout != 0)
session.setTimeout(sessionTimeout);
- if (loginCredentials.getPrivateKey() == null) {
- session.setPassword(loginCredentials.getPassword());
+ if (!loginCredentials.getOptionalPrivateKey().isPresent()) {
+ session.setPassword(loginCredentials.getOptionalPassword().orNull());
} else if (loginCredentials.hasUnencryptedPrivateKey()) {
- byte[] privateKey = loginCredentials.getPrivateKey().getBytes();
+ byte[] privateKey = loginCredentials.getOptionalPrivateKey().get().getBytes();
jsch.addIdentity(loginCredentials.getUser(), privateKey, null, emptyPassPhrase);
} else if (agentConnector.isPresent()) {
JSch.setConfig("PreferredAuthentications", "publickey");
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/drivers/sshj/src/main/java/org/jclouds/sshj/SSHClientConnection.java
----------------------------------------------------------------------
diff --git a/drivers/sshj/src/main/java/org/jclouds/sshj/SSHClientConnection.java b/drivers/sshj/src/main/java/org/jclouds/sshj/SSHClientConnection.java
index 1e7a42b..68754e9 100644
--- a/drivers/sshj/src/main/java/org/jclouds/sshj/SSHClientConnection.java
+++ b/drivers/sshj/src/main/java/org/jclouds/sshj/SSHClientConnection.java
@@ -157,11 +157,11 @@ public class SSHClientConnection implements Connection<SSHClient> {
ssh.setTimeout(sessionTimeout);
}
ssh.connect(hostAndPort.getHostText(), hostAndPort.getPortOrDefault(22));
- if (loginCredentials.getPassword() != null) {
- ssh.authPassword(loginCredentials.getUser(), loginCredentials.getPassword());
+ if (loginCredentials.getOptionalPassword().isPresent()) {
+ ssh.authPassword(loginCredentials.getUser(), loginCredentials.getOptionalPassword().get());
} else if (loginCredentials.hasUnencryptedPrivateKey()) {
OpenSSHKeyFile key = new OpenSSHKeyFile();
- key.init(loginCredentials.getPrivateKey(), null);
+ key.init(loginCredentials.getOptionalPrivateKey().get(), null);
ssh.authPublickey(loginCredentials.getUser(), key);
} else if (agentConnector.isPresent()) {
AgentProxy proxy = new AgentProxy(agentConnector.get());
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/drivers/sshj/src/main/java/org/jclouds/sshj/SshjSshClient.java
----------------------------------------------------------------------
diff --git a/drivers/sshj/src/main/java/org/jclouds/sshj/SshjSshClient.java b/drivers/sshj/src/main/java/org/jclouds/sshj/SshjSshClient.java
index 512018e..b1f60b5 100644
--- a/drivers/sshj/src/main/java/org/jclouds/sshj/SshjSshClient.java
+++ b/drivers/sshj/src/main/java/org/jclouds/sshj/SshjSshClient.java
@@ -145,16 +145,16 @@ public class SshjSshClient implements SshClient {
this.user = checkNotNull(loginCredentials, "loginCredentials").getUser();
this.host = checkNotNull(socket, "socket").getHostText();
checkArgument(socket.getPort() > 0, "ssh port must be greater then zero" + socket.getPort());
- checkArgument(loginCredentials.getPassword() != null || loginCredentials.hasUnencryptedPrivateKey() || agentConnector.isPresent(),
+ checkArgument(loginCredentials.getOptionalPassword().isPresent() || loginCredentials.hasUnencryptedPrivateKey() || agentConnector.isPresent(),
"you must specify a password, a key or an SSH agent needs to be available");
this.backoffLimitedRetryHandler = checkNotNull(backoffLimitedRetryHandler, "backoffLimitedRetryHandler");
- if (loginCredentials.getPassword() != null) {
+ if (loginCredentials.getOptionalPassword().isPresent()) {
this.toString = String.format("%s:pw[%s]@%s:%d", loginCredentials.getUser(),
- base16().lowerCase().encode(md5().hashString(loginCredentials.getPassword(), UTF_8).asBytes()), host,
+ base16().lowerCase().encode(md5().hashString(loginCredentials.getOptionalPassword().get(), UTF_8).asBytes()), host,
socket.getPort());
} else if (loginCredentials.hasUnencryptedPrivateKey()) {
- String fingerPrint = fingerprintPrivateKey(loginCredentials.getPrivateKey());
- String sha1 = sha1PrivateKey(loginCredentials.getPrivateKey());
+ String fingerPrint = fingerprintPrivateKey(loginCredentials.getOptionalPrivateKey().get());
+ String sha1 = sha1PrivateKey(loginCredentials.getOptionalPrivateKey().get());
this.toString = String.format("%s:rsa[fingerprint(%s),sha1(%s)]@%s:%d", loginCredentials.getUser(),
fingerPrint, sha1, host, socket.getPort());
} else {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/strategy/AWSEC2ImageParserTest.java
----------------------------------------------------------------------
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 59340bb..bee4449 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
@@ -170,11 +170,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},\"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\"}}");
+ "{\"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,\"password\":{},\"privateKey\":{},\"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},\"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\"}}");
+ "{\"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,\"password\":{},\"privateKey\":{},\"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() {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/1fb28680/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
index 2c44c33..feeaa66 100644
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
+++ b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
@@ -463,7 +463,7 @@ public class CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptionsT
// we specify we have a public key we want to use for authentication
expect(options.getPublicKey()).andReturn("ssh-rsa").times(2);
- expect(options.getLoginPrivateKey()).andReturn(CREDENTIALS.getPrivateKey()).atLeastOnce();
+ expect(options.getLoginPrivateKey()).andReturn(CREDENTIALS.getOptionalPrivateKey().get()).atLeastOnce();
// Here, we import the keypair and place it into the cache
expect(strategy.importExistingKeyPair.apply(new RegionNameAndPublicKeyMaterial(region, group, "ssh-rsa")))