Wait for join to finish before committing cluster

Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/f73b4689
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/f73b4689
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/f73b4689

Branch: refs/heads/master
Commit: f73b46896c8632c6f7cfc906beedd6b332bcb298
Parents: 9ef37b2
Author: Andrew Kennedy <[email protected]>
Authored: Tue Mar 24 18:03:19 2015 +0000
Committer: Andrew Kennedy <[email protected]>
Committed: Tue Mar 24 20:11:35 2015 +0000

----------------------------------------------------------------------
 .../main/java/brooklyn/entity/nosql/riak/RiakClusterImpl.java  | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f73b4689/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakClusterImpl.java
----------------------------------------------------------------------
diff --git 
a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakClusterImpl.java 
b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakClusterImpl.java
index 079eada..8f2be1c 100644
--- 
a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakClusterImpl.java
+++ 
b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakClusterImpl.java
@@ -40,6 +40,7 @@ import brooklyn.entity.group.DynamicClusterImpl;
 import brooklyn.entity.proxying.EntitySpec;
 import brooklyn.entity.trait.Startable;
 import brooklyn.location.Location;
+import brooklyn.management.Task;
 import brooklyn.policy.PolicySpec;
 import brooklyn.util.time.Time;
 
@@ -123,7 +124,7 @@ public class RiakClusterImpl extends DynamicClusterImpl 
implements RiakCluster {
 
                     ((EntityInternal) 
member).setAttribute(RiakNode.RIAK_NODE_HAS_JOINED_CLUSTER, Boolean.TRUE);
 
-                    log.info("Adding riak node {}: {}; {} to cluster", new 
Object[] { this, member, getRiakName(member) });
+                    log.info("Added initial Riak node {}: {}; {} to new 
cluster", new Object[] { this, member, getRiakName(member) });
                 } else {
                     // TODO: be wary of erroneous nodes but are still flagged 
'in cluster'
                     // add the new node to be part of the riak cluster.
@@ -133,8 +134,9 @@ public class RiakClusterImpl extends DynamicClusterImpl 
implements RiakCluster {
                     if (anyNodeInCluster.isPresent()) {
                         if (!nodes.containsKey(member) && 
member.getAttribute(RiakNode.RIAK_NODE_HAS_JOINED_CLUSTER) == null) {
                             String anyNodeName = 
anyNodeInCluster.get().getAttribute(RiakNode.RIAK_NODE_NAME);
-                            Entities.invokeEffectorWithArgs(this, member, 
RiakNode.JOIN_RIAK_CLUSTER, anyNodeName);
+                            Task<Void> joinCluster = 
Entities.invokeEffectorWithArgs(this, member, RiakNode.JOIN_RIAK_CLUSTER, 
anyNodeName);
                             if (getAttribute(IS_CLUSTER_INIT)) {
+                                joinCluster.blockUntilEnded();
                                 Entities.invokeEffector(RiakClusterImpl.this, 
member, RiakNode.COMMIT_RIAK_CLUSTER);
                             }
                             nodes.put(member, riakName);

Reply via email to