You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whirr.apache.org by as...@apache.org on 2011/01/27 10:31:16 UTC

svn commit: r1064057 - in /incubator/whirr/trunk: ./ cli/src/test/java/org/apache/whirr/cli/command/ core/src/main/java/org/apache/whirr/cluster/actions/ core/src/main/java/org/apache/whirr/service/ services/cassandra/src/test/java/org/apache/whirr/ser...

Author: asavu
Date: Thu Jan 27 09:31:15 2011
New Revision: 1064057

URL: http://svn.apache.org/viewvc?rev=1064057&view=rev
Log:
WHIRR-170. Instances should be started in the order specified in the template (tomwhite via asavu)

Modified:
    incubator/whirr/trunk/CHANGES.txt
    incubator/whirr/trunk/cli/src/test/java/org/apache/whirr/cli/command/LaunchClusterCommandTest.java
    incubator/whirr/trunk/core/src/main/java/org/apache/whirr/cluster/actions/BootstrapClusterAction.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/RolePredicates.java
    incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/ServiceFactory.java
    incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/integration/CassandraServiceTest.java

Modified: incubator/whirr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/CHANGES.txt?rev=1064057&r1=1064056&r2=1064057&view=diff
==============================================================================
--- incubator/whirr/trunk/CHANGES.txt (original)
+++ incubator/whirr/trunk/CHANGES.txt Thu Jan 27 09:31:15 2011
@@ -2,6 +2,8 @@ Apache Whirr Change Log
 
 Trunk (unreleased changes)
 
