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 2010/09/21 23:43:32 UTC
svn commit: r999659 - in /incubator/whirr/trunk: ./
cli/src/main/java/org/apache/whirr/cli/command/ core/
core/src/main/java/org/apache/whirr/service/ core/src/main/resources/
core/src/test/java/org/apache/whirr/service/
services/cassandra/src/main/jav...
Author: tomwhite
Date: Tue Sep 21 21:43:32 2010
New Revision: 999659
URL: http://svn.apache.org/viewvc?rev=999659&view=rev
Log:
WHIRR-90. Scripts should be versioned.
Added:
incubator/whirr/trunk/core/src/main/resources/
incubator/whirr/trunk/core/src/main/resources/whirr-default.properties (with props)
incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ClusterSpecTest.java (with props)
Modified:
incubator/whirr/trunk/CHANGES.txt
incubator/whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/ClusterSpecCommand.java
incubator/whirr/trunk/core/pom.xml
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ClusterSpec.java
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/RunUrlBuilder.java
incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/RunUrlBuilderTest.java
incubator/whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraService.java
incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/integration/CassandraServiceTest.java
incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopService.java
incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/integration/HadoopServiceTest.java
incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperService.java
incubator/whirr/trunk/services/zookeeper/src/test/java/org/apache/whirr/service/zookeeper/integration/ZooKeeperServiceTest.java
incubator/whirr/trunk/src/site/confluence/configuration-guide.confluence
Modified: incubator/whirr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/CHANGES.txt?rev=999659&r1=999658&r2=999659&view=diff
==============================================================================
--- incubator/whirr/trunk/CHANGES.txt (original)
+++ incubator/whirr/trunk/CHANGES.txt Tue Sep 21 21:43:32 2010
@@ -6,6 +6,8 @@ Trunk (unreleased changes)
WHIRR-89. Support maven 3 builds. (Adrian Cole via tomwhite)
+ WHIRR-90. Scripts should be versioned. (tomwhite)
+
BUG FIXES
WHIRR-93. Fail on checkstyle violation. (tomwhite)
Modified: incubator/whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/ClusterSpecCommand.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/ClusterSpecCommand.java?rev=999659&r1=999658&r2=999659&view=diff
==============================================================================
--- incubator/whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/ClusterSpecCommand.java (original)
+++ incubator/whirr/trunk/cli/src/main/java/org/apache/whirr/cli/command/ClusterSpecCommand.java Tue Sep 21 21:43:32 2010
@@ -95,7 +95,7 @@ public abstract class ClusterSpecCommand
required.getSimpleName()));
}
}
- return ClusterSpec.fromConfiguration(config);
+ return new ClusterSpec(config);
}
}
Modified: incubator/whirr/trunk/core/pom.xml
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/pom.xml?rev=999659&r1=999658&r2=999659&view=diff
==============================================================================
--- incubator/whirr/trunk/core/pom.xml (original)
+++ incubator/whirr/trunk/core/pom.xml Tue Sep 21 21:43:32 2010
@@ -82,4 +82,12 @@
<artifactId>log4j</artifactId>
</dependency>
</dependencies>
+ <build>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </build>
</project>
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=999659&r1=999658&r2=999659&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 Sep 21 21:43:32 2010
@@ -33,6 +33,7 @@ import java.io.IOException;
import java.util.List;
import java.util.Set;
+import org.apache.commons.configuration.CompositeConfiguration;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
@@ -53,7 +54,8 @@ public class ClusterSpec {
CLUSTER_NAME(String.class, false),
PUBLIC_KEY_FILE(String.class, false),
PRIVATE_KEY_FILE(String.class, false),
- CLIENT_CIDRS(String.class, true);
+ CLIENT_CIDRS(String.class, true),
+ RUN_URL_BASE(String.class, false);
private Class<?> type;
private boolean multipleArguments;
@@ -134,8 +136,10 @@ public class ClusterSpec {
return templates;
}
}
+
+ private static final String DEFAULT_PROPERTIES = "whirr-default.properties";
- private List<InstanceTemplate> instanceTemplates = Lists.newArrayList();
+ private List<InstanceTemplate> instanceTemplates;
private String serviceName;
private String provider;
private String identity;
@@ -143,41 +147,48 @@ public class ClusterSpec {
private String clusterName;
private Payload privateKey;
private Payload publicKey;
- private List<String> clientCidrs = Lists.newArrayList();
- private Configuration config = new PropertiesConfiguration();
+ private List<String> clientCidrs;
+ private String runUrlBase;
+
+ private Configuration config;
+
+ public ClusterSpec() throws ConfigurationException {
+ this(new PropertiesConfiguration());
+ }
/**
*
* @throws ConfigurationException if the public or private key cannot be read.
*/
- public static ClusterSpec fromConfiguration(Configuration config)
- throws ConfigurationException {
- ClusterSpec spec = new ClusterSpec();
- spec.setServiceName(config.getString(Property.SERVICE_NAME.getConfigName()));
- spec.setInstanceTemplates(InstanceTemplate.parse(
- config.getStringArray(Property.INSTANCE_TEMPLATES.getConfigName())));
- spec.setProvider(config.getString(Property.PROVIDER.getConfigName()));
- spec.setIdentity(checkNotNull(
- config.getString(Property.IDENTITY.getConfigName()), Property.IDENTITY));
- spec.setCredential(config.getString(Property.CREDENTIAL.getConfigName()));
- spec.setClusterName(config.getString(Property.CLUSTER_NAME.getConfigName()));
+ public ClusterSpec(Configuration config)
+ throws ConfigurationException {
+ CompositeConfiguration c = new CompositeConfiguration();
+ c.addConfiguration(config);
+ c.addConfiguration(new PropertiesConfiguration(DEFAULT_PROPERTIES));
+ setServiceName(c.getString(Property.SERVICE_NAME.getConfigName()));
+ setInstanceTemplates(InstanceTemplate.parse(
+ c.getStringArray(Property.INSTANCE_TEMPLATES.getConfigName())));
+ setProvider(c.getString(Property.PROVIDER.getConfigName()));
+ setIdentity(c.getString(Property.IDENTITY.getConfigName()));
+ setCredential(c.getString(Property.CREDENTIAL.getConfigName()));
+ setClusterName(c.getString(Property.CLUSTER_NAME.getConfigName()));
try {
- String privateKeyPath = config.getString(
+ String privateKeyPath = c.getString(
Property.PRIVATE_KEY_FILE.getConfigName());
if (privateKeyPath != null)
- spec.setPrivateKey(new File(privateKeyPath));
- String publicKeyPath = config.getString(Property.PUBLIC_KEY_FILE.
+ setPrivateKey(new File(privateKeyPath));
+ String publicKeyPath = c.getString(Property.PUBLIC_KEY_FILE.
getConfigName());
publicKeyPath = publicKeyPath == null && privateKeyPath != null ?
privateKeyPath + ".pub" : publicKeyPath;
if (publicKeyPath != null)
- spec.setPublicKey(new File(publicKeyPath));
+ setPublicKey(new File(publicKeyPath));
} catch (IOException e) {
throw new ConfigurationException("error reading key from file", e);
}
- spec.setClientCidrs(config.getList(Property.CLIENT_CIDRS.getConfigName()));
- spec.config = config;
- return spec;
+ setClientCidrs(c.getList(Property.CLIENT_CIDRS.getConfigName()));
+ setRunUrlBase(c.getString(Property.RUN_URL_BASE.getConfigName()));
+ this.config = c;
}
public List<InstanceTemplate> getInstanceTemplates() {
@@ -236,6 +247,10 @@ public class ClusterSpec {
return clientCidrs;
}
+ public String getRunUrlBase() {
+ return runUrlBase;
+ }
+
public void setInstanceTemplates(List<InstanceTemplate> instanceTemplates) {
this.instanceTemplates = instanceTemplates;
}
@@ -310,6 +325,10 @@ public class ClusterSpec {
this.clientCidrs = clientCidrs;
}
+ public void setRunUrlBase(String runUrlBase) {
+ this.runUrlBase = runUrlBase;
+ }
+
//
public Configuration getConfiguration() {
@@ -325,7 +344,9 @@ public class ClusterSpec {
&& Objects.equal(identity, that.identity)
&& Objects.equal(credential, that.credential)
&& Objects.equal(clusterName, that.clusterName)
- && Objects.equal(clientCidrs, that.clientCidrs);
+ && Objects.equal(clientCidrs, that.clientCidrs)
+ && Objects.equal(runUrlBase, that.runUrlBase)
+ ;
}
return false;
}
@@ -333,7 +354,7 @@ public class ClusterSpec {
public int hashCode() {
return Objects.hashCode(instanceTemplates, serviceName,
provider, identity, credential, clusterName, publicKey,
- privateKey, clientCidrs);
+ privateKey, clientCidrs, runUrlBase);
}
public String toString() {
@@ -347,6 +368,7 @@ public class ClusterSpec {
.add("publicKey", publicKey)
.add("privateKey", privateKey)
.add("clientCidrs", clientCidrs)
+ .add("runUrlBase", runUrlBase)
.toString();
}
Modified: incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/RunUrlBuilder.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/RunUrlBuilder.java?rev=999659&r1=999658&r2=999659&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/RunUrlBuilder.java (original)
+++ incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/RunUrlBuilder.java Tue Sep 21 21:43:32 2010
@@ -18,35 +18,35 @@
package org.apache.whirr.service;
+import static org.jclouds.scriptbuilder.domain.Statements.exec;
+
import java.net.MalformedURLException;
import java.net.URL;
-import static org.jclouds.scriptbuilder.domain.Statements.exec;
-
import org.jclouds.scriptbuilder.ScriptBuilder;
+import org.jclouds.scriptbuilder.domain.OsFamily;
/**
* A convenience class for building scripts to run on nodes.
*/
public class RunUrlBuilder {
- // Need to be able to specify base URL
- // Perhaps make these scripts parameterizable?
- // e.g. just java/install then base url is .../openjdk or .../sun or
- // .../apache or .../cloudera
- public static byte[] runUrls(String... urls) throws MalformedURLException {
+ /**
+ *
+ * @param runUrlBase The base URL to construct URLs from.
+ * @param urls The (possibly relative) URLs to build the runurls from.
+ * @return
+ * @throws MalformedURLException
+ */
+ public static byte[] runUrls(String runUrlBase, String... urls) throws MalformedURLException {
ScriptBuilder scriptBuilder = new ScriptBuilder().addStatement(
exec("wget -qO/usr/bin/runurl run.alestic.com/runurl")).addStatement(
exec("chmod 755 /usr/bin/runurl"));
-
- // Note that the runurl scripts should be checked in to whirr/scripts/
- String runUrlBase = System.getProperty("whirr.runurl.base", "http://whirr.s3.amazonaws.com/");
for (String url : urls) {
- scriptBuilder.addStatement(exec("runurl " + new URL(new URL(runUrlBase), url)));
+ String runUrl = new URL(new URL(runUrlBase), url).toExternalForm();
+ scriptBuilder.addStatement(exec("runurl " + runUrl));
}
-
- return scriptBuilder.build(org.jclouds.scriptbuilder.domain.OsFamily.UNIX)
- .getBytes();
+ return scriptBuilder.build(OsFamily.UNIX).getBytes();
}
}
Added: incubator/whirr/trunk/core/src/main/resources/whirr-default.properties
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/resources/whirr-default.properties?rev=999659&view=auto
==============================================================================
--- incubator/whirr/trunk/core/src/main/resources/whirr-default.properties (added)
+++ incubator/whirr/trunk/core/src/main/resources/whirr-default.properties Tue Sep 21 21:43:32 2010
@@ -0,0 +1,3 @@
+whirr.private-key-file=${sys:user.home}/.ssh/id_rsa
+whirr.public-key-file=${sys:user.home}/.ssh/id_rsa.pub
+whirr.run-url-base=http://whirr.s3.amazonaws.com/${version}/
\ No newline at end of file
Propchange: incubator/whirr/trunk/core/src/main/resources/whirr-default.properties
------------------------------------------------------------------------------
svn:eol-style = native
Added: 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=999659&view=auto
==============================================================================
--- incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ClusterSpecTest.java (added)
+++ incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ClusterSpecTest.java Tue Sep 21 21:43:32 2010
@@ -0,0 +1,30 @@
+package org.apache.whirr.service;
+
+import static org.hamcrest.Matchers.startsWith;
+import static org.junit.Assert.assertThat;
+
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.PropertiesConfiguration;
+import org.junit.Test;
+
+public class ClusterSpecTest {
+
+ @Test
+ public void testDefaultsAreSet() throws ConfigurationException {
+ ClusterSpec spec = new ClusterSpec();
+ assertThat(spec.getRunUrlBase(),
+ startsWith("http://whirr.s3.amazonaws.com/"));
+ }
+
+ @Test
+ public void testDefaultsCanBeOverridden() throws ConfigurationException {
+ Configuration conf = new PropertiesConfiguration();
+ conf.setProperty(ClusterSpec.Property.RUN_URL_BASE.getConfigName(),
+ "http://example.org");
+ ClusterSpec spec = new ClusterSpec(conf);
+ assertThat(spec.getRunUrlBase(),
+ startsWith("http://example.org"));
+ }
+
+}
Propchange: incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ClusterSpecTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/RunUrlBuilderTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/RunUrlBuilderTest.java?rev=999659&r1=999658&r2=999659&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/RunUrlBuilderTest.java (original)
+++ incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/RunUrlBuilderTest.java Tue Sep 21 21:43:32 2010
@@ -28,53 +28,33 @@ import org.junit.Test;
public class RunUrlBuilderTest {
- private static final String WHIRR_RUNURL_BASE = "whirr.runurl.base";
-
@Test
public void testOnePath() throws MalformedURLException {
- assertThat(runUrls("/a/b"),
- containsString("runurl http://whirr.s3.amazonaws.com/a/b"));
+ assertThat(runUrls("http://example.org/", "a/b"),
+ containsString("runurl http://example.org/a/b"));
}
- @SuppressWarnings("unchecked")
@Test
- public void testTwoPaths() throws MalformedURLException {
- assertThat(runUrls("/a/b", "/c/d"), allOf(
- containsString("runurl http://whirr.s3.amazonaws.com/a/b"),
- containsString("runurl http://whirr.s3.amazonaws.com/c/d")));
- }
-
- @Test
- public void testAbsolutePath() throws MalformedURLException {
- assertThat(runUrls("http://example.org/a/b"),
+ public void testOnePathNoSlash() throws MalformedURLException {
+ assertThat(runUrls("http://example.org", "a/b"),
containsString("runurl http://example.org/a/b"));
}
+ @SuppressWarnings("unchecked")
@Test
- public void testSystemOverrideOfRunUrlBaseNoSlash() throws MalformedURLException {
- String prev = System.setProperty(WHIRR_RUNURL_BASE, "http://example.org");
- assertThat(runUrls("/a/b"),
- containsString("runurl http://example.org/a/b"));
- if (prev == null) {
- System.clearProperty(WHIRR_RUNURL_BASE);
- } else {
- System.setProperty(WHIRR_RUNURL_BASE, prev);
- }
+ public void testTwoPaths() throws MalformedURLException {
+ assertThat(runUrls("http://example.org/", "a/b", "c/d"), allOf(
+ containsString("runurl http://example.org/a/b"),
+ containsString("runurl http://example.org/c/d")));
}
-
+
@Test
- public void testSystemOverrideOfRunUrlBaseWithSlash() throws MalformedURLException {
- String prev = System.setProperty(WHIRR_RUNURL_BASE, "http://example.org/");
- assertThat(runUrls("/a/b"),
- containsString("runurl http://example.org/a/b"));
- if (prev == null) {
- System.clearProperty(WHIRR_RUNURL_BASE);
- } else {
- System.setProperty(WHIRR_RUNURL_BASE, prev);
- }
+ public void testAbsolutePath() throws MalformedURLException {
+ assertThat(runUrls("http://example.org/", "http://example2.org/a/b"),
+ containsString("runurl http://example2.org/a/b"));
}
-
- private String runUrls(String... urls) throws MalformedURLException {
- return new String(RunUrlBuilder.runUrls(urls));
+
+ private String runUrls(String runUrlBase, String... urls) throws MalformedURLException {
+ return new String(RunUrlBuilder.runUrls(runUrlBase, urls));
}
}
Modified: incubator/whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraService.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraService.java?rev=999659&r1=999658&r2=999659&view=diff
==============================================================================
--- incubator/whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraService.java (original)
+++ incubator/whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraService.java Tue Sep 21 21:43:32 2010
@@ -73,7 +73,8 @@ public class CassandraService extends Se
ComputeServiceContextBuilder.build(clusterSpec);
ComputeService computeService = computeServiceContext.getComputeService();
- byte[] bootScript = RunUrlBuilder.runUrls("sun/java/install",
+ byte[] bootScript = RunUrlBuilder.runUrls(clusterSpec.getRunUrlBase(),
+ "sun/java/install",
"apache/cassandra/install");
TemplateBuilder templateBuilder = computeService.templateBuilder()
@@ -110,7 +111,8 @@ public class CassandraService extends Se
// Pass list of all servers in cluster to configure script.
String servers = Joiner.on(' ').join(getPrivateIps(seeds));
byte[] configureScript = RunUrlBuilder
- .runUrls("apache/cassandra/post-configure " + servers);
+ .runUrls(clusterSpec.getRunUrlBase(),
+ "apache/cassandra/post-configure " + servers);
try {
Map<? extends NodeMetadata, ExecResponse> responses = computeService
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=999659&r1=999658&r2=999659&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 Sep 21 21:43:32 2010
@@ -60,7 +60,7 @@ public class CassandraServiceTest {
config.addConfiguration(new PropertiesConfiguration(System.getProperty("config")));
}
config.addConfiguration(new PropertiesConfiguration("whirr-cassandra-test.properties"));
- clusterSpec = ClusterSpec.fromConfiguration(config);
+ clusterSpec = new ClusterSpec(config);
Service s = new ServiceFactory().create(clusterSpec.getServiceName());
assertThat(s, instanceOf(CassandraService.class));
service = (CassandraService) s;
Modified: incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopService.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopService.java?rev=999659&r1=999658&r2=999659&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopService.java (original)
+++ incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopService.java Tue Sep 21 21:43:32 2010
@@ -80,7 +80,7 @@ public class HadoopService extends Servi
// deal with user packages and autoshutdown with extra runurls
String hadoopInstallRunUrl = clusterSpec.getConfiguration().getString(
"whirr.hadoop-install-runurl", "apache/hadoop/install");
- byte[] nnjtBootScript = RunUrlBuilder.runUrls(
+ byte[] nnjtBootScript = RunUrlBuilder.runUrls(clusterSpec.getRunUrlBase(),
"sun/java/install",
String.format("%s nn,jt -c %s", hadoopInstallRunUrl,
clusterSpec.getProvider()));
@@ -132,7 +132,7 @@ public class HadoopService extends Servi
}
// Launch slaves (DN and TT)
- byte[] slaveBootScript = RunUrlBuilder.runUrls(
+ byte[] slaveBootScript = RunUrlBuilder.runUrls(clusterSpec.getRunUrlBase(),
"sun/java/install",
String.format("%s dn,tt -n %s -j %s",
hadoopInstallRunUrl,
Modified: incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/integration/HadoopServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/integration/HadoopServiceTest.java?rev=999659&r1=999658&r2=999659&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/integration/HadoopServiceTest.java (original)
+++ incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/integration/HadoopServiceTest.java Tue Sep 21 21:43:32 2010
@@ -71,7 +71,7 @@ public class HadoopServiceTest {
config.addConfiguration(new PropertiesConfiguration(System.getProperty("config")));
}
config.addConfiguration(new PropertiesConfiguration("whirr-hadoop-test.properties"));
- clusterSpec = ClusterSpec.fromConfiguration(config);
+ clusterSpec = new ClusterSpec(config);
Service s = new ServiceFactory().create(clusterSpec.getServiceName());
assertThat(s, instanceOf(HadoopService.class));
service = (HadoopService) s;
Modified: incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperService.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperService.java?rev=999659&r1=999658&r2=999659&view=diff
==============================================================================
--- incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperService.java (original)
+++ incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperService.java Tue Sep 21 21:43:32 2010
@@ -70,7 +70,7 @@ public class ZooKeeperService extends Se
ComputeServiceContextBuilder.build(clusterSpec);
ComputeService computeService = computeServiceContext.getComputeService();
- byte[] bootScript = RunUrlBuilder.runUrls(
+ byte[] bootScript = RunUrlBuilder.runUrls(clusterSpec.getRunUrlBase(),
"sun/java/install",
"apache/zookeeper/install");
@@ -107,7 +107,7 @@ public class ZooKeeperService extends Se
// Pass list of all servers in ensemble to configure script.
// Position is significant: i-th server has id i.
String servers = Joiner.on(' ').join(getPrivateIps(nodes));
- byte[] configureScript = RunUrlBuilder.runUrls(
+ byte[] configureScript = RunUrlBuilder.runUrls(clusterSpec.getRunUrlBase(),
"apache/zookeeper/post-configure " + servers);
try {
computeService.runScriptOnNodesMatching(runningWithTag(clusterSpec.getClusterName()), configureScript);
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=999659&r1=999658&r2=999659&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 Sep 21 21:43:32 2010
@@ -56,7 +56,7 @@ public class ZooKeeperServiceTest {
config.addConfiguration(new PropertiesConfiguration(System.getProperty("config")));
}
config.addConfiguration(new PropertiesConfiguration("whirr-zookeeper-test.properties"));
- clusterSpec = ClusterSpec.fromConfiguration(config);
+ clusterSpec = new ClusterSpec(config);
Service s = new ServiceFactory().create(clusterSpec.getServiceName());
assertThat(s, instanceOf(ZooKeeperService.class));
service = (ZooKeeperService) s;
Modified: incubator/whirr/trunk/src/site/confluence/configuration-guide.confluence
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/src/site/confluence/configuration-guide.confluence?rev=999659&r1=999658&r2=999659&view=diff
==============================================================================
--- incubator/whirr/trunk/src/site/confluence/configuration-guide.confluence (original)
+++ incubator/whirr/trunk/src/site/confluence/configuration-guide.confluence Tue Sep 21 21:43:32 2010
@@ -12,6 +12,7 @@ Whirr is configured using a properties f
| {{credential}} | {{\--credential}} | none | The cloud credential. See the table below for how this maps to the credentials for your provider. |
| {{secret-key-file}} | {{\--secret-key-file}} | _\~/.ssh/id\_rsa_ | The filename of the private key used to connect to instances. |
| {{client-cidrs}} | {{\--client-cidrs}} | none | A comma-separated list of [CIDR |http://en.wikipedia.org/wiki/Classless\_Inter-Domain\_Routing] blocks. E.g. {{208.128.0.0/11,108.128.0.0/11}} |
+| {{run-url-base}} | {{\--run-url-base}} | {{http://whirr.s3.amazonaws.com/VERSION/}} | The base URL for forming run urls from. Change this to host your own set of launch scripts. |
h2. Cloud provider specific configuration
@@ -35,6 +36,7 @@ h2. Comparison
| none | {{credential}} | Specified using environment variables for Python. E.g. {{AWS\_ACCESS\_KEY\_ID}}, {{RACKSPACE\_SECRET}} |
| {{private-key-file}} | {{private-key-file}} | |
| {{client-cidr}} | {{client-cidrs}} | Python {{client-cidr}} option may be repeated multiple times, whereas Java {{client-cidrs}} contains comma-separated CIDRs. |
+| none | {{run-url-base}} | Specified using {{user-data-file}} in Python. |
| {{public-key}} | none | Based on secret key in Java (add {{.pub}}). |
| {{image-id}} | none | Need to add to Java. Along with more flexible image matching (pattern, OS, arch). See jclouds TemplateBuilder. |
| {{instance-type}} | none | Ditto. |