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/08/12 23:07:22 UTC
svn commit: r984975 - in /incubator/whirr/trunk: ./
core/src/main/java/org/apache/whirr/service/
core/src/test/java/org/apache/whirr/service/
services/cassandra/src/main/java/org/apache/whirr/service/cassandra/
services/cassandra/src/test/java/org/apac...
Author: tomwhite
Date: Thu Aug 12 21:07:21 2010
New Revision: 984975
URL: http://svn.apache.org/viewvc?rev=984975&view=rev
Log:
WHIRR-64. Unify ClusterSpec and ServiceSpec.
Removed:
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ServiceSpec.java
Modified:
incubator/whirr/trunk/CHANGES.txt
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ClusterSpec.java
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ComputeServiceBuilder.java
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Service.java
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ServiceFactory.java
incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ServiceFactoryTest.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/HadoopProxy.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
Modified: incubator/whirr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/CHANGES.txt?rev=984975&r1=984974&r2=984975&view=diff
==============================================================================
--- incubator/whirr/trunk/CHANGES.txt (original)
+++ incubator/whirr/trunk/CHANGES.txt Thu Aug 12 21:07:21 2010
@@ -39,6 +39,8 @@ Trunk (unreleased changes)
WHIRR-23. Upgrade to jclouds 1.0-beta-6. (Adrian Cole via tomwhite)
+ WHIRR-64. Unify ClusterSpec and ServiceSpec. (tomwhite)
+
BUG FIXES
WHIRR-50. Cassandra POM should depend on top-level. (tomwhite)
Modified: incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java?rev=984975&r1=984974&r2=984975&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java (original)
+++ incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java Thu Aug 12 21:07:21 2010
@@ -23,7 +23,6 @@ import java.net.InetAddress;
import java.util.Properties;
import java.util.Set;
-import org.apache.whirr.service.ClusterSpec.InstanceTemplate;
import org.jclouds.domain.Credentials;
/**
@@ -35,7 +34,7 @@ public class Cluster {
/**
* This class represents a real node running in a cluster. An instance has
* one or more roles.
- * @see InstanceTemplate
+ * @see org.apache.whirr.service.ClusterSpec.InstanceTemplate
*/
public static class Instance {
private final Credentials loginCredentials;
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=984975&r1=984974&r2=984975&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 Thu Aug 12 21:07:21 2010
@@ -18,9 +18,13 @@
package org.apache.whirr.service;
+import com.google.common.base.Charsets;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
+import com.google.common.io.Files;
+import java.io.File;
+import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -63,6 +67,13 @@ public class ClusterSpec {
private Properties configuration;
private List<InstanceTemplate> instanceTemplates;
private Map<Set<String>, InstanceTemplate> instanceTemplatesMap = Maps.newHashMap();
+
+ private String serviceName;
+ private String provider;
+ private String account;
+ private String key;
+ private String clusterName;
+ private String secretKeyFile;
public ClusterSpec(InstanceTemplate... instanceTemplates) {
this(Arrays.asList(instanceTemplates));
@@ -100,4 +111,51 @@ public class ClusterSpec {
return getInstanceTemplate(Sets.newHashSet(roles));
}
+ public String getServiceName() {
+ return serviceName;
+ }
+ public String getProvider() {
+ return provider;
+ }
+ public String getAccount() {
+ return account;
+ }
+ public String getKey() {
+ return key;
+ }
+ public String getClusterName() {
+ return clusterName;
+ }
+ public String getSecretKeyFile() {
+ return secretKeyFile;
+ }
+
+ public void setServiceName(String serviceName) {
+ this.serviceName = serviceName;
+ }
+ public void setProvider(String provider) {
+ this.provider = provider;
+ }
+ public void setAccount(String account) {
+ this.account = account;
+ }
+ public void setKey(String key) {
+ this.key = key;
+ }
+ public void setClusterName(String clusterName) {
+ this.clusterName = clusterName;
+ }
+ public void setSecretKeyFile(String secretKeyFile) {
+ this.secretKeyFile = secretKeyFile;
+ }
+
+ //
+ public String readPrivateKey() throws IOException {
+ return Files.toString(new File(getSecretKeyFile()), Charsets.UTF_8);
+ }
+
+ public String readPublicKey() throws IOException {
+ return Files.toString(new File(getSecretKeyFile() + ".pub"), Charsets.UTF_8);
+ }
+
}
Modified: incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ComputeServiceBuilder.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ComputeServiceBuilder.java?rev=984975&r1=984974&r2=984975&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ComputeServiceBuilder.java (original)
+++ incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ComputeServiceBuilder.java Thu Aug 12 21:07:21 2010
@@ -35,7 +35,7 @@ import org.jclouds.ssh.jsch.config.JschS
*/
public class ComputeServiceBuilder {
- public static ComputeService build(ServiceSpec spec) throws IOException {
+ public static ComputeService build(ClusterSpec spec) throws IOException {
Set<AbstractModule> wiring = ImmutableSet.of(new JschSshClientModule(),
new Log4JLoggingModule());
Modified: incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Service.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Service.java?rev=984975&r1=984974&r2=984975&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Service.java (original)
+++ incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Service.java Thu Aug 12 21:07:21 2010
@@ -40,13 +40,12 @@ public abstract class Service {
* cluster is
* available. It is not guaranteed that the service running on the cluster
* has started when this method returns.
- * @param serviceSpec
* @param clusterSpec
* @return an object representing the running cluster
* @throws IOException if there is a problem while starting the cluster. The
* cluster may or may not have started.
*/
- public abstract Cluster launchCluster(ServiceSpec serviceSpec, ClusterSpec clusterSpec)
+ public abstract Cluster launchCluster(ClusterSpec clusterSpec)
throws IOException;
/**
@@ -54,9 +53,9 @@ public abstract class Service {
* @throws IOException if there is a problem while stopping the cluster. The
* cluster may or may not have been stopped.
*/
- public void destroyCluster(ServiceSpec serviceSpec) throws IOException {
- ComputeService computeService = ComputeServiceBuilder.build(serviceSpec);
- computeService.destroyNodesMatching(withTag(serviceSpec.getClusterName()));
+ public void destroyCluster(ClusterSpec clusterSpec) throws IOException {
+ ComputeService computeService = ComputeServiceBuilder.build(clusterSpec);
+ computeService.destroyNodesMatching(withTag(clusterSpec.getClusterName()));
}
}
Modified: incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ServiceFactory.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ServiceFactory.java?rev=984975&r1=984974&r2=984975&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ServiceFactory.java (original)
+++ incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ServiceFactory.java Thu Aug 12 21:07:21 2010
@@ -34,11 +34,11 @@ public class ServiceFactory {
/**
* Create an instance of a {@link Service} according to the given
- * {@link ServiceSpec}.
+ * name.
*/
- public Service create(ServiceSpec serviceSpec) {
+ public Service create(String serviceName) {
for (Service service : serviceLoader) {
- if (service.getName().equals(serviceSpec.getName())) {
+ if (service.getName().equals(serviceName)) {
return service;
}
}
Modified: incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ServiceFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ServiceFactoryTest.java?rev=984975&r1=984974&r2=984975&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ServiceFactoryTest.java (original)
+++ incubator/whirr/trunk/core/src/test/java/org/apache/whirr/service/ServiceFactoryTest.java Thu Aug 12 21:07:21 2010
@@ -33,18 +33,15 @@ public class ServiceFactoryTest {
return "test-service";
}
@Override
- public Cluster launchCluster(ServiceSpec serviceSpec,
- ClusterSpec clusterSpec) throws IOException {
+ public Cluster launchCluster(ClusterSpec clusterSpec) throws IOException {
return null;
}
}
@Test
public void testServiceFactoryIsCreatedFromWhirrProperties() throws IOException {
- ServiceSpec serviceSpec = new ServiceSpec();
- serviceSpec.setName("test-service");
ServiceFactory factory = new ServiceFactory();
- Service service = factory.create(serviceSpec);
+ Service service = factory.create("test-service");
assertThat(service, instanceOf(TestService.class));
}
}
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=984975&r1=984974&r2=984975&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 Thu Aug 12 21:07:21 2010
@@ -37,7 +37,6 @@ import org.apache.whirr.service.ClusterS
import org.apache.whirr.service.ComputeServiceBuilder;
import org.apache.whirr.service.RunUrlBuilder;
import org.apache.whirr.service.Service;
-import org.apache.whirr.service.ServiceSpec;
import org.apache.whirr.service.Cluster.Instance;
import org.apache.whirr.service.ClusterSpec.InstanceTemplate;
import org.jclouds.compute.ComputeService;
@@ -67,10 +66,9 @@ public class CassandraService extends Se
}
@Override
- public Cluster launchCluster(ServiceSpec serviceSpec, ClusterSpec clusterSpec)
- throws IOException {
+ public Cluster launchCluster(ClusterSpec clusterSpec) throws IOException {
- ComputeService computeService = ComputeServiceBuilder.build(serviceSpec);
+ ComputeService computeService = ComputeServiceBuilder.build(clusterSpec);
byte[] bootScript = RunUrlBuilder.runUrls("sun/java/install",
"apache/cassandra/install");
@@ -78,11 +76,11 @@ public class CassandraService extends Se
TemplateBuilder templateBuilder = computeService.templateBuilder()
.osFamily(UBUNTU).options(
runScript(bootScript).installPrivateKey(
- serviceSpec.readPrivateKey()).authorizePublicKey(
- serviceSpec.readPublicKey()).inboundPorts(22, CLIENT_PORT));
+ clusterSpec.readPrivateKey()).authorizePublicKey(
+ clusterSpec.readPublicKey()).inboundPorts(22, CLIENT_PORT));
// TODO extract this logic elsewhere
- if (serviceSpec.getProvider().equals("ec2"))
+ if (clusterSpec.getProvider().equals("ec2"))
templateBuilder.imageNameMatches(".*10\\.?04.*").osDescriptionMatches(
"^ubuntu-images.*").architecture(Architecture.X86_32);
@@ -94,7 +92,7 @@ public class CassandraService extends Se
int clusterSize = instanceTemplate.getNumberOfInstances();
Set<? extends NodeMetadata> nodeMap;
try {
- nodeMap = computeService.runNodesWithTag(serviceSpec.getClusterName(),
+ nodeMap = computeService.runNodesWithTag(clusterSpec.getClusterName(),
clusterSize, template);
} catch (RunNodesException e) {
// TODO: can we do better here
@@ -111,9 +109,9 @@ public class CassandraService extends Se
try {
Map<? extends NodeMetadata, ExecResponse> responses = computeService
.runScriptOnNodesMatching(
- runningWithTag(serviceSpec.getClusterName()), configureScript);
+ runningWithTag(clusterSpec.getClusterName()), configureScript);
assert responses.size() > 0 : "no nodes matched "
- + serviceSpec.getClusterName();
+ + clusterSpec.getClusterName();
} catch (RunScriptOnNodesException e) {
// TODO: retry
throw new IOException(e);
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=984975&r1=984974&r2=984975&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 Thu Aug 12 21:07:21 2010
@@ -33,7 +33,6 @@ import org.apache.thrift.protocol.TBinar
import org.apache.thrift.transport.TSocket;
import org.apache.whirr.service.Cluster;
import org.apache.whirr.service.ClusterSpec;
-import org.apache.whirr.service.ServiceSpec;
import org.apache.whirr.service.Cluster.Instance;
import org.apache.whirr.service.ClusterSpec.InstanceTemplate;
import org.apache.whirr.service.cassandra.CassandraService;
@@ -46,7 +45,7 @@ public class CassandraServiceTest {
private String clusterName = "cassandraclustertest";
private static final String KEYSPACE = "Keyspace1";
- private ServiceSpec serviceSpec;
+ private ClusterSpec clusterSpec;
private CassandraService service;
private Cluster cluster;
@@ -58,18 +57,17 @@ public class CassandraServiceTest {
} catch (NullPointerException e) {
secretKeyFile = System.getProperty("user.home") + "/.ssh/id_rsa";
}
- serviceSpec = new ServiceSpec();
- serviceSpec.setProvider(checkNotNull(System.getProperty(
+ clusterSpec = new ClusterSpec(new InstanceTemplate(2,
+ CassandraService.CASSANDRA_ROLE));
+ clusterSpec.setProvider(checkNotNull(System.getProperty(
"whirr.test.provider", "ec2")));
- serviceSpec.setAccount(checkNotNull(System.getProperty("whirr.test.user"), "whirr.test.user"));
- serviceSpec.setKey(checkNotNull(System.getProperty("whirr.test.key"), "whirr.test.key"));
- serviceSpec.setSecretKeyFile(secretKeyFile);
- serviceSpec.setClusterName(clusterName);
+ clusterSpec.setAccount(checkNotNull(System.getProperty("whirr.test.user"), "whirr.test.user"));
+ clusterSpec.setKey(checkNotNull(System.getProperty("whirr.test.key"), "whirr.test.key"));
+ clusterSpec.setSecretKeyFile(secretKeyFile);
+ clusterSpec.setClusterName(clusterName);
service = new CassandraService();
- ClusterSpec clusterSpec = new ClusterSpec(new InstanceTemplate(2,
- CassandraService.CASSANDRA_ROLE));
- cluster = service.launchCluster(serviceSpec, clusterSpec);
+ cluster = service.launchCluster(clusterSpec);
// give it a sec to boot up the cluster
waitForCassandra();
@@ -125,7 +123,7 @@ public class CassandraServiceTest {
@After
public void tearDown() throws IOException {
if (service != null) {
- service.destroyCluster(serviceSpec);
+ service.destroyCluster(clusterSpec);
}
}
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=984975&r1=984974&r2=984975&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 Thu Aug 12 21:07:21 2010
@@ -22,25 +22,25 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
-import org.apache.whirr.service.ServiceSpec;
+import org.apache.whirr.service.ClusterSpec;
import com.google.common.collect.Iterables;
public class HadoopProxy {
- private ServiceSpec serviceSpec;
+ private ClusterSpec clusterSpec;
private HadoopCluster cluster;
private Process process;
- public HadoopProxy(ServiceSpec serviceSpec, HadoopCluster cluster) {
- this.serviceSpec = serviceSpec;
+ public HadoopProxy(ClusterSpec clusterSpec, HadoopCluster cluster) {
+ this.clusterSpec = clusterSpec;
this.cluster = cluster;
}
public void start() throws IOException {
// jsch doesn't support SOCKS-based dynamic port forwarding, so we need to shell out...
// TODO: Use static port forwarding instead?
- String identityFile = serviceSpec.getSecretKeyFile();
+ String identityFile = clusterSpec.getSecretKeyFile();
String user = Iterables.get(cluster.getInstances(), 0).getLoginCredentials().account;
String server = cluster.getNamenodePublicAddress().getHostName();
String[] command = new String[] { "ssh",
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=984975&r1=984974&r2=984975&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 Thu Aug 12 21:07:21 2010
@@ -43,7 +43,6 @@ import org.apache.whirr.service.ClusterS
import org.apache.whirr.service.ComputeServiceBuilder;
import org.apache.whirr.service.RunUrlBuilder;
import org.apache.whirr.service.Service;
-import org.apache.whirr.service.ServiceSpec;
import org.apache.whirr.service.Cluster.Instance;
import org.apache.whirr.service.ClusterSpec.InstanceTemplate;
import org.jclouds.compute.ComputeService;
@@ -64,24 +63,24 @@ public class HadoopService extends Servi
}
@Override
- public HadoopCluster launchCluster(ServiceSpec serviceSpec, ClusterSpec clusterSpec) throws IOException {
- ComputeService computeService = ComputeServiceBuilder.build(serviceSpec);
+ public HadoopCluster launchCluster(ClusterSpec clusterSpec) throws IOException {
+ ComputeService computeService = ComputeServiceBuilder.build(clusterSpec);
// Launch Hadoop "master" (NN and JT)
// deal with user packages and autoshutdown with extra runurls
byte[] nnjtBootScript = RunUrlBuilder.runUrls(
"sun/java/install",
- String.format("apache/hadoop/install nn,jt -c %s", serviceSpec.getProvider()));
+ String.format("apache/hadoop/install nn,jt -c %s", clusterSpec.getProvider()));
TemplateBuilder masterTemplateBuilder = computeService.templateBuilder()
.osFamily(UBUNTU)
.options(runScript(nnjtBootScript)
- .installPrivateKey(serviceSpec.readPrivateKey())
- .authorizePublicKey(serviceSpec.readPublicKey())
+ .installPrivateKey(clusterSpec.readPrivateKey())
+ .authorizePublicKey(clusterSpec.readPublicKey())
.inboundPorts(22, 80, 8020, 8021, 50010, 50030, 50070)); // TODO: restrict further
// TODO extract this logic elsewhere
- if (serviceSpec.getProvider().equals("ec2"))
+ if (clusterSpec.getProvider().equals("ec2"))
masterTemplateBuilder.imageNameMatches(".*10\\.?04.*")
.osDescriptionMatches("^ubuntu-images.*")
.architecture(Architecture.X86_32);
@@ -94,7 +93,7 @@ public class HadoopService extends Servi
Set<? extends NodeMetadata> nodes;
try {
nodes = computeService.runNodesWithTag(
- serviceSpec.getClusterName(), 1, masterTemplate);
+ clusterSpec.getClusterName(), 1, masterTemplate);
} catch (RunNodesException e) {
// TODO: can we do better here (retry?)
throw new IOException(e);
@@ -113,11 +112,11 @@ public class HadoopService extends Servi
TemplateBuilder slaveTemplateBuilder = computeService.templateBuilder()
.osFamily(UBUNTU)
.options(runScript(slaveBootScript)
- .installPrivateKey(serviceSpec.readPrivateKey())
- .authorizePublicKey(serviceSpec.readPublicKey()));
+ .installPrivateKey(clusterSpec.readPrivateKey())
+ .authorizePublicKey(clusterSpec.readPublicKey()));
// TODO extract this logic elsewhere
- if (serviceSpec.getProvider().equals("ec2"))
+ if (clusterSpec.getProvider().equals("ec2"))
slaveTemplateBuilder.imageNameMatches(".*10\\.?04.*")
.osDescriptionMatches("^ubuntu-images.*")
.architecture(Architecture.X86_32);
@@ -129,7 +128,7 @@ public class HadoopService extends Servi
Set<? extends NodeMetadata> workerNodes;
try {
- workerNodes = computeService.runNodesWithTag(serviceSpec.getClusterName(),
+ workerNodes = computeService.runNodesWithTag(clusterSpec.getClusterName(),
instanceTemplate.getNumberOfInstances(), slaveTemplate);
} catch (RunNodesException e) {
// TODO: don't bail out if only a few have failed to start
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=984975&r1=984974&r2=984975&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 Thu Aug 12 21:07:21 2010
@@ -44,7 +44,6 @@ import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.lib.LongSumReducer;
import org.apache.hadoop.mapred.lib.TokenCountMapper;
import org.apache.whirr.service.ClusterSpec;
-import org.apache.whirr.service.ServiceSpec;
import org.apache.whirr.service.ClusterSpec.InstanceTemplate;
import org.apache.whirr.service.hadoop.HadoopCluster;
import org.apache.whirr.service.hadoop.HadoopProxy;
@@ -57,7 +56,7 @@ public class HadoopServiceTest {
private String clusterName = "hadoopclustertest";
- private ServiceSpec serviceSpec;
+ private ClusterSpec clusterSpec;
private HadoopService service;
private HadoopProxy proxy;
private HadoopCluster cluster;
@@ -70,20 +69,18 @@ public class HadoopServiceTest {
} catch (NullPointerException e) {
secretKeyFile = System.getProperty("user.home") + "/.ssh/id_rsa";
}
- serviceSpec = new ServiceSpec();
- serviceSpec.setProvider(checkNotNull(System.getProperty("whirr.test.provider", "ec2")));
- serviceSpec.setAccount(checkNotNull(System.getProperty("whirr.test.user")));
- serviceSpec.setKey(checkNotNull(System.getProperty("whirr.test.key")));
- serviceSpec.setSecretKeyFile(secretKeyFile);
- serviceSpec.setClusterName(clusterName);
+ clusterSpec = new ClusterSpec(
+ new InstanceTemplate(1, HadoopService.MASTER_ROLE),
+ new InstanceTemplate(1, HadoopService.WORKER_ROLE));
+ clusterSpec.setProvider(checkNotNull(System.getProperty("whirr.test.provider", "ec2")));
+ clusterSpec.setAccount(checkNotNull(System.getProperty("whirr.test.user")));
+ clusterSpec.setKey(checkNotNull(System.getProperty("whirr.test.key")));
+ clusterSpec.setSecretKeyFile(secretKeyFile);
+ clusterSpec.setClusterName(clusterName);
service = new HadoopService();
- ClusterSpec clusterSpec = new ClusterSpec(
- new InstanceTemplate(1, HadoopService.MASTER_ROLE),
- new InstanceTemplate(1, HadoopService.WORKER_ROLE));
-
- cluster = service.launchCluster(serviceSpec, clusterSpec);
- proxy = new HadoopProxy(serviceSpec, cluster);
+ cluster = service.launchCluster(clusterSpec);
+ proxy = new HadoopProxy(clusterSpec, cluster);
proxy.start();
}
@@ -149,7 +146,7 @@ public class HadoopServiceTest {
if (proxy != null) {
proxy.stop();
}
- service.destroyCluster(serviceSpec);
+ service.destroyCluster(clusterSpec);
}
}
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=984975&r1=984974&r2=984975&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 Thu Aug 12 21:07:21 2010
@@ -34,7 +34,6 @@ import org.apache.whirr.service.ClusterS
import org.apache.whirr.service.ComputeServiceBuilder;
import org.apache.whirr.service.RunUrlBuilder;
import org.apache.whirr.service.Service;
-import org.apache.whirr.service.ServiceSpec;
import org.apache.whirr.service.Cluster.Instance;
import org.apache.whirr.service.ClusterSpec.InstanceTemplate;
import org.jclouds.compute.ComputeService;
@@ -64,9 +63,9 @@ public class ZooKeeperService extends Se
}
@Override
- public ZooKeeperCluster launchCluster(ServiceSpec serviceSpec, ClusterSpec clusterSpec) throws IOException {
+ public ZooKeeperCluster launchCluster(ClusterSpec clusterSpec) throws IOException {
- ComputeService computeService = ComputeServiceBuilder.build(serviceSpec);
+ ComputeService computeService = ComputeServiceBuilder.build(clusterSpec);
byte[] bootScript = RunUrlBuilder.runUrls(
"sun/java/install",
@@ -75,12 +74,12 @@ public class ZooKeeperService extends Se
TemplateBuilder templateBuilder = computeService.templateBuilder()
.osFamily(UBUNTU)
.options(runScript(bootScript)
- .installPrivateKey(serviceSpec.readPrivateKey())
- .authorizePublicKey(serviceSpec.readPublicKey())
+ .installPrivateKey(clusterSpec.readPrivateKey())
+ .authorizePublicKey(clusterSpec.readPublicKey())
.inboundPorts(22, CLIENT_PORT));
// TODO extract this logic elsewhere
- if (serviceSpec.getProvider().equals("ec2"))
+ if (clusterSpec.getProvider().equals("ec2"))
templateBuilder.imageNameMatches(".*10\\.?04.*")
.osDescriptionMatches("^ubuntu-images.*")
.architecture(Architecture.X86_32);
@@ -92,7 +91,7 @@ public class ZooKeeperService extends Se
int ensembleSize = instanceTemplate.getNumberOfInstances();
Set<? extends NodeMetadata> nodeMap;
try {
- nodeMap = computeService.runNodesWithTag(serviceSpec.getClusterName(), ensembleSize,
+ nodeMap = computeService.runNodesWithTag(clusterSpec.getClusterName(), ensembleSize,
template);
} catch (RunNodesException e) {
// TODO: can we do better here - proceed if ensemble is big enough?
@@ -106,7 +105,7 @@ public class ZooKeeperService extends Se
byte[] configureScript = RunUrlBuilder.runUrls(
"apache/zookeeper/post-configure " + servers);
try {
- computeService.runScriptOnNodesMatching(runningWithTag(serviceSpec.getClusterName()), configureScript);
+ computeService.runScriptOnNodesMatching(runningWithTag(clusterSpec.getClusterName()), configureScript);
} catch (RunScriptOnNodesException e) {
// TODO: retry
throw new IOException(e);
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=984975&r1=984974&r2=984975&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 Thu Aug 12 21:07:21 2010
@@ -28,7 +28,6 @@ import org.apache.whirr.service.ClusterS
import org.apache.whirr.service.ClusterSpec.InstanceTemplate;
import org.apache.whirr.service.zookeeper.ZooKeeperCluster;
import org.apache.whirr.service.zookeeper.ZooKeeperService;
-import org.apache.whirr.service.ServiceSpec;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
@@ -43,7 +42,7 @@ public class ZooKeeperServiceTest {
private String clusterName = "zkclustertest";
- private ServiceSpec serviceSpec;
+ private ClusterSpec clusterSpec;
private ZooKeeperService service;
private ZooKeeperCluster cluster;
@@ -55,17 +54,16 @@ public class ZooKeeperServiceTest {
} catch (NullPointerException e) {
secretKeyFile = System.getProperty("user.home") + "/.ssh/id_rsa";
}
- serviceSpec = new ServiceSpec();
- serviceSpec.setProvider(checkNotNull(System.getProperty("whirr.test.provider", "ec2")));
- serviceSpec.setAccount(checkNotNull(System.getProperty("whirr.test.user")));
- serviceSpec.setKey(checkNotNull(System.getProperty("whirr.test.key")));
- serviceSpec.setSecretKeyFile(secretKeyFile);
- serviceSpec.setClusterName(clusterName);
+ clusterSpec = new ClusterSpec(
+ new InstanceTemplate(2, ZooKeeperService.ZOOKEEPER_ROLE));
+ clusterSpec.setProvider(checkNotNull(System.getProperty("whirr.test.provider", "ec2")));
+ clusterSpec.setAccount(checkNotNull(System.getProperty("whirr.test.user")));
+ clusterSpec.setKey(checkNotNull(System.getProperty("whirr.test.key")));
+ clusterSpec.setSecretKeyFile(secretKeyFile);
+ clusterSpec.setClusterName(clusterName);
service = new ZooKeeperService();
- ClusterSpec clusterSpec = new ClusterSpec(
- new InstanceTemplate(2, ZooKeeperService.ZOOKEEPER_ROLE));
- cluster = service.launchCluster(serviceSpec, clusterSpec);
+ cluster = service.launchCluster(clusterSpec);
System.out.println(cluster.getHosts());
}
@@ -117,7 +115,7 @@ public class ZooKeeperServiceTest {
@After
public void tearDown() throws IOException {
- service.destroyCluster(serviceSpec);
+ service.destroyCluster(clusterSpec);
}
}