Fix missing sensor and always remove node after leaving
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/1e67a52b Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/1e67a52b Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/1e67a52b Branch: refs/heads/master Commit: 1e67a52b97f53008992e07e157b850e96d612198 Parents: af5b64f Author: Andrew Kennedy <[email protected]> Authored: Thu Mar 26 14:15:31 2015 +0000 Committer: Andrew Kennedy <[email protected]> Committed: Thu Mar 26 14:15:31 2015 +0000 ---------------------------------------------------------------------- .../main/java/brooklyn/entity/nosql/riak/RiakClusterImpl.java | 4 ++-- .../src/main/java/brooklyn/entity/nosql/riak/RiakNode.java | 5 +---- .../src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java | 4 +++- 3 files changed, 6 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1e67a52b/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 9fff98d..386815d 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 @@ -165,12 +165,12 @@ public class RiakClusterImpl extends DynamicClusterImpl implements RiakCluster { } } else { if (nodes != null && nodes.containsKey(member)) { - boolean timeout = DependentConfiguration.attributeWhenReady(member, RiakNode.RIAK_NODE_HAS_JOINED_CLUSTER, Predicates.equalTo(false)).blockUntilEnded(Duration.TWO_MINUTES); + DependentConfiguration.attributeWhenReady(member, RiakNode.RIAK_NODE_HAS_JOINED_CLUSTER, Predicates.equalTo(false)).blockUntilEnded(Duration.TWO_MINUTES); Optional<Entity> anyNodeInCluster = Iterables.tryFind(nodes.keySet(), Predicates.and( Predicates.instanceOf(RiakNode.class), EntityPredicates.attributeEqualTo(RiakNode.RIAK_NODE_HAS_JOINED_CLUSTER, true), Predicates.not(Predicates.equalTo(member)))); - if (timeout && anyNodeInCluster.isPresent()) { + if (anyNodeInCluster.isPresent()) { Entities.invokeEffectorWithArgs(this, anyNodeInCluster.get(), RiakNode.REMOVE_FROM_CLUSTER, getRiakName(member)).blockUntilEnded(); } nodes.remove(member); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1e67a52b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java index ad1a736..7e18119 100644 --- a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java +++ b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java @@ -148,14 +148,11 @@ public interface RiakNode extends SoftwareProcess { AttributeSensor<Integer> RIAK_OBJECT_COUNTER_MERGE_TIME_MEAN = Sensors.newIntegerSensor("riak.object_counter_merge_time_mean", "Time it takes to perform an Update Counter operation"); AttributeSensor<Integer> RIAK_OBJECT_SET_MERGE_TIME_MEAN = Sensors.newIntegerSensor("riak.object_set_merge_time_mean", "Time it takes to perform an Update Set operation"); AttributeSensor<Integer> RIAK_OBJECT_MAP_MERGE_TIME_MEAN = Sensors.newIntegerSensor("riak.object_map_merge_time_mean", "Time it takes to perform an Update Map operation"); - AttributeSensor<Integer> RIAK_SEARCH_QUERY_LATENCY_MEDIAN = Sensors.newIntegerSensor("riak.search_query_latency_median", "Search query latency"); - AttributeSensor<Integer> RIAK_SEARCH_INDEX_LATENCY_MEDIAN = Sensors.newIntegerSensor("riak.search_index_latency_median", "Time it takes Search to index a new document"); AttributeSensor<Integer> RIAK_CONSISTENT_GET_TIME_MEAN = Sensors.newIntegerSensor("riak.consistent_get_time_mean", "Strongly consistent read latency"); AttributeSensor<Integer> RIAK_CONSISTENT_PUT_TIME_MEAN = Sensors.newIntegerSensor("riak.consistent_put_time_mean", "Strongly consistent write latency"); - List<AttributeSensor<Integer>> ONE_MINUTE_STRING_SENSORS = ImmutableList.of(RIAK_NODE_GET_FSM_TIME_MEAN, RIAK_NODE_PUT_FSM_TIME_MEAN, + List<AttributeSensor<Integer>> ONE_MINUTE_SENSORS = ImmutableList.of(RIAK_NODE_GET_FSM_TIME_MEAN, RIAK_NODE_PUT_FSM_TIME_MEAN, RIAK_OBJECT_COUNTER_MERGE_TIME_MEAN, RIAK_OBJECT_SET_MERGE_TIME_MEAN, RIAK_OBJECT_MAP_MERGE_TIME_MEAN, - RIAK_SEARCH_QUERY_LATENCY_MEDIAN, RIAK_SEARCH_INDEX_LATENCY_MEDIAN, RIAK_CONSISTENT_GET_TIME_MEAN, RIAK_CONSISTENT_PUT_TIME_MEAN); // accessors, for use from template file http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1e67a52b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java ---------------------------------------------------------------------- diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java index bcb45f1..57def1a 100644 --- a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java +++ b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java @@ -41,6 +41,7 @@ import brooklyn.location.cloud.CloudLocationConfig; import brooklyn.util.collections.MutableSet; import brooklyn.util.config.ConfigBag; import brooklyn.util.guava.Functionals; +import brooklyn.util.time.Duration; import com.google.common.base.Function; import com.google.common.base.Functions; @@ -166,8 +167,9 @@ public class RiakNodeImpl extends SoftwareProcessImpl implements RiakNode { )) .onFailureOrException(Functions.constant(Arrays.asList(new String[0])))); - for (AttributeSensor<Integer> sensor : ONE_MINUTE_STRING_SENSORS) { + for (AttributeSensor<Integer> sensor : ONE_MINUTE_SENSORS) { httpFeedBuilder.poll(new HttpPollConfig<Integer>(sensor) + .period(Duration.ONE_MINUTE) .onSuccess(HttpValueFunctions.jsonContents(sensor.getName().substring(5), Integer.class)) .onFailureOrException(Functions.constant(-1))); }