+  NEW FEATURES
+
   IMPROVEMENTS
 
     WHIRR-139. upgrade to version 1 of the "enforcer" plugin (Jakob Homan 
@@ -9,6 +11,11 @@ Trunk (unreleased changes)
 
     WHIRR-193. Recipe for a HBase Cluster. (asavu)
 
+  BUG FIXES
+
+    WHIRR-170. Instances should be started in the order specified in 
+    the template (tomwhite via asavu)
+
 Release 0.3.0 - 2011-01-15
 
   NEW FEATURES

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=1064057&r1=1064056&r2=1064057&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 Thu Jan 27 09:31:15 2011
@@ -26,7 +26,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import com.google.common.collect.Sets;
+import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 
 import java.io.ByteArrayOutputStream;
@@ -103,8 +103,8 @@ public class LaunchClusterCommandTest {
 
     ClusterSpec expectedClusterSpec = ClusterSpec.withNoDefaults(conf);
     expectedClusterSpec.setInstanceTemplates(Lists.newArrayList(
-        new ClusterSpec.InstanceTemplate(1, Sets.newHashSet("role1", "role2")),
-        new ClusterSpec.InstanceTemplate(2, Sets.newHashSet("role3"))
+        new ClusterSpec.InstanceTemplate(1, ImmutableSet.of("role1", "role2")),
+        new ClusterSpec.InstanceTemplate(2, ImmutableSet.of("role3"))
     ));
     expectedClusterSpec.setServiceName("test-service");
     expectedClusterSpec.setProvider("rackspace");

Modified: incubator/whirr/trunk/core/src/main/java/org/apache/whirr/cluster/actions/BootstrapClusterAction.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/java/org/apache/whirr/cluster/actions/BootstrapClusterAction.java?rev=1064057&r1=1064056&r2=1064057&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/main/java/org/apache/whirr/cluster/actions/BootstrapClusterAction.java (original)
+++ incubator/whirr/trunk/core/src/main/java/org/apache/whirr/cluster/actions/BootstrapClusterAction.java Thu Jan 27 09:31:15 2011
@@ -110,7 +110,7 @@ public class BootstrapClusterAction exte
       futures.put(instanceTemplate, nodesFuture);
     }
     
-    Set<Instance> instances = Sets.newHashSet();
+    Set<Instance> instances = Sets.newLinkedHashSet();
     for (Entry<InstanceTemplate, Future<Set<? extends NodeMetadata>>> entry :
         futures.entrySet()) {
       Set<? extends NodeMetadata> nodes;
@@ -147,7 +147,7 @@ public class BootstrapClusterAction exte
 
   private Set<Instance> getInstances(final Set<String> roles,
       Set<? extends NodeMetadata> nodes) {
-    return Sets.newHashSet(Collections2.transform(Sets.newHashSet(nodes),
+    return Sets.newLinkedHashSet(Collections2.transform(Sets.newLinkedHashSet(nodes),
         new Function<NodeMetadata, Instance>() {
       @Override
       public Instance apply(NodeMetadata node) {

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=1064057&r1=1064056&r2=1064057&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 Jan 27 09:31:15 2011
@@ -20,15 +20,18 @@ package org.apache.whirr.service;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
+import static org.apache.whirr.ssh.KeyPair.sameKeyPair;
 import static org.jclouds.io.Payloads.newFilePayload;
 import static org.jclouds.io.Payloads.newStringPayload;
 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;
+import com.jcraft.jsch.JSch;
+import com.jcraft.jsch.JSchException;
+import com.jcraft.jsch.KeyPair;
 
 import java.io.File;
 import java.io.FileReader;
@@ -40,9 +43,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import com.jcraft.jsch.JSch;
-import com.jcraft.jsch.JSchException;
-import com.jcraft.jsch.KeyPair;
 import org.apache.commons.configuration.CompositeConfiguration;
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
@@ -156,7 +156,7 @@ public class ClusterSpec {
     private int numberOfInstances;
 
     public InstanceTemplate(int numberOfInstances, String... roles) {
-      this(numberOfInstances, Sets.newHashSet(roles));
+      this(numberOfInstances, Sets.newLinkedHashSet(Lists.newArrayList(roles)));
     }
 
     public InstanceTemplate(int numberOfInstances, Set<String> roles) {
@@ -359,7 +359,7 @@ public class ClusterSpec {
   }
   
   public InstanceTemplate getInstanceTemplate(String... roles) {
-    return getInstanceTemplate(Sets.newHashSet(roles));
+    return getInstanceTemplate(Sets.newLinkedHashSet(Lists.newArrayList(roles)));
   }
   
   public String getServiceName() {

Modified: incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/RolePredicates.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/RolePredicates.java?rev=1064057&r1=1064056&r2=1064057&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/RolePredicates.java (original)
+++ incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/RolePredicates.java Thu Jan 27 09:31:15 2011
@@ -74,7 +74,7 @@ public class RolePredicates {
     return new Predicate<Instance>() {
       @Override
       public boolean apply(Instance instance) {
-        Set<String> copy = Sets.newHashSet(instance.getRoles());
+        Set<String> copy = Sets.newLinkedHashSet(instance.getRoles());
         copy.retainAll(roles);
         return !copy.isEmpty();
       }

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=1064057&r1=1064056&r2=1064057&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 Jan 27 09:31:15 2011
@@ -56,7 +56,7 @@ public class ServiceFactory {
    * @return
    */
   public Set<String> availableServices() {
-    Set<String> result = Sets.newHashSet();
+    Set<String> result = Sets.newLinkedHashSet();
     for (Service s : serviceLoader) {
       result.add(s.getName());
     }

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=1064057&r1=1064056&r2=1064057&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 Jan 27 09:31:15 2011
@@ -20,8 +20,9 @@ package org.apache.whirr.service.cassand
 
 import static org.junit.Assert.assertTrue;
 
+import com.google.common.collect.Sets;
+
 import java.io.IOException;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -99,7 +100,7 @@ public class CassandraServiceTest {
 
   @Test
   public void testInstances() throws Exception {
-    Set<String> endPoints = new HashSet<String>();
+    Set<String> endPoints = Sets.newLinkedHashSet();
     for (Instance instance : cluster.getInstances()) {
       Cassandra.Client client = client(instance);
       Map<String,List<String>> tr = client.describe_schema_versions();