You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2014/07/09 16:45:09 UTC
[3/8] git commit: Fixed (and simplified) clustering,
using automatic zen discovery
Fixed (and simplified) clustering, using automatic zen discovery
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/20507af0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/20507af0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/20507af0
Branch: refs/heads/master
Commit: 20507af0818ed93f48cee185fde64a8ac9a4a0b4
Parents: 587e699
Author: Martin Harris <gi...@nakomis.com>
Authored: Wed Jun 4 13:33:30 2014 +0100
Committer: Martin Harris <gi...@nakomis.com>
Committed: Tue Jun 17 10:19:58 2014 +0100
----------------------------------------------------------------------
.../elasticsearch/ElasticSearchCluster.java | 2 -
.../elasticsearch/ElasticSearchClusterImpl.java | 55 --------------------
.../nosql/elasticsearch/ElasticSearchNode.java | 3 +-
.../elasticsearch/ElasticSearchNodeImpl.java | 15 ------
4 files changed, 1 insertion(+), 74 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/20507af0/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchCluster.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchCluster.java b/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchCluster.java
index 4f6448f..fea777e 100644
--- a/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchCluster.java
+++ b/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchCluster.java
@@ -16,7 +16,5 @@ public interface ElasticSearchCluster extends DynamicCluster {
BasicAttributeSensorAndConfigKey<String> CLUSTER_NAME = new BasicAttributeSensorAndConfigKey<String>(String.class,
"elasticsearch.cluster.name", "Name of the ElasticSearch cluster", "BrooklynCluster");
- AttributeSensor<String> NODE_LIST = Sensors.newStringSensor("elasticsearch.cluster.node.list", "Comma delimited list of nodes in hostname:port format");
-
String getName();
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/20507af0/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchClusterImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchClusterImpl.java b/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchClusterImpl.java
index 5e1deb6..fe60c4a 100644
--- a/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchClusterImpl.java
+++ b/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchClusterImpl.java
@@ -4,45 +4,24 @@ import java.util.Collection;
import java.util.concurrent.atomic.AtomicInteger;
import brooklyn.entity.Entity;
-import brooklyn.entity.basic.Attributes;
-import brooklyn.entity.group.AbstractMembershipTrackingPolicy;
import brooklyn.entity.group.DynamicClusterImpl;
import brooklyn.entity.proxying.EntitySpec;
import brooklyn.location.Location;
-import brooklyn.policy.PolicySpec;
-import brooklyn.util.text.Strings;
public class ElasticSearchClusterImpl extends DynamicClusterImpl implements ElasticSearchCluster {
private AtomicInteger nextMemberId = new AtomicInteger(0);
- private MemberTrackingPolicy policy;
public ElasticSearchClusterImpl() {
}
@Override
- public void init() {
- policy = addPolicy(PolicySpec.create(MemberTrackingPolicy.class)
- .displayName(getName() + " membership tracker")
- .configure("group", this)
- .configure(AbstractMembershipTrackingPolicy.NOTIFY_ON_DUPLICATES, false));
- }
-
- @Override
public void start(Collection<? extends Location> locations) {
super.start(locations);
}
@Override
- public void stop() {
- if (policy != null) {
- removePolicy(policy);
- }
- super.stop();
- }
-
- @Override
protected boolean calculateServiceUp() {
boolean up = false;
for (Entity member : getMembers()) {
@@ -57,8 +36,6 @@ public class ElasticSearchClusterImpl extends DynamicClusterImpl implements Elas
EntitySpec<ElasticSearchNode> spec = (EntitySpec<ElasticSearchNode>)getConfig(MEMBER_SPEC, EntitySpec.create(ElasticSearchNode.class));
spec.configure(ElasticSearchNode.CLUSTER_NAME, getConfig(ElasticSearchClusterImpl.CLUSTER_NAME))
- .configure(ElasticSearchNode.MULTICAST_ENABLED, false)
- .configure(ElasticSearchNode.UNICAST_ENABLED, false)
.configure(ElasticSearchNode.NODE_NAME, "elasticsearch-" + nextMemberId.incrementAndGet());
return spec;
@@ -69,36 +46,4 @@ public class ElasticSearchClusterImpl extends DynamicClusterImpl implements Elas
return getConfig(CLUSTER_NAME);
}
- private void resetCluster() {
- String nodeList = "";
- for (Entity entity : getMembers()) {
- nodeList += getHostAndPort(entity) + ",";
- }
- if (!nodeList.isEmpty()) {
- for (Entity entity : getMembers()) {
- String otherNodesList = Strings.removeFromEnd(nodeList.replace(getHostAndPort(entity) + ",", ""), ",");
- if (!otherNodesList.isEmpty()) {
- ((ElasticSearchNode)entity).resetCluster(otherNodesList);
- }
- }
-
- }
- setAttribute(NODE_LIST, Strings.removeFromEnd(nodeList, ","));
- }
-
- private String getHostAndPort(Entity entity) {
- return entity.getAttribute(Attributes.HOSTNAME) + ":" + entity.getAttribute(Attributes.HTTP_PORT);
- }
-
- public static class MemberTrackingPolicy extends AbstractMembershipTrackingPolicy {
- @Override protected void onEntityChange(Entity member) {
- ((ElasticSearchClusterImpl)entity).resetCluster();
- }
- @Override protected void onEntityAdded(Entity member) {
- ((ElasticSearchClusterImpl)entity).resetCluster();
- }
- @Override protected void onEntityRemoved(Entity member) {
- ((ElasticSearchClusterImpl)entity).resetCluster();
- }
- };
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/20507af0/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNode.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNode.java b/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNode.java
index e9ec525..718983a 100644
--- a/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNode.java
+++ b/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNode.java
@@ -20,7 +20,7 @@ import brooklyn.util.flags.SetFromFlag;
@ImplementedBy(ElasticSearchNodeImpl.class)
public interface ElasticSearchNode extends SoftwareProcess, DatastoreMixins.HasDatastoreUrl {
@SetFromFlag("version")
- ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "1.2.0");
+ ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "1.2.1");
@SetFromFlag("downloadUrl")
BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>(
@@ -63,5 +63,4 @@ public interface ElasticSearchNode extends SoftwareProcess, DatastoreMixins.HasD
AttributeSensor<Integer> SEARCH_QUERY_TOTAL = Sensors.newIntegerSensor("elasticsearch.node.search.query.total");
AttributeSensor<Integer> SEARCH_QUERY_TIME_IN_MILLIS = Sensors.newIntegerSensor("elasticsearch.node.search.query.time.in.millis");
- void resetCluster(String nodeList);
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/20507af0/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeImpl.java b/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeImpl.java
index fafe67f..ec01539 100644
--- a/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeImpl.java
+++ b/software/nosql/src/main/java/brooklyn/entity/nosql/elasticsearch/ElasticSearchNodeImpl.java
@@ -96,21 +96,6 @@ public class ElasticSearchNodeImpl extends SoftwareProcessImpl implements Elasti
}
@Override
- public void resetCluster(String nodeList) {
- URI updateClusterUri;
- try {
- updateClusterUri = new URI(String.format("http://%s:%s/_cluster/settings", getAttribute(Attributes.HOSTNAME), getAttribute(HTTP_PORT)));
- } catch (URISyntaxException e) {
- throw Exceptions.propagate(e);
- }
- HttpClient client = HttpTool.httpClientBuilder().build();
-
- String payload = String.format("{\"persistent\":{\"discovery.zen.ping.unicast.hosts\":\"%s\"}}", nodeList);
-
- HttpToolResponse result = HttpTool.httpPut(client, updateClusterUri, ImmutableMap.<String, String>of(), Strings.toByteArray(payload));
- }
-
- @Override
protected void disconnectSensors() {
if (httpFeed != null) {
httpFeed.stop();