You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sv...@apache.org on 2016/11/16 17:20:27 UTC
[3/6] brooklyn-library git commit: ZooKeeper nodes publish main.uri
and ensembles aggregate to list
ZooKeeper nodes publish main.uri and ensembles aggregate to list
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-library/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-library/commit/1f0a16ed
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-library/tree/1f0a16ed
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-library/diff/1f0a16ed
Branch: refs/heads/master
Commit: 1f0a16ed7743475fe2a99fd6afcfe99ea137a8f9
Parents: ae000a5
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Tue Nov 15 13:06:34 2016 +0000
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Wed Nov 16 14:52:19 2016 +0000
----------------------------------------------------------------------
.../entity/zookeeper/ZooKeeperEnsemble.java | 4 ++-
.../entity/zookeeper/ZooKeeperEnsembleImpl.java | 33 +++++++++-----------
.../entity/zookeeper/ZooKeeperNodeImpl.java | 13 ++++++++
.../zookeeper/ZooKeeperEnsembleLiveTest.java | 2 ++
4 files changed, 33 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/1f0a16ed/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperEnsemble.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperEnsemble.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperEnsemble.java
index 2ed6206..487d639 100644
--- a/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperEnsemble.java
+++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperEnsemble.java
@@ -54,10 +54,12 @@ public interface ZooKeeperEnsemble extends DynamicCluster {
.constraint(Predicates.notNull())
.build();
- @SuppressWarnings("serial")
AttributeSensor<List<String>> ZOOKEEPER_SERVERS = Sensors.newSensor(new TypeToken<List<String>>() { },
"zookeeper.servers", "Hostnames to connect to cluster with");
+ AttributeSensor<String> ZOOKEEPER_ENDPOINTS = Sensors.newStringSensor(
+ "zookeeper.endpoints", "A comma-separated host:port list of members of the ensemble");
+
/** @deprecated since 0.10.0 use <code>sensors().get(ZooKeeperEnsemble.CLUSTER_NAME)</code> instead */
@Deprecated
String getClusterName();
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/1f0a16ed/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperEnsembleImpl.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperEnsembleImpl.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperEnsembleImpl.java
index 06ea472..0271e1d 100644
--- a/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperEnsembleImpl.java
+++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperEnsembleImpl.java
@@ -18,21 +18,17 @@
*/
package org.apache.brooklyn.entity.zookeeper;
-import java.util.Collection;
-import java.util.List;
-
import org.apache.brooklyn.api.entity.Entity;
import org.apache.brooklyn.api.entity.EntitySpec;
-import org.apache.brooklyn.api.location.Location;
+import org.apache.brooklyn.api.sensor.EnricherSpec;
import org.apache.brooklyn.core.entity.Attributes;
+import org.apache.brooklyn.enricher.stock.Enrichers;
import org.apache.brooklyn.entity.group.AbstractMembershipTrackingPolicy;
import org.apache.brooklyn.entity.group.DynamicClusterImpl;
import org.apache.brooklyn.util.guava.Suppliers;
import com.google.common.base.Supplier;
-import com.google.common.collect.Lists;
-
public class ZooKeeperEnsembleImpl extends DynamicClusterImpl implements ZooKeeperEnsemble {
public ZooKeeperEnsembleImpl() {}
@@ -57,18 +53,19 @@ public class ZooKeeperEnsembleImpl extends DynamicClusterImpl implements ZooKeep
@Override
protected void initEnrichers() {
super.initEnrichers();
-
- }
-
- @Override
- public void start(Collection<? extends Location> locations) {
- super.start(locations);
-
- List<String> zookeeperServers = Lists.newArrayList();
- for (Entity zookeeper : getMembers()) {
- zookeeperServers.add(zookeeper.getAttribute(Attributes.HOSTNAME));
- }
- sensors().set(ZOOKEEPER_SERVERS, zookeeperServers);
+ EnricherSpec<?> zks = Enrichers.builder()
+ .aggregating(Attributes.MAIN_URI)
+ .publishing(ZOOKEEPER_SERVERS)
+ .fromMembers()
+ .build();
+ EnricherSpec<?> zke = Enrichers.builder()
+ .joining(ZOOKEEPER_SERVERS)
+ .publishing(ZOOKEEPER_ENDPOINTS)
+ .quote(false)
+ .separator(",")
+ .build();
+ enrichers().add(zks);
+ enrichers().add(zke);
}
/**
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/1f0a16ed/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperNodeImpl.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperNodeImpl.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperNodeImpl.java
index cbf055e..e8ba9ee 100644
--- a/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperNodeImpl.java
+++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/zookeeper/ZooKeeperNodeImpl.java
@@ -18,6 +18,13 @@
*/
package org.apache.brooklyn.entity.zookeeper;
+import java.net.URI;
+
+import org.apache.brooklyn.core.entity.Attributes;
+import org.apache.brooklyn.core.location.access.BrooklynAccessUtils;
+
+import com.google.common.net.HostAndPort;
+
/**
* An {@link org.apache.brooklyn.api.entity.Entity} that represents a single standalone zookeeper instance.
*/
@@ -42,4 +49,10 @@ public class ZooKeeperNodeImpl extends AbstractZooKeeperImpl implements ZooKeepe
return ZooKeeperDriver.class;
}
+ @Override
+ protected void postStart() {
+ super.postStart();
+ HostAndPort hap = BrooklynAccessUtils.getBrooklynAccessibleAddress(this, sensors().get(ZOOKEEPER_PORT));
+ sensors().set(Attributes.MAIN_URI, URI.create(hap.toString()));
+ }
}
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/1f0a16ed/software/messaging/src/test/java/org/apache/brooklyn/entity/messaging/zookeeper/ZooKeeperEnsembleLiveTest.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/test/java/org/apache/brooklyn/entity/messaging/zookeeper/ZooKeeperEnsembleLiveTest.java b/software/messaging/src/test/java/org/apache/brooklyn/entity/messaging/zookeeper/ZooKeeperEnsembleLiveTest.java
index 16d7047..52b4d08 100644
--- a/software/messaging/src/test/java/org/apache/brooklyn/entity/messaging/zookeeper/ZooKeeperEnsembleLiveTest.java
+++ b/software/messaging/src/test/java/org/apache/brooklyn/entity/messaging/zookeeper/ZooKeeperEnsembleLiveTest.java
@@ -98,6 +98,8 @@ public class ZooKeeperEnsembleLiveTest extends BrooklynAppLiveTestSupport {
EntityAsserts.assertAttributeEqualsEventually(ensemble, ZooKeeperEnsemble.GROUP_SIZE, 3);
EntityAsserts.assertAttributeEqualsEventually(ensemble, Startable.SERVICE_UP, true);
+ assertNotNull(ensemble.sensors().get(ZooKeeperEnsemble.ZOOKEEPER_ENDPOINTS),
+ "expected value for " + ZooKeeperEnsemble.ZOOKEEPER_ENDPOINTS + " on " + ensemble + ", was null");
Set<Integer> nodeIds = Sets.newHashSet();
for (Entity zkNode : ensemble.getMembers()) {
nodeIds.add(zkNode.config().get(ZooKeeperNode.MY_ID));