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);
