You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whirr.apache.org by to...@apache.org on 2011/01/04 19:28:37 UTC
svn commit: r1055133 - in /incubator/whirr/trunk: ./
cli/src/test/java/org/apache/whirr/cli/command/
core/src/main/java/org/apache/whirr/service/
core/src/main/java/org/apache/whirr/ssh/
core/src/test/java/org/apache/whirr/service/ services/cassandra/s...
Author: tomwhite
Date: Tue Jan 4 18:28:37 2011
New Revision: 1055133
URL: http://svn.apache.org/viewvc?rev=1055133&view=rev
Log:
WHIRR-164. Tests fail if there is no ~/.ssh/id_rsa keypair. Contributed by Andrei Savu.
Modified:
incubator/whirr/trunk/CHANGES.txt
incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/AbstractClusterSpecCommandTest.java
incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/DestroyClusterCommandTest.java
incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/LaunchClusterCommandTest.java
incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/ListClusterCommandTest.java
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ClusterSpec.java
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/ssh/KeyPair.java
incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ClusterSpecTest.java
incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/TemplateBuilderStrategyTest.java
incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/integration/CassandraServiceTest.java
incubator/whirr/trunk/services/cassandra/src/test/resources/whirr-cassandra-test.properties
incubator/whirr/trunk/services/cdh/src/test/java/org/apache/whirr/service/cdh/integration/CdhHadoopServiceTest.java
incubator/whirr/trunk/services/cdh/src/test/resources/whirr-hadoop-test.properties
incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java
incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/integration/HadoopServiceController.java
incubator/whirr/trunk/services/hadoop/src/test/resources/whirr-hadoop-test.properties
incubator/whirr/trunk/services/hbase/src/test/java/org/apache/whirr/service/hbase/integration/HBaseServiceController.java
incubator/whirr/trunk/services/hbase/src/test/resources/whirr-hbase-test.properties
incubator/whirr/trunk/services/zookeeper/src/test/java/org/apache/whirr/service/zookeeper/integration/ZooKeeperServiceTest.java
incubator/whirr/trunk/services/zookeeper/src/test/resources/whirr-zookeeper-test.properties
Modified: incubator/whirr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/CHANGES.txt?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/CHANGES.txt (original)
+++ incubator/whirr/trunk/CHANGES.txt Tue Jan 4 18:28:37 2011
@@ -96,6 +96,9 @@ Trunk (unreleased changes)
WHIRR-185. [ZooKeeper] Fix selection of instances for getHosts() call.
(Lars George via tomwhite)
+ WHIRR-164. Tests fail if there is no ~/.ssh/id_rsa keypair.
+ (Andrei Savu via tomwhite)
+
Release 0.2.0 - 2010-11-04
NEW FEATURES
Modified: incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/AbstractClusterSpecCommandTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/AbstractClusterSpecCommandTest.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/AbstractClusterSpecCommandTest.java (original)
+++ incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/AbstractClusterSpecCommandTest.java Tue Jan 4 18:28:37 2011
@@ -21,14 +21,17 @@ package org.apache.whirr.cli.command;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
+import java.io.File;
import java.io.InputStream;
import java.io.PrintStream;
import java.util.List;
+import java.util.Map;
import joptsimple.OptionSet;
import org.apache.whirr.service.ClusterSpec;
import org.apache.whirr.service.ServiceFactory;
+import org.apache.whirr.ssh.KeyPair;
import org.junit.Test;
public class AbstractClusterSpecCommandTest {
@@ -44,9 +47,12 @@ public class AbstractClusterSpecCommandT
}
};
+ Map<String, File> keys = KeyPair.generateTemporaryFiles();
OptionSet optionSet = clusterSpecCommand.parser.parse(
"--service-name", "overridden-test-service",
- "--config", "whirr-override-test.properties");
+ "--config", "whirr-override-test.properties",
+ "--private-key-file", keys.get("private").getAbsolutePath()
+ );
ClusterSpec clusterSpec = clusterSpecCommand.getClusterSpec(optionSet);
assertThat(clusterSpec.getServiceName(), is("overridden-test-service"));
assertThat(clusterSpec.getClusterName(), is("test-cluster"));
@@ -66,9 +72,12 @@ public class AbstractClusterSpecCommandT
}
};
+ Map<String, File> keys = KeyPair.generateTemporaryFiles();
OptionSet optionSet = clusterSpecCommand.parser.parse(
"--service-name", "foo",
- "--config", "whirr-override-test.properties");
+ "--config", "whirr-override-test.properties",
+ "--private-key-file", keys.get("private").getAbsolutePath()
+ );
ClusterSpec clusterSpec = clusterSpecCommand.getClusterSpec(optionSet);
// this should fail - non-existent service
clusterSpecCommand.createService("bar");
Modified: incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/DestroyClusterCommandTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/DestroyClusterCommandTest.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/DestroyClusterCommandTest.java (original)
+++ incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/DestroyClusterCommandTest.java Tue Jan 4 18:28:37 2011
@@ -33,6 +33,8 @@ import java.io.PrintStream;
import java.util.Collections;
import java.util.Map;
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.whirr.service.ClusterSpec;
import org.apache.whirr.service.Service;
import org.apache.whirr.service.ServiceFactory;
@@ -85,12 +87,15 @@ public class DestroyClusterCommandTest {
"--provider", "rackspace",
"--identity", "myusername", "--credential", "mypassword",
"--private-key-file", keys.get("private").getAbsolutePath(),
- "--public-key-file", keys.get("public").getAbsolutePath()
+ "--version", "version-string"
));
assertThat(rc, is(0));
- ClusterSpec expectedClusterSpec = new ClusterSpec();
+ Configuration conf = new PropertiesConfiguration();
+ conf.addProperty("whirr.version", "version-string");
+
+ ClusterSpec expectedClusterSpec = ClusterSpec.withNoDefaults(conf);
expectedClusterSpec.setServiceName("test-service");
expectedClusterSpec.setProvider("rackspace");
expectedClusterSpec.setIdentity("myusername");
Modified: incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/LaunchClusterCommandTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/LaunchClusterCommandTest.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/LaunchClusterCommandTest.java (original)
+++ incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/LaunchClusterCommandTest.java Tue Jan 4 18:28:37 2011
@@ -35,6 +35,8 @@ import java.io.PrintStream;
import java.util.Collections;
import java.util.Map;
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.whirr.service.Cluster;
import org.apache.whirr.service.ClusterSpec;
import org.apache.whirr.service.Service;
@@ -91,12 +93,15 @@ public class LaunchClusterCommandTest {
"--provider", "rackspace",
"--identity", "myusername", "--credential", "mypassword",
"--private-key-file", keys.get("private").getAbsolutePath(),
- "--public-key-file", keys.get("public").getAbsolutePath()
+ "--version", "version-string"
));
assertThat(rc, is(0));
- ClusterSpec expectedClusterSpec = new ClusterSpec();
+ Configuration conf = new PropertiesConfiguration();
+ conf.addProperty("whirr.version", "version-string");
+
+ ClusterSpec expectedClusterSpec = ClusterSpec.withNoDefaults(conf);
expectedClusterSpec.setInstanceTemplates(Lists.newArrayList(
new ClusterSpec.InstanceTemplate(1, Sets.newHashSet("role1", "role2")),
new ClusterSpec.InstanceTemplate(2, Sets.newHashSet("role3"))
Modified: incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/ListClusterCommandTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/ListClusterCommandTest.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/ListClusterCommandTest.java (original)
+++ incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/ListClusterCommandTest.java Tue Jan 4 18:28:37 2011
@@ -29,13 +29,16 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import java.io.ByteArrayOutputStream;
+import java.io.File;
import java.io.PrintStream;
import java.util.Collections;
+import java.util.Map;
import java.util.Set;
import org.apache.whirr.service.ClusterSpec;
import org.apache.whirr.service.Service;
import org.apache.whirr.service.ServiceFactory;
+import org.apache.whirr.ssh.KeyPair;
import org.hamcrest.Matcher;
import org.jclouds.compute.domain.NodeMetadata;
import org.jclouds.compute.domain.NodeState;
@@ -95,13 +98,16 @@ public class ListClusterCommandTest {
Lists.newArrayList("10.0.0.2"), null);
when(service.getNodes((ClusterSpec) any())).thenReturn(
(Set) Sets.newLinkedHashSet(Lists.newArrayList(node1, node2)));
-
+
ListClusterCommand command = new ListClusterCommand(factory);
-
+
+ Map<String, File> keys = KeyPair.generateTemporaryFiles();
int rc = command.run(null, out, null, Lists.newArrayList(
"--service-name", "test-service",
"--cluster-name", "test-cluster",
- "--identity", "myusername"));
+ "--identity", "myusername",
+ "--private-key-file", keys.get("private").getAbsolutePath())
+ );
assertThat(rc, is(0));
Modified: incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ClusterSpec.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ClusterSpec.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ClusterSpec.java (original)
+++ incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ClusterSpec.java Tue Jan 4 18:28:37 2011
@@ -25,6 +25,7 @@ import static org.jclouds.io.Payloads.ne
import static org.jclouds.util.Utils.toStringAndClose;
import static org.apache.whirr.ssh.KeyPair.sameKeyPair;
+import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Objects;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
@@ -36,6 +37,7 @@ import java.io.UnsupportedEncodingExcept
import java.net.URLEncoder;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import com.jcraft.jsch.JSch;
@@ -201,7 +203,44 @@ public class ClusterSpec {
}
private static final String DEFAULT_PROPERTIES = "whirr-default.properties";
-
+
+ /**
+ * Create an instance that uses a temporary RSA key pair.
+ */
+ @VisibleForTesting
+ public static ClusterSpec withTemporaryKeys()
+ throws ConfigurationException, JSchException, IOException {
+ return withTemporaryKeys(new PropertiesConfiguration());
+ }
+ @VisibleForTesting
+ public static ClusterSpec withTemporaryKeys(Configuration conf)
+ throws ConfigurationException, JSchException, IOException {
+
+ if (!conf.containsKey(Property.PRIVATE_KEY_FILE.getConfigName())) {
+ Map<String, File> keys = org.apache.whirr.ssh.KeyPair.generateTemporaryFiles();
+
+ conf.addProperty(Property.PRIVATE_KEY_FILE.getConfigName(),
+ keys.get("private").getAbsolutePath());
+ conf.addProperty(Property.PUBLIC_KEY_FILE.getConfigName(),
+ keys.get("public").getAbsolutePath());
+ }
+
+ return new ClusterSpec(conf);
+ }
+
+ /**
+ * Create new empty instance for testing.
+ */
+ @VisibleForTesting
+ public static ClusterSpec withNoDefaults() throws ConfigurationException {
+ return withNoDefaults(new PropertiesConfiguration());
+ }
+ @VisibleForTesting
+ public static ClusterSpec withNoDefaults(Configuration conf)
+ throws ConfigurationException {
+ return new ClusterSpec(conf, false);
+ }
+
private List<InstanceTemplate> instanceTemplates;
private String serviceName;
private String provider;
@@ -222,17 +261,23 @@ public class ClusterSpec {
public ClusterSpec() throws ConfigurationException {
this(new PropertiesConfiguration());
}
-
+
+ public ClusterSpec(Configuration config) throws ConfigurationException {
+ this(config, true); // load default configs
+ }
+
/**
*
* @throws ConfigurationException if something is wrong
*/
- public ClusterSpec(Configuration config)
+ public ClusterSpec(Configuration config, boolean loadDefaults)
throws ConfigurationException {
CompositeConfiguration c = new CompositeConfiguration();
c.addConfiguration(config);
- c.addConfiguration(new PropertiesConfiguration(DEFAULT_PROPERTIES));
+ if (loadDefaults) {
+ c.addConfiguration(new PropertiesConfiguration(DEFAULT_PROPERTIES));
+ }
setServiceName(c.getString(Property.SERVICE_NAME.getConfigName()));
setInstanceTemplates(InstanceTemplate.parse(
@@ -249,19 +294,19 @@ public class ClusterSpec {
String publicKeyPath = c.getString(Property.PUBLIC_KEY_FILE.getConfigName());
publicKeyPath = (publicKeyPath == null && privateKeyPath != null) ?
privateKeyPath + ".pub" : publicKeyPath;
+ if(privateKeyPath != null && publicKeyPath != null) {
+ KeyPair pair = KeyPair.load(new JSch(), privateKeyPath, publicKeyPath);
+ if (pair.isEncrypted()) {
+ throw new ConfigurationException("Key pair is encrypted");
+ }
+ if (!sameKeyPair(new File(privateKeyPath), new File(publicKeyPath))) {
+ throw new ConfigurationException("Both keys should belong " +
+ "to the same key pair");
+ }
- KeyPair pair = KeyPair.load(new JSch(), privateKeyPath, publicKeyPath);
- if (pair.isEncrypted()) {
- throw new ConfigurationException("Key pair is encrypted");
- }
- if (!sameKeyPair(new File(privateKeyPath), new File(publicKeyPath))) {
- throw new ConfigurationException("Both keys should belong " +
- "to the same key pair");
+ setPrivateKey(new File(privateKeyPath));
+ setPublicKey(new File(publicKeyPath));
}
-
- setPrivateKey(new File(privateKeyPath));
- setPublicKey(new File(publicKeyPath));
-
} catch (JSchException e) {
throw new ConfigurationException("Invalid key pair", e);
@@ -279,7 +324,7 @@ public class ClusterSpec {
setVersion(c.getString(Property.VERSION.getConfigName()));
String runUrlBase = c.getString(Property.RUN_URL_BASE.getConfigName());
- if (runUrlBase == null) {
+ if (runUrlBase == null && getVersion() != null) {
try {
runUrlBase = String.format("http://whirr.s3.amazonaws.com/%s/",
URLEncoder.encode(getVersion(), "UTF-8"));
Modified: incubator/whirr/trunk/core/src/main/java/org/apache/whirr/ssh/KeyPair.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/java/org/apache/whirr/ssh/KeyPair.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/main/java/org/apache/whirr/ssh/KeyPair.java (original)
+++ incubator/whirr/trunk/core/src/main/java/org/apache/whirr/ssh/KeyPair.java Tue Jan 4 18:28:37 2011
@@ -90,14 +90,29 @@ public class KeyPair {
File privateKeyFile = File.createTempFile("private", "key");
privateKeyFile.deleteOnExit();
Files.write(keys.get("private").getBytes(), privateKeyFile);
+ setPermissionsTo600(privateKeyFile);
File publicKeyFile = new File(privateKeyFile.getAbsolutePath() + ".pub");
publicKeyFile.deleteOnExit();
Files.write(keys.get("public").getBytes(), publicKeyFile);
+ setPermissionsTo600(publicKeyFile);
return ImmutableMap.<String, File> of("public", publicKeyFile,
"private", privateKeyFile);
}
+
+ /**
+ * Set file permissions to 600 (unix)
+ */
+ public static void setPermissionsTo600(File f) {
+ f.setReadable(false, false);
+ f.setReadable(true, true);
+
+ f.setWritable(false, false);
+ f.setWritable(true, true);
+
+ f.setExecutable(false);
+ }
public static boolean sameKeyPair(File privateKeyFile, File publicKeyFile) throws IOException {
try {
Modified: incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ClusterSpecTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ClusterSpecTest.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ClusterSpecTest.java (original)
+++ incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ClusterSpecTest.java Tue Jan 4 18:28:37 2011
@@ -46,40 +46,42 @@ import org.junit.Test;
public class ClusterSpecTest {
@Test
- public void testDefaultsAreSet() throws ConfigurationException {
- ClusterSpec spec = new ClusterSpec();
+ public void testDefaultsAreSet()
+ throws ConfigurationException, JSchException, IOException {
+ ClusterSpec spec = ClusterSpec.withTemporaryKeys();
assertThat(spec.getRunUrlBase(),
startsWith("http://whirr.s3.amazonaws.com/"));
}
@Test
- public void testDefaultsCanBeOverridden() throws ConfigurationException {
+ public void testDefaultsCanBeOverridden()
+ throws ConfigurationException, JSchException, IOException {
Configuration conf = new PropertiesConfiguration();
conf.setProperty(ClusterSpec.Property.RUN_URL_BASE.getConfigName(),
"http://example.org");
- ClusterSpec spec = new ClusterSpec(conf);
+ ClusterSpec spec = ClusterSpec.withNoDefaults(conf);
assertThat(spec.getRunUrlBase(), is("http://example.org"));
}
@Test
public void testVersionInRunUrlbaseIsUrlEncoded()
- throws ConfigurationException {
+ throws ConfigurationException, JSchException, IOException {
Configuration conf = new PropertiesConfiguration();
conf.setProperty(ClusterSpec.Property.VERSION.getConfigName(), "0.1.0+1");
- ClusterSpec spec = new ClusterSpec(conf);
+ ClusterSpec spec = ClusterSpec.withNoDefaults(conf);
assertThat(spec.getRunUrlBase(),
is("http://whirr.s3.amazonaws.com/0.1.0%2B1/"));
}
@Test
public void testGetConfigurationForKeysWithPrefix()
- throws ConfigurationException {
+ throws ConfigurationException, JSchException, IOException {
Configuration conf = new PropertiesConfiguration();
conf.setProperty("a.b", 1);
conf.setProperty("b.a", 2);
conf.setProperty("a.c", 3);
- ClusterSpec spec = new ClusterSpec(conf);
+ ClusterSpec spec = ClusterSpec.withNoDefaults(conf);
Configuration prefixConf = spec.getConfigurationForKeysWithPrefix("a");
List<String> prefixKeys = Lists.newArrayList();
@@ -114,7 +116,7 @@ public class ClusterSpecTest {
conf.setProperty("whirr.private-key-file", keys.get("private").getAbsolutePath());
// If no public-key-file is specified it should append .pub to the private-key-file
- ClusterSpec spec = new ClusterSpec(conf);
+ ClusterSpec spec = ClusterSpec.withNoDefaults(conf);
Assert.assertEquals(IOUtils.toString(
new FileReader(keys.get("public"))), spec.readPublicKey());
}
@@ -131,7 +133,7 @@ public class ClusterSpecTest {
Configuration conf = new PropertiesConfiguration();
conf.setProperty("whirr.private-key-file", privateKeyFile.getAbsolutePath());
- ClusterSpec spec = new ClusterSpec(conf);
+ ClusterSpec.withNoDefaults(conf);
}
@Test(expected = ConfigurationException.class)
@@ -142,7 +144,7 @@ public class ClusterSpecTest {
Configuration conf = new PropertiesConfiguration();
conf.setProperty("whirr.private-key-file", privateKey.getAbsolutePath());
- ClusterSpec spec = new ClusterSpec(conf);
+ ClusterSpec.withNoDefaults(conf);
}
@Test(expected = ConfigurationException.class)
@@ -150,7 +152,7 @@ public class ClusterSpecTest {
Configuration conf = new PropertiesConfiguration();
conf.setProperty("whirr.private-key-file", "/dummy/path/that/does/not/exists");
- ClusterSpec spec = new ClusterSpec(conf);
+ ClusterSpec.withNoDefaults(conf);
}
@Test(expected = ConfigurationException.class)
@@ -161,7 +163,7 @@ public class ClusterSpecTest {
conf.setProperty("whirr.private-key-file", privateKey.getAbsolutePath());
conf.setProperty("whirr.public-key-file", "/dummy/path/that/does/not/exists");
- ClusterSpec spec = new ClusterSpec(conf);
+ ClusterSpec.withNoDefaults(conf);
}
@Test(expected = ConfigurationException.class)
@@ -176,7 +178,7 @@ public class ClusterSpecTest {
conf.setProperty("whirr.private-key-file", privateKey.getAbsolutePath());
conf.setProperty("whirr.public-key-file", publicKey.getAbsolutePath());
- ClusterSpec spec = new ClusterSpec(conf);
+ ClusterSpec.withNoDefaults(conf);
}
@Test(expected = ConfigurationException.class)
@@ -188,6 +190,6 @@ public class ClusterSpecTest {
conf.setProperty("whirr.private-key-file", first.get("private").getAbsolutePath());
conf.setProperty("whirr.public-key-file", second.get("public").getAbsolutePath());
- ClusterSpec spec = new ClusterSpec(conf);
+ ClusterSpec.withNoDefaults(conf);
}
}
Modified: incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/TemplateBuilderStrategyTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/TemplateBuilderStrategyTest.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/TemplateBuilderStrategyTest.java (original)
+++ incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/TemplateBuilderStrategyTest.java Tue Jan 4 18:28:37 2011
@@ -21,20 +21,23 @@ package org.apache.whirr.service;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
+import com.jcraft.jsch.JSchException;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.whirr.service.jclouds.TemplateBuilderStrategy;
import org.jclouds.compute.domain.TemplateBuilder;
import org.junit.Before;
import org.junit.Test;
+import java.io.IOException;
+
public class TemplateBuilderStrategyTest {
private TemplateBuilderStrategy strategy = new TemplateBuilderStrategy();
private ClusterSpec spec;
@Before
- public void setUp() throws ConfigurationException {
- spec = new ClusterSpec();
+ public void setUp() throws ConfigurationException, JSchException, IOException {
+ spec = ClusterSpec.withTemporaryKeys();
}
@Test
Modified: incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/integration/CassandraServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/integration/CassandraServiceTest.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/integration/CassandraServiceTest.java (original)
+++ incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/integration/CassandraServiceTest.java Tue Jan 4 18:28:37 2011
@@ -58,12 +58,8 @@ public class CassandraServiceTest {
config.addConfiguration(new PropertiesConfiguration(System.getProperty("config")));
}
config.addConfiguration(new PropertiesConfiguration("whirr-cassandra-test.properties"));
- clusterSpec = new ClusterSpec(config);
- if (clusterSpec.getPrivateKey() == null) {
- Map<String, String> pair = KeyPair.generate();
- clusterSpec.setPublicKey(pair.get("public"));
- clusterSpec.setPrivateKey(pair.get("private"));
- }
+ clusterSpec = ClusterSpec.withTemporaryKeys(config);
+
service = new Service();
cluster = service.launchCluster(clusterSpec);
Modified: incubator/whirr/trunk/services/cassandra/src/test/resources/whirr-cassandra-test.properties
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/cassandra/src/test/resources/whirr-cassandra-test.properties?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/services/cassandra/src/test/resources/whirr-cassandra-test.properties (original)
+++ incubator/whirr/trunk/services/cassandra/src/test/resources/whirr-cassandra-test.properties Tue Jan 4 18:28:37 2011
@@ -20,4 +20,3 @@ whirr.instance-templates=2 cassandra
whirr.provider=ec2
whirr.identity=${sys:whirr.test.identity}
whirr.credential=${sys:whirr.test.credential}
-whirr.private-key-file=${sys:user.home}/.ssh/id_rsa
Modified: incubator/whirr/trunk/services/cdh/src/test/java/org/apache/whirr/service/cdh/integration/CdhHadoopServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/cdh/src/test/java/org/apache/whirr/service/cdh/integration/CdhHadoopServiceTest.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/services/cdh/src/test/java/org/apache/whirr/service/cdh/integration/CdhHadoopServiceTest.java (original)
+++ incubator/whirr/trunk/services/cdh/src/test/java/org/apache/whirr/service/cdh/integration/CdhHadoopServiceTest.java Tue Jan 4 18:28:37 2011
@@ -71,12 +71,7 @@ public class CdhHadoopServiceTest {
config.addConfiguration(new PropertiesConfiguration(System.getProperty("config")));
}
config.addConfiguration(new PropertiesConfiguration("whirr-hadoop-test.properties"));
- clusterSpec = new ClusterSpec(config);
- if (clusterSpec.getPrivateKey() == null) {
- Map<String, String> pair = KeyPair.generate();
- clusterSpec.setPublicKey(pair.get("public"));
- clusterSpec.setPrivateKey(pair.get("private"));
- }
+ clusterSpec = ClusterSpec.withTemporaryKeys(config);
service = new Service();
cluster = service.launchCluster(clusterSpec);
Modified: incubator/whirr/trunk/services/cdh/src/test/resources/whirr-hadoop-test.properties
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/cdh/src/test/resources/whirr-hadoop-test.properties?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/services/cdh/src/test/resources/whirr-hadoop-test.properties (original)
+++ incubator/whirr/trunk/services/cdh/src/test/resources/whirr-hadoop-test.properties Tue Jan 4 18:28:37 2011
@@ -20,6 +20,5 @@ whirr.instance-templates=1 jt+nn,1 dn+tt
whirr.provider=ec2
whirr.identity=${sys:whirr.test.identity}
whirr.credential=${sys:whirr.test.credential}
-whirr.private-key-file=${sys:user.home}/.ssh/id_rsa
whirr.hadoop-install-runurl=cloudera/cdh/install
whirr.hadoop-configure-runurl=cloudera/cdh/post-configure
Modified: incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java (original)
+++ incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java Tue Jan 4 18:28:37 2011
@@ -33,6 +33,7 @@ import java.net.InetAddress;
import org.apache.whirr.net.DnsUtil;
import org.apache.whirr.service.Cluster;
import org.apache.whirr.service.ClusterSpec;
+import org.apache.whirr.ssh.KeyPair;
public class HadoopProxy {
@@ -54,6 +55,7 @@ public class HadoopProxy {
identity = File.createTempFile("hadoop", "key");
identity.deleteOnExit();
Files.write(ByteStreams.toByteArray(clusterSpec.getPrivateKey().getInput()), identity);
+ KeyPair.setPermissionsTo600(identity);
}
String user = Iterables.get(cluster.getInstances(), 0).getLoginCredentials().identity;
InetAddress namenode = HadoopCluster.getNamenodePublicAddress(cluster);
Modified: incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/integration/HadoopServiceController.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/integration/HadoopServiceController.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/integration/HadoopServiceController.java (original)
+++ incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/integration/HadoopServiceController.java Tue Jan 4 18:28:37 2011
@@ -77,12 +77,7 @@ public class HadoopServiceController {
config.addConfiguration(new PropertiesConfiguration(System.getProperty("config")));
}
config.addConfiguration(new PropertiesConfiguration("whirr-hadoop-test.properties"));
- clusterSpec = new ClusterSpec(config);
- if (clusterSpec.getPrivateKey() == null) {
- Map<String, String> pair = KeyPair.generate();
- clusterSpec.setPublicKey(pair.get("public"));
- clusterSpec.setPrivateKey(pair.get("private"));
- }
+ clusterSpec = ClusterSpec.withTemporaryKeys(config);
service = new Service();
cluster = service.launchCluster(clusterSpec);
Modified: incubator/whirr/trunk/services/hadoop/src/test/resources/whirr-hadoop-test.properties
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/src/test/resources/whirr-hadoop-test.properties?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/src/test/resources/whirr-hadoop-test.properties (original)
+++ incubator/whirr/trunk/services/hadoop/src/test/resources/whirr-hadoop-test.properties Tue Jan 4 18:28:37 2011
@@ -20,4 +20,3 @@ whirr.instance-templates=1 jt+nn,1 dn+tt
whirr.provider=ec2
whirr.identity=${sys:whirr.test.identity}
whirr.credential=${sys:whirr.test.credential}
-whirr.private-key-file=${sys:user.home}/.ssh/id_rsa
Modified: incubator/whirr/trunk/services/hbase/src/test/java/org/apache/whirr/service/hbase/integration/HBaseServiceController.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hbase/src/test/java/org/apache/whirr/service/hbase/integration/HBaseServiceController.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hbase/src/test/java/org/apache/whirr/service/hbase/integration/HBaseServiceController.java (original)
+++ incubator/whirr/trunk/services/hbase/src/test/java/org/apache/whirr/service/hbase/integration/HBaseServiceController.java Tue Jan 4 18:28:37 2011
@@ -75,12 +75,7 @@ public class HBaseServiceController {
config.addConfiguration(new PropertiesConfiguration(System.getProperty("config")));
}
config.addConfiguration(new PropertiesConfiguration("whirr-hbase-test.properties"));
- clusterSpec = new ClusterSpec(config);
- if (clusterSpec.getPrivateKey() == null) {
- Map<String, String> pair = KeyPair.generate();
- clusterSpec.setPublicKey(pair.get("public"));
- clusterSpec.setPrivateKey(pair.get("private"));
- }
+ clusterSpec = ClusterSpec.withTemporaryKeys(config);
service = new Service();
cluster = service.launchCluster(clusterSpec);
Modified: incubator/whirr/trunk/services/hbase/src/test/resources/whirr-hbase-test.properties
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hbase/src/test/resources/whirr-hbase-test.properties?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hbase/src/test/resources/whirr-hbase-test.properties (original)
+++ incubator/whirr/trunk/services/hbase/src/test/resources/whirr-hbase-test.properties Tue Jan 4 18:28:37 2011
@@ -20,4 +20,3 @@ whirr.instance-templates=1 zk,1 nn+jt+hb
whirr.provider=ec2
whirr.identity=${sys:whirr.test.identity}
whirr.credential=${sys:whirr.test.credential}
-whirr.private-key-file=${sys:user.home}/.ssh/id_rsa
Modified: incubator/whirr/trunk/services/zookeeper/src/test/java/org/apache/whirr/service/zookeeper/integration/ZooKeeperServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/zookeeper/src/test/java/org/apache/whirr/service/zookeeper/integration/ZooKeeperServiceTest.java?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/services/zookeeper/src/test/java/org/apache/whirr/service/zookeeper/integration/ZooKeeperServiceTest.java (original)
+++ incubator/whirr/trunk/services/zookeeper/src/test/java/org/apache/whirr/service/zookeeper/integration/ZooKeeperServiceTest.java Tue Jan 4 18:28:37 2011
@@ -55,13 +55,9 @@ public class ZooKeeperServiceTest {
config.addConfiguration(new PropertiesConfiguration(System.getProperty("config")));
}
config.addConfiguration(new PropertiesConfiguration("whirr-zookeeper-test.properties"));
- clusterSpec = new ClusterSpec(config);
- if (clusterSpec.getPrivateKey() == null) {
- Map<String, String> pair = KeyPair.generate();
- clusterSpec.setPublicKey(pair.get("public"));
- clusterSpec.setPrivateKey(pair.get("private"));
- }
+ clusterSpec = ClusterSpec.withTemporaryKeys(config);
service = new Service();
+
cluster = service.launchCluster(clusterSpec);
hosts = ZooKeeperCluster.getHosts(cluster);
}
Modified: incubator/whirr/trunk/services/zookeeper/src/test/resources/whirr-zookeeper-test.properties
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/zookeeper/src/test/resources/whirr-zookeeper-test.properties?rev=1055133&r1=1055132&r2=1055133&view=diff
==============================================================================
--- incubator/whirr/trunk/services/zookeeper/src/test/resources/whirr-zookeeper-test.properties (original)
+++ incubator/whirr/trunk/services/zookeeper/src/test/resources/whirr-zookeeper-test.properties Tue Jan 4 18:28:37 2011
@@ -20,4 +20,3 @@ whirr.instance-templates=2 zk
whirr.provider=ec2
whirr.identity=${sys:whirr.test.identity}
whirr.credential=${sys:whirr.test.credential}
-whirr.private-key-file=${sys:user.home}/.ssh/id_rsa