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 2015/09/17 12:30:58 UTC
[1/5] incubator-brooklyn git commit: Fix Cassandra node in private
network
Repository: incubator-brooklyn
Updated Branches:
refs/heads/master b3ce25696 -> b118c1194
Fix Cassandra node in private network
- Improve how service-up is set.
- Ensure that mapped ip:port is used (so goes through NAT etc,
where necessary).
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/bc5c9e4e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/bc5c9e4e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/bc5c9e4e
Branch: refs/heads/master
Commit: bc5c9e4e1fbbfc25d4836e72c6d87e1cb444069d
Parents: 7ca2781
Author: Aled Sage <al...@gmail.com>
Authored: Tue Sep 15 09:13:23 2015 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Sep 15 09:13:23 2015 +0100
----------------------------------------------------------------------
.../nosql/cassandra/CassandraNodeImpl.java | 72 +++++++++++++-------
1 file changed, 47 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/bc5c9e4e/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
index b753df6..578fa6b 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
@@ -40,9 +40,11 @@ import org.apache.brooklyn.core.effector.EffectorBody;
import org.apache.brooklyn.core.entity.Attributes;
import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.location.Machines;
+import org.apache.brooklyn.core.location.access.BrooklynAccessUtils;
import org.apache.brooklyn.core.location.cloud.CloudLocationConfig;
import org.apache.brooklyn.core.sensor.DependentConfiguration;
import org.apache.brooklyn.core.sensor.Sensors;
+import org.apache.brooklyn.enricher.stock.Enrichers;
import org.apache.brooklyn.entity.java.JavaAppUtils;
import org.apache.brooklyn.entity.software.base.SoftwareProcessImpl;
import org.apache.brooklyn.feed.function.FunctionFeed;
@@ -59,6 +61,7 @@ import org.apache.brooklyn.util.collections.MutableSet;
import org.apache.brooklyn.util.core.config.ConfigBag;
import org.apache.brooklyn.util.core.text.TemplateProcessor;
import org.apache.brooklyn.util.exceptions.Exceptions;
+import org.apache.brooklyn.util.guava.Functionals;
import org.apache.brooklyn.util.guava.Maybe;
import org.apache.brooklyn.util.text.Strings;
import org.apache.brooklyn.util.time.Duration;
@@ -76,6 +79,7 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
+import com.google.common.net.HostAndPort;
/**
* Implementation of {@link CassandraNode}.
@@ -527,34 +531,14 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
.entity(this)
.period(3000, TimeUnit.MILLISECONDS)
.poll(new FunctionPollConfig<Long, Long>(THRIFT_PORT_LATENCY)
- .onException(Functions.constant((Long)null))
- .callable(new Callable<Long>() {
- public Long call() {
- try {
- long start = System.currentTimeMillis();
- Socket s = new Socket(getAttribute(Attributes.HOSTNAME), getThriftPort());
- s.close();
- long latency = System.currentTimeMillis() - start;
- computeServiceUp();
- return latency;
- } catch (Exception e) {
- if (log.isDebugEnabled())
- log.debug("Cassandra thrift port poll failure: "+e);
- setAttribute(SERVICE_UP, false);
- return null;
- }
- }
- public void computeServiceUp() {
- // this will wait an additional poll period after thrift port is up,
- // as the caller will not have set yet, but that will help ensure it is really healthy!
- setAttribute(SERVICE_UP,
- getAttribute(THRIFT_PORT_LATENCY)!=null && getAttribute(THRIFT_PORT_LATENCY)>=0 &&
- Boolean.TRUE.equals(getAttribute(SERVICE_UP_JMX)));
- }})
+ .onException(Functions.constant(-1L))
+ .callable(new ThriftLatencyChecker(CassandraNodeImpl.this))
.enabled(retrieveUsageMetrics))
.build();
jmxMxBeanFeed = JavaAppUtils.connectMXBeanSensors(this);
+
+ connectServiceUpIsRunning();
}
protected void connectEnrichers() {
@@ -575,12 +559,24 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
addEnricher(new RollingTimeWindowMeanEnricher<Double>(this, WRITES_PER_SECOND_LAST,
WRITES_PER_SECOND_IN_WINDOW, windowPeriod));
}
+
+ // service-up checks
+ addEnricher(Enrichers.builder().updatingMap(Attributes.SERVICE_NOT_UP_INDICATORS)
+ .from(THRIFT_PORT_LATENCY)
+ .computing(Functionals.ifEquals(-1L).value("Thrift latency polling failed") )
+ .build());
+
+ addEnricher(Enrichers.builder().updatingMap(Attributes.SERVICE_NOT_UP_INDICATORS)
+ .from(SERVICE_UP_JMX)
+ .computing(Functionals.ifEquals(false).value("JMX reports not up") )
+ .build());
}
@Override
public void disconnectSensors() {
super.disconnectSensors();
-
+
+ disconnectServiceUpIsRunning();
if (jmxFeed != null) jmxFeed.stop();
if (jmxMxBeanFeed != null) jmxMxBeanFeed.stop();
if (jmxHelper != null) jmxHelper.terminate();
@@ -603,4 +599,30 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
return getDriver().executeScriptAsync(commands).block().getStdout();
}
+ private static class ThriftLatencyChecker implements Callable<Long> {
+ private final CassandraNode entity;
+
+ public ThriftLatencyChecker(CassandraNode entity) {
+ this.entity = entity;
+ }
+ public Long call() {
+ Integer privatePort = entity.getThriftPort();
+ if (privatePort == null) return -1L;
+
+ HostAndPort hp = BrooklynAccessUtils.getBrooklynAccessibleAddress(entity, privatePort);
+
+ try {
+ long start = System.currentTimeMillis();
+ Socket s = new Socket(hp.getHostText(), hp.getPort());
+ s.close();
+ long latency = System.currentTimeMillis() - start;
+ return latency;
+ } catch (Exception e) {
+ Exceptions.propagateIfFatal(e);
+ if (log.isDebugEnabled())
+ log.debug("Cassandra thrift port poll failure: "+e);
+ return -1L;
+ }
+ }
+ }
}
[2/5] incubator-brooklyn git commit: Cassandra: effector impl not
anonymous inner class
Posted by al...@apache.org.
Cassandra: effector impl not anonymous inner class
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/a5c4b166
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/a5c4b166
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/a5c4b166
Branch: refs/heads/master
Commit: a5c4b166ca6638ad8035e52d2d41e12ba9a205cd
Parents: bc5c9e4
Author: Aled Sage <al...@gmail.com>
Authored: Tue Sep 15 09:20:33 2015 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Sep 15 09:20:33 2015 +0100
----------------------------------------------------------------------
.../nosql/cassandra/CassandraNodeImpl.java | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a5c4b166/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
index 578fa6b..dddc1cd 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
@@ -97,12 +97,15 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
public void init() {
super.init();
- getMutableEntityType().addEffector(EXECUTE_SCRIPT, new EffectorBody<String>() {
+ // TODO PERSISTENCE WORKAROUND kept anonymous class in case referenced in persisted state
+ new EffectorBody<String>() {
@Override
public String call(ConfigBag parameters) {
return executeScript((String)parameters.getStringKey("commands"));
}
- });
+ };
+
+ getMutableEntityType().addEffector(EXECUTE_SCRIPT, new ExecuteScriptEffectorBody(this));
Entities.checkRequiredUrl(this, getCassandraConfigTemplateUrl());
Entities.getRequiredUrlConfig(this, CASSANDRA_RACKDC_CONFIG_TEMPLATE_URL);
@@ -110,6 +113,18 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
connectEnrichers();
}
+ private static class ExecuteScriptEffectorBody extends EffectorBody<String> {
+ private final CassandraNode entity;
+
+ public ExecuteScriptEffectorBody(CassandraNode entity) {
+ this.entity = entity;
+ }
+ @Override
+ public String call(ConfigBag parameters) {
+ return entity.executeScript((String)parameters.getStringKey("commands"));
+ }
+ }
+
/**
* Some clouds (e.g. Rackspace) give us VMs that have two nics: one for private and one for public.
* If the private IP is used then it doesn't work, even for a cluster purely internal to Rackspace!
@@ -246,6 +261,7 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
String subnetAddress = getAttribute(CassandraNode.SUBNET_ADDRESS);
return Strings.isNonBlank(subnetAddress) ? subnetAddress : getAttribute(CassandraNode.ADDRESS);
}
+
@Override public String getBroadcastAddress() {
String sensorName = getConfig(BROADCAST_ADDRESS_SENSOR);
if (Strings.isNonBlank(sensorName))
[4/5] incubator-brooklyn git commit: Delete deprecated
CassandraNode.TOCKEN
Posted by al...@apache.org.
Delete deprecated CassandraNode.TOCKEN
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/623ee83e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/623ee83e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/623ee83e
Branch: refs/heads/master
Commit: 623ee83ec125f2bfbbd82cafe7f88d2124008a5c
Parents: 5385f34
Author: Aled Sage <al...@gmail.com>
Authored: Tue Sep 15 10:22:47 2015 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Sep 15 11:21:54 2015 +0100
----------------------------------------------------------------------
.../cassandra/CassandraDatacenterImpl.java | 13 +++--
.../entity/nosql/cassandra/CassandraNode.java | 26 ++--------
.../nosql/cassandra/CassandraNodeImpl.java | 51 +-------------------
.../CassandraDatacenterIntegrationTest.java | 4 +-
.../cassandra/CassandraDatacenterLiveTest.java | 15 +++---
...assandraDatacenterRebindIntegrationTest.java | 7 +--
.../cassandra/CassandraDatacenterTest.java | 20 +++-----
.../cassandra/CassandraNodeIntegrationTest.java | 1 -
8 files changed, 37 insertions(+), 100 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/623ee83e/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java
index 3678bb2..e17d530 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java
@@ -303,16 +303,21 @@ public class CassandraDatacenterImpl extends DynamicClusterImpl implements Cassa
return super.grow(delta);
}
- @SuppressWarnings("deprecation")
@Override
protected Entity createNode(@Nullable Location loc, Map<?,?> flags) {
Map<Object, Object> allflags = MutableMap.copyOf(flags);
-
- if ((flags.containsKey(CassandraNode.TOKEN) || flags.containsKey("token")) || (flags.containsKey(CassandraNode.TOKENS) || flags.containsKey("tokens"))) {
+
+ if (flags.containsKey("token") || flags.containsKey("cassandra.token")) {
+ // TODO Delete in future version; was deprecated in 0.7.0; deleted config key in 0.9.0
+ log.warn("Cassandra token no longer supported - use 'tokens' in "+CassandraDatacenterImpl.this);
+ }
+ if (flags.containsKey(CassandraNode.TOKENS) || flags.containsKey("tokens") || flags.containsKey("cassandra.tokens")) {
// leave token config as-is
} else if (!useVnodes()) {
BigInteger token = getTokenGenerator().newToken();
- allflags.put(CassandraNode.TOKEN, token);
+ if (token != null) {
+ allflags.put(CassandraNode.TOKENS, ImmutableSet.of(token));
+ }
}
if ((flags.containsKey(CassandraNode.NUM_TOKENS_PER_NODE) || flags.containsKey("numTokensPerNode"))) {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/623ee83e/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java
index aaf1886..0f42be5 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java
@@ -136,14 +136,6 @@ public interface CassandraNode extends DatastoreMixins.DatastoreCommon, Software
"Number of tokens per node; if using vnodes, should set this to a value like 256",
1);
- /**
- * @deprecated since 0.7; use {@link #TOKENS}
- */
- @SetFromFlag("token")
- @Deprecated
- BasicAttributeSensorAndConfigKey<BigInteger> TOKEN = new BasicAttributeSensorAndConfigKey<BigInteger>(
- BigInteger.class, "cassandra.token", "Cassandra Token");
-
@SetFromFlag("tokens")
@SuppressWarnings("serial")
BasicAttributeSensorAndConfigKey<Set<BigInteger>> TOKENS = new BasicAttributeSensorAndConfigKey<Set<BigInteger>>(
@@ -200,24 +192,14 @@ public interface CassandraNode extends DatastoreMixins.DatastoreCommon, Software
String getPrivateIp();
String getPublicIp();
- /**
- * In range 0 to (2^127)-1; or null if not yet set or known.
- * Returns the first token if more than one token.
- * @deprecated since 0.7; see {@link #getTokens()}
- */
- @Deprecated
- BigInteger getToken();
-
int getNumTokensPerNode();
- Set<BigInteger> getTokens();
-
/**
- * string value of token (with no commas, which freemarker introduces!) or blank if none
- * @deprecated since 0.7; use {@link #getTokensAsString()}
+ * Returns the set of tokens.
+ * Each is in the range 0 to (2^127)-1.
+ * Returns null if there are no tokens.
*/
- @Deprecated
- String getTokenAsString();
+ Set<BigInteger> getTokens();
/** string value of comma-separated tokens; or blank if none */
String getTokensAsString();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/623ee83e/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
index 22d73ec..1c6742b 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
@@ -53,8 +53,6 @@ import org.apache.brooklyn.feed.jmx.JmxAttributePollConfig;
import org.apache.brooklyn.feed.jmx.JmxFeed;
import org.apache.brooklyn.feed.jmx.JmxHelper;
import org.apache.brooklyn.feed.jmx.JmxOperationPollConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.brooklyn.policy.enricher.RollingTimeWindowMeanEnricher;
import org.apache.brooklyn.policy.enricher.TimeWeightedDeltaEnricher;
import org.apache.brooklyn.util.collections.MutableSet;
@@ -65,6 +63,8 @@ import org.apache.brooklyn.util.guava.Functionals;
import org.apache.brooklyn.util.guava.Maybe;
import org.apache.brooklyn.util.text.Strings;
import org.apache.brooklyn.util.time.Duration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.google.common.base.Function;
import com.google.common.base.Functions;
@@ -75,8 +75,6 @@ import com.google.common.base.Splitter;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.google.common.net.HostAndPort;
@@ -207,44 +205,16 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
return getConfig(CassandraNode.NUM_TOKENS_PER_NODE);
}
- @Deprecated
- @Override public BigInteger getToken() {
- BigInteger token = getAttribute(CassandraNode.TOKEN);
- if (token == null) {
- token = getConfig(CassandraNode.TOKEN);
- }
- return token;
- }
-
@Override public Set<BigInteger> getTokens() {
// Prefer an already-set attribute over the config.
// Prefer TOKENS over TOKEN.
Set<BigInteger> tokens = getAttribute(CassandraNode.TOKENS);
if (tokens == null) {
- BigInteger token = getAttribute(CassandraNode.TOKEN);
- if (token != null) {
- tokens = ImmutableSet.of(token);
- }
- }
- if (tokens == null) {
tokens = getConfig(CassandraNode.TOKENS);
}
- if (tokens == null) {
- BigInteger token = getConfig(CassandraNode.TOKEN);
- if (token != null) {
- tokens = ImmutableSet.of(token);
- }
- }
return tokens;
}
- @Deprecated
- @Override public String getTokenAsString() {
- BigInteger token = getToken();
- if (token==null) return "";
- return ""+token;
- }
-
@Override public String getTokensAsString() {
// TODO check what is required when replacing failed node.
// with vnodes in Cassandra 2.x, don't bother supplying token
@@ -456,23 +426,6 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
}})
.onException(Functions.<Set<BigInteger>>constant(null))
.suppressDuplicates(true))
- .pollAttribute(new JmxAttributePollConfig<BigInteger>(TOKEN)
- .objectName(storageServiceMBean)
- .attributeName("TokenToEndpointMap")
- .onSuccess(new Function<Object, BigInteger>() {
- @Override
- public BigInteger apply(@Nullable Object arg) {
- Map input = (Map)arg;
- // TODO remove duplication from setting TOKENS
- if (input == null || input.isEmpty()) return null;
- // FIXME does not work on aws-ec2, uses RFC1918 address
- Predicate<String> self = Predicates.in(ImmutableList.of(getAttribute(HOSTNAME), getAttribute(ADDRESS), getAttribute(SUBNET_ADDRESS), getAttribute(SUBNET_HOSTNAME)));
- Set<String> tokens = Maps.filterValues(input, self).keySet();
- String token = Iterables.getFirst(tokens, null);
- return (token != null) ? new BigInteger(token) : null;
- }})
- .onException(Functions.<BigInteger>constant(null))
- .suppressDuplicates(true))
.pollOperation(new JmxOperationPollConfig<String>(DATACENTER_NAME)
.period(60, TimeUnit.SECONDS)
.objectName(snitchMBean)
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/623ee83e/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterIntegrationTest.java b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterIntegrationTest.java
index 4192f91..eddbbef 100644
--- a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterIntegrationTest.java
+++ b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterIntegrationTest.java
@@ -40,6 +40,7 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
/**
@@ -55,6 +56,7 @@ import com.google.common.collect.Iterables;
*/
public class CassandraDatacenterIntegrationTest extends BrooklynAppLiveTestSupport {
+ @SuppressWarnings("unused")
private static final Logger log = LoggerFactory.getLogger(CassandraDatacenterIntegrationTest.class);
protected Location testLocation;
@@ -119,7 +121,7 @@ public class CassandraDatacenterIntegrationTest extends BrooklynAppLiveTestSuppo
if (assertToken) {
PosNeg63TokenGenerator tg = new PosNeg63TokenGenerator();
tg.growingCluster(1);
- EntityTestUtils.assertAttributeEqualsEventually(node, CassandraNode.TOKEN, tg.newToken().add(BigInteger.valueOf(42)));
+ EntityTestUtils.assertAttributeEqualsEventually(node, CassandraNode.TOKENS, ImmutableSet.of(tg.newToken().add(BigInteger.valueOf(42))));
}
// may take some time to be consistent (with new thrift_latency checks on the node,
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/623ee83e/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterLiveTest.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterLiveTest.java b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterLiveTest.java
index aedd5a7..7279f92 100644
--- a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterLiveTest.java
+++ b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterLiveTest.java
@@ -19,6 +19,7 @@
package org.apache.brooklyn.entity.nosql.cassandra;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
@@ -51,7 +52,6 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
@@ -114,6 +114,10 @@ public class CassandraDatacenterLiveTest extends BrooklynAppLiveTestSupport {
* didn't seem to be enough. I also had to set JAVA_HOME:
* .configure("shell.env", MutableMap.of("JAVA_HOME", "/etc/alternatives/java_sdk_1.7.0"))
* However, that would break other deployments such as on Ubuntu where JAVA_HOME would be different.
+ *
+ * TODO In AWS eu-west-1, with the default image choice (ami-ad2404da, ubuntu-trusty-14.04-amd64-server-20150908),
+ * `apt-get install openjdk-8-jdk` failed with the error "Unable to locate package openjdk-8-jdk".
+ * This meant Cassandra failed to start, because no Java was installed.
*/
@Test(groups = "Live")
public void testDatacenterWithVnodesVersion2() throws Exception {
@@ -204,12 +208,11 @@ public class CassandraDatacenterLiveTest extends BrooklynAppLiveTestSupport {
EntityTestUtils.assertAttributeEquals(node, Startable.SERVICE_UP, true);
EntityTestUtils.assertConfigEquals(node, CassandraNode.NUM_TOKENS_PER_NODE, 1);
EntityTestUtils.assertAttributeEquals(node, CassandraNode.PEERS, numNodes);
- BigInteger token = node.getAttribute(CassandraNode.TOKEN);
Set<BigInteger> tokens = node.getAttribute(CassandraNode.TOKENS);
- assertNotNull(token);
- assertEquals(tokens, ImmutableSet.of(token));
+ assertNotNull(tokens);
alltokens.addAll(tokens);
}
+ assertFalse(alltokens.contains(null), "tokens="+alltokens);
assertEquals(alltokens.size(), numNodes);
}});
}
@@ -225,12 +228,12 @@ public class CassandraDatacenterLiveTest extends BrooklynAppLiveTestSupport {
EntityTestUtils.assertAttributeEquals(node, Startable.SERVICE_UP, true);
EntityTestUtils.assertAttributeEquals(node, CassandraNode.PEERS, tokensPerNode*numNodes);
EntityTestUtils.assertConfigEquals(node, CassandraNode.NUM_TOKENS_PER_NODE, 256);
- BigInteger token = node.getAttribute(CassandraNode.TOKEN);
Set<BigInteger> tokens = node.getAttribute(CassandraNode.TOKENS);
- assertNotNull(token);
+ assertNotNull(tokens);
assertEquals(tokens.size(), tokensPerNode, "tokens="+tokens);
alltokens.addAll(tokens);
}
+ assertFalse(alltokens.contains(null));
assertEquals(alltokens.size(), tokensPerNode*numNodes);
}});
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/623ee83e/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterRebindIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterRebindIntegrationTest.java b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterRebindIntegrationTest.java
index 1ad77d0..89b03da 100644
--- a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterRebindIntegrationTest.java
+++ b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterRebindIntegrationTest.java
@@ -18,6 +18,7 @@
*/
package org.apache.brooklyn.entity.nosql.cassandra;
+import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotNull;
import java.math.BigInteger;
@@ -44,6 +45,7 @@ import com.google.common.collect.Iterables;
* Test the operation of the {@link NginxController} class.
*/
public class CassandraDatacenterRebindIntegrationTest extends RebindTestFixtureWithApp {
+ @SuppressWarnings("unused")
private static final Logger LOG = LoggerFactory.getLogger(CassandraDatacenterRebindIntegrationTest.class);
private LocalhostMachineProvisioningLocation localhostProvisioningLocation;
@@ -77,9 +79,9 @@ public class CassandraDatacenterRebindIntegrationTest extends RebindTestFixtureW
CassandraDatacenterLiveTest.assertNodesConsistent(ImmutableList.of(origNode));
CassandraDatacenterLiveTest.assertSingleTokenConsistent(ImmutableList.of(origNode));
CassandraDatacenterLiveTest.checkConnectionRepeatedly(2, 5, ImmutableList.of(origNode));
- BigInteger origToken = origNode.getAttribute(CassandraNode.TOKEN);
Set<BigInteger> origTokens = origNode.getAttribute(CassandraNode.TOKENS);
- assertNotNull(origToken);
+ assertNotNull(origTokens);
+ assertFalse(origTokens.contains(null), "tokens="+origTokens);
newApp = rebind(RebindOptions.create().terminateOrigManagementContext(true));
final CassandraDatacenter newDatacenter = (CassandraDatacenter) Iterables.find(newApp.getChildren(), Predicates.instanceOf(CassandraDatacenter.class));
@@ -87,7 +89,6 @@ public class CassandraDatacenterRebindIntegrationTest extends RebindTestFixtureW
EntityTestUtils.assertAttributeEqualsEventually(newDatacenter, CassandraDatacenter.GROUP_SIZE, 1);
EntityTestUtils.assertAttributeEqualsEventually(newNode, Startable.SERVICE_UP, true);
- EntityTestUtils.assertAttributeEqualsEventually(newNode, CassandraNode.TOKEN, origToken);
EntityTestUtils.assertAttributeEqualsEventually(newNode, CassandraNode.TOKENS, origTokens);
CassandraDatacenterLiveTest.assertNodesConsistent(ImmutableList.of(newNode));
CassandraDatacenterLiveTest.assertSingleTokenConsistent(ImmutableList.of(newNode));
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/623ee83e/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterTest.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterTest.java b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterTest.java
index 2267fb1..2c978b2 100644
--- a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterTest.java
+++ b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterTest.java
@@ -28,10 +28,10 @@ import org.apache.brooklyn.api.entity.Entity;
import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.location.LocationSpec;
import org.apache.brooklyn.core.entity.Attributes;
-import org.apache.brooklyn.core.entity.EntityInternal;
import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
import org.apache.brooklyn.entity.software.base.EmptySoftwareProcess;
import org.apache.brooklyn.entity.software.base.EmptySoftwareProcessSshDriver;
+import org.apache.brooklyn.location.localhost.LocalhostMachineProvisioningLocation;
import org.apache.brooklyn.test.EntityTestUtils;
import org.apache.brooklyn.util.core.ResourceUtils;
import org.apache.brooklyn.util.core.text.TemplateProcessor;
@@ -42,7 +42,6 @@ import org.slf4j.LoggerFactory;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import org.apache.brooklyn.location.localhost.LocalhostMachineProvisioningLocation;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -99,10 +98,11 @@ public class CassandraDatacenterTest extends BrooklynAppUnitTestSupport {
// calling the driver stop for this entity will cause SERVICE_UP to become false, and stay false
// (and that's all it does, incidentally); if we just set the attribute it will become true on serviceUp sensor feed
+ log.info("Simulating failure of cassandra node "+e1);
((EmptySoftwareProcess)e1).getDriver().stop();
// not necessary, but speeds things up:
if (fast)
- ((EntityInternal)e1).setAttribute(Attributes.SERVICE_UP, false);
+ e1.sensors().set(Attributes.SERVICE_UP, false);
EntityTestUtils.assertAttributeEqualsEventually(cluster, CassandraDatacenter.CURRENT_SEEDS, ImmutableSet.<Entity>of(e2));
@@ -120,7 +120,7 @@ public class CassandraDatacenterTest extends BrooklynAppUnitTestSupport {
// (not that important, and waits for 1s, so only done as part of integration)
((EmptySoftwareProcessSshDriver)(((EmptySoftwareProcess)e1).getDriver())).launch();
if (fast)
- ((EntityInternal)e1).setAttribute(Attributes.SERVICE_UP, true);
+ e1.sensors().set(Attributes.SERVICE_UP, true);
EntityTestUtils.assertAttributeEqualsEventually(e1, CassandraNode.SERVICE_UP, true);
EntityTestUtils.assertAttributeEqualsContinually(cluster, CassandraDatacenter.CURRENT_SEEDS, ImmutableSet.<Entity>of(e2, e3));
}
@@ -137,15 +137,11 @@ public class CassandraDatacenterTest extends BrooklynAppUnitTestSupport {
app.start(ImmutableList.of(loc));
Set<BigInteger> tokens = Sets.newLinkedHashSet();
- Set<BigInteger> tokens2 = Sets.newLinkedHashSet();
for (Entity member : cluster.getMembers()) {
- BigInteger memberToken = member.getConfig(CassandraNode.TOKEN);
Set<BigInteger > memberTokens = member.getConfig(CassandraNode.TOKENS);
- if (memberToken != null) tokens.add(memberToken);
- if (memberTokens != null) tokens2.addAll(memberTokens);
+ if (memberTokens != null) tokens.addAll(memberTokens);
}
assertEquals(tokens, ImmutableSet.of(new BigInteger("-9223372036854775808"), BigInteger.ZERO));
- assertEquals(tokens2, ImmutableSet.of());
}
@Test
@@ -159,15 +155,11 @@ public class CassandraDatacenterTest extends BrooklynAppUnitTestSupport {
app.start(ImmutableList.of(loc));
Set<BigInteger> tokens = Sets.newLinkedHashSet();
- Set<BigInteger> tokens2 = Sets.newLinkedHashSet();
for (Entity member : cluster.getMembers()) {
- BigInteger memberToken = member.getConfig(CassandraNode.TOKEN);
Set<BigInteger > memberTokens = member.getConfig(CassandraNode.TOKENS);
- if (memberToken != null) tokens.add(memberToken);
- if (memberTokens != null) tokens2.addAll(memberTokens);
+ if (memberTokens != null) tokens.addAll(memberTokens);
}
assertEquals(tokens, ImmutableSet.of());
- assertEquals(tokens2, ImmutableSet.of());
}
public static class MockInputForTemplate {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/623ee83e/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeIntegrationTest.java b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeIntegrationTest.java
index 831b9a7..12edbe6 100644
--- a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeIntegrationTest.java
+++ b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeIntegrationTest.java
@@ -155,7 +155,6 @@ public class CassandraNodeIntegrationTest extends AbstractCassandraNodeTest {
Asserts.succeedsEventually(new Runnable() {
@Override public void run() {
- assertNotNull(cassandra.getAttribute(CassandraNode.TOKEN));
assertNotNull(cassandra.getAttribute(CassandraNode.TOKENS));
assertEquals(cassandra.getAttribute(CassandraNode.TOKENS).size(), 256, "tokens="+cassandra.getAttribute(CassandraNode.TOKENS));
[5/5] incubator-brooklyn git commit: This closes #897
Posted by al...@apache.org.
This closes #897
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/b118c119
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/b118c119
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/b118c119
Branch: refs/heads/master
Commit: b118c1194e446efd00633e2e96b0250d78ac7623
Parents: b3ce256 623ee83
Author: Aled Sage <al...@gmail.com>
Authored: Thu Sep 17 11:30:30 2015 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Sep 17 11:30:30 2015 +0100
----------------------------------------------------------------------
.../cassandra/CassandraDatacenterImpl.java | 39 +++--
.../nosql/cassandra/CassandraFabricImpl.java | 26 +--
.../entity/nosql/cassandra/CassandraNode.java | 27 +---
.../nosql/cassandra/CassandraNodeImpl.java | 157 +++++++++----------
.../nosql/cassandra/CassandraNodeSshDriver.java | 10 +-
.../CassandraDatacenterIntegrationTest.java | 4 +-
.../cassandra/CassandraDatacenterLiveTest.java | 15 +-
...assandraDatacenterRebindIntegrationTest.java | 7 +-
.../cassandra/CassandraDatacenterTest.java | 20 +--
.../nosql/cassandra/CassandraFabricTest.java | 8 +-
.../cassandra/CassandraNodeIntegrationTest.java | 1 -
11 files changed, 145 insertions(+), 169 deletions(-)
----------------------------------------------------------------------
[3/5] incubator-brooklyn git commit: Cassandra: change deprecated
setConfig/setAttrib
Posted by al...@apache.org.
Cassandra: change deprecated setConfig/setAttrib
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/5385f347
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/5385f347
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/5385f347
Branch: refs/heads/master
Commit: 5385f347b5040f81343d3de57a6d9ac5b2acdb9d
Parents: a5c4b16
Author: Aled Sage <al...@gmail.com>
Authored: Tue Sep 15 09:25:10 2015 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Sep 15 11:06:58 2015 +0100
----------------------------------------------------------------------
.../cassandra/CassandraDatacenterImpl.java | 26 ++++++++++----------
.../nosql/cassandra/CassandraFabricImpl.java | 26 ++++++++++----------
.../entity/nosql/cassandra/CassandraNode.java | 1 +
.../nosql/cassandra/CassandraNodeImpl.java | 14 +++++------
.../nosql/cassandra/CassandraNodeSshDriver.java | 10 ++++----
.../nosql/cassandra/CassandraFabricTest.java | 8 +++---
6 files changed, 43 insertions(+), 42 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5385f347/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java
index 27f83aa..3678bb2 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraDatacenterImpl.java
@@ -197,8 +197,8 @@ public class CassandraDatacenterImpl extends DynamicClusterImpl implements Cassa
if (!(oldDcName.isPresent() && dcName.equals(oldDcName.get()))) {
mutableDatacenterUsage.values().remove(member);
mutableDatacenterUsage.put(dcName, member);
- setAttribute(DATACENTER_USAGE, mutableDatacenterUsage);
- setAttribute(DATACENTERS, Sets.newLinkedHashSet(mutableDatacenterUsage.keySet()));
+ sensors().set(DATACENTER_USAGE, mutableDatacenterUsage);
+ sensors().set(DATACENTERS, Sets.newLinkedHashSet(mutableDatacenterUsage.keySet()));
}
}
}
@@ -218,8 +218,8 @@ public class CassandraDatacenterImpl extends DynamicClusterImpl implements Cassa
if (datacenterUsage != null && datacenterUsage.containsValue(entity)) {
Multimap<String, Entity> mutableDatacenterUsage = LinkedHashMultimap.create(datacenterUsage);
mutableDatacenterUsage.values().remove(entity);
- setAttribute(DATACENTER_USAGE, mutableDatacenterUsage);
- setAttribute(DATACENTERS, Sets.newLinkedHashSet(mutableDatacenterUsage.keySet()));
+ sensors().set(DATACENTER_USAGE, mutableDatacenterUsage);
+ sensors().set(DATACENTERS, Sets.newLinkedHashSet(mutableDatacenterUsage.keySet()));
}
}
});
@@ -340,7 +340,7 @@ public class CassandraDatacenterImpl extends DynamicClusterImpl implements Cassa
"due to assumptions Cassandra makes about the use of the same port numbers used across the cluster.");
// force this to be set - even if it is using the default
- setAttribute(CLUSTER_NAME, getConfig(CLUSTER_NAME));
+ sensors().set(CLUSTER_NAME, getConfig(CLUSTER_NAME));
super.start(locations);
@@ -457,8 +457,8 @@ public class CassandraDatacenterImpl extends DynamicClusterImpl implements Cassa
Optional<Entity> upNode = Iterables.tryFind(getMembers(), EntityPredicates.attributeEqualTo(SERVICE_UP, Boolean.TRUE));
if (upNode.isPresent()) {
- setAttribute(HOSTNAME, upNode.get().getAttribute(Attributes.HOSTNAME));
- setAttribute(THRIFT_PORT, upNode.get().getAttribute(CassandraNode.THRIFT_PORT));
+ sensors().set(HOSTNAME, upNode.get().getAttribute(Attributes.HOSTNAME));
+ sensors().set(THRIFT_PORT, upNode.get().getAttribute(CassandraNode.THRIFT_PORT));
List<String> currentNodes = getAttribute(CASSANDRA_CLUSTER_NODES);
Set<String> oldNodes = (currentNodes != null) ? ImmutableSet.copyOf(currentNodes) : ImmutableSet.<String>of();
@@ -473,12 +473,12 @@ public class CassandraDatacenterImpl extends DynamicClusterImpl implements Cassa
}
}
if (Sets.symmetricDifference(oldNodes, newNodes).size() > 0) {
- setAttribute(CASSANDRA_CLUSTER_NODES, MutableList.copyOf(newNodes));
+ sensors().set(CASSANDRA_CLUSTER_NODES, MutableList.copyOf(newNodes));
}
} else {
- setAttribute(HOSTNAME, null);
- setAttribute(THRIFT_PORT, null);
- setAttribute(CASSANDRA_CLUSTER_NODES, Collections.<String>emptyList());
+ sensors().set(HOSTNAME, null);
+ sensors().set(THRIFT_PORT, null);
+ sensors().set(CASSANDRA_CLUSTER_NODES, Collections.<String>emptyList());
}
ServiceNotUpLogic.updateNotUpIndicatorRequiringNonEmptyList(this, CASSANDRA_CLUSTER_NODES);
@@ -563,9 +563,9 @@ public class CassandraDatacenterImpl extends DynamicClusterImpl implements Cassa
if (log.isTraceEnabled()) log.debug("Seed refresh no-op for cluster {}: still={}", new Object[] {CassandraDatacenterImpl.this, oldseeds});
} else {
if (log.isDebugEnabled()) log.debug("Refreshing seeds of cluster {}: now={}; old={}", new Object[] {this, newseeds, oldseeds});
- setAttribute(CURRENT_SEEDS, newseeds);
+ sensors().set(CURRENT_SEEDS, newseeds);
if (newseeds != null && newseeds.size() > 0) {
- setAttribute(HAS_PUBLISHED_SEEDS, true);
+ sensors().set(HAS_PUBLISHED_SEEDS, true);
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5385f347/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraFabricImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraFabricImpl.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraFabricImpl.java
index b42b162..682d352 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraFabricImpl.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraFabricImpl.java
@@ -133,10 +133,10 @@ public class CassandraFabricImpl extends DynamicFabricImpl implements CassandraF
}
if (!Objects.equal(seeds, newseeds)) {
- setAttribute(CURRENT_SEEDS, newseeds);
+ sensors().set(CURRENT_SEEDS, newseeds);
if (newseeds != null && newseeds.size() > 0) {
- setAttribute(HAS_PUBLISHED_SEEDS, true);
+ sensors().set(HAS_PUBLISHED_SEEDS, true);
// Need to tell every datacenter that seeds are ready.
// Otherwise a datacenter might get no more changes (e.g. to nodes' hostnames etc),
@@ -204,8 +204,8 @@ public class CassandraFabricImpl extends DynamicFabricImpl implements CassandraF
public void init() {
super.init();
- if (!getConfigRaw(CassandraDatacenter.SEED_SUPPLIER, true).isPresentAndNonNull())
- setConfig(CassandraDatacenter.SEED_SUPPLIER, getSeedSupplier());
+ if (!config().getRaw(CassandraDatacenter.SEED_SUPPLIER).isPresentAndNonNull())
+ config().set(CassandraDatacenter.SEED_SUPPLIER, getSeedSupplier());
// track members
addPolicy(PolicySpec.create(MemberTrackingPolicy.class)
@@ -219,9 +219,9 @@ public class CassandraFabricImpl extends DynamicFabricImpl implements CassandraF
Long oldval = getAttribute(CassandraDatacenter.FIRST_NODE_STARTED_TIME_UTC);
Long newval = event.getValue();
if (oldval == null && newval != null) {
- setAttribute(CassandraDatacenter.FIRST_NODE_STARTED_TIME_UTC, newval);
+ sensors().set(CassandraDatacenter.FIRST_NODE_STARTED_TIME_UTC, newval);
for (CassandraDatacenter member : Iterables.filter(getMembers(), CassandraDatacenter.class)) {
- ((EntityInternal)member).setAttribute(CassandraDatacenter.FIRST_NODE_STARTED_TIME_UTC, newval);
+ ((EntityInternal)member).sensors().set(CassandraDatacenter.FIRST_NODE_STARTED_TIME_UTC, newval);
}
}
}
@@ -232,15 +232,15 @@ public class CassandraFabricImpl extends DynamicFabricImpl implements CassandraF
@Override
public void onEvent(SensorEvent<Multimap<String,Entity>> event) {
Multimap<String, Entity> usage = calculateDatacenterUsage();
- setAttribute(DATACENTER_USAGE, usage);
- setAttribute(DATACENTERS, usage.keySet());
+ sensors().set(DATACENTER_USAGE, usage);
+ sensors().set(DATACENTERS, usage.keySet());
}
});
subscribe(this, DynamicGroup.MEMBER_REMOVED, new SensorEventListener<Entity>() {
@Override public void onEvent(SensorEvent<Entity> event) {
Multimap<String, Entity> usage = calculateDatacenterUsage();
- setAttribute(DATACENTER_USAGE, usage);
- setAttribute(DATACENTERS, usage.keySet());
+ sensors().set(DATACENTER_USAGE, usage);
+ sensors().set(DATACENTERS, usage.keySet());
}
});
}
@@ -344,7 +344,7 @@ public class CassandraFabricImpl extends DynamicFabricImpl implements CassandraF
subscribeToMembers(this, SERVICE_UP, new SensorEventListener<Boolean>() {
@Override public void onEvent(SensorEvent<Boolean> event) {
- setAttribute(SERVICE_UP, calculateServiceUp());
+ sensors().set(SERVICE_UP, calculateServiceUp());
}
});
}
@@ -386,8 +386,8 @@ public class CassandraFabricImpl extends DynamicFabricImpl implements CassandraF
Optional<Entity> upNode = Iterables.tryFind(getMembers(), EntityPredicates.attributeEqualTo(SERVICE_UP, Boolean.TRUE));
if (upNode.isPresent()) {
- setAttribute(HOSTNAME, upNode.get().getAttribute(Attributes.HOSTNAME));
- setAttribute(THRIFT_PORT, upNode.get().getAttribute(CassandraNode.THRIFT_PORT));
+ sensors().set(HOSTNAME, upNode.get().getAttribute(Attributes.HOSTNAME));
+ sensors().set(THRIFT_PORT, upNode.get().getAttribute(CassandraNode.THRIFT_PORT));
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5385f347/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java
index 683c16d..aaf1886 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNode.java
@@ -145,6 +145,7 @@ public interface CassandraNode extends DatastoreMixins.DatastoreCommon, Software
BigInteger.class, "cassandra.token", "Cassandra Token");
@SetFromFlag("tokens")
+ @SuppressWarnings("serial")
BasicAttributeSensorAndConfigKey<Set<BigInteger>> TOKENS = new BasicAttributeSensorAndConfigKey<Set<BigInteger>>(
new TypeToken<Set<BigInteger>>() {}, "cassandra.tokens", "Cassandra Tokens");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5385f347/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
index dddc1cd..22d73ec 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
@@ -155,17 +155,17 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
* (TODO internal access could be configured to improve performance / lower cost,
* if we know all nodes are visible to each other) */
if (getConfig(LISTEN_ADDRESS_SENSOR)==null)
- setConfig(LISTEN_ADDRESS_SENSOR, CassandraNode.ADDRESS.getName());
+ config().set(LISTEN_ADDRESS_SENSOR, CassandraNode.ADDRESS.getName());
if (getConfig(BROADCAST_ADDRESS_SENSOR)==null)
- setConfig(BROADCAST_ADDRESS_SENSOR, CassandraNode.ADDRESS.getName());
+ config().set(BROADCAST_ADDRESS_SENSOR, CassandraNode.ADDRESS.getName());
result = "public IP for both listen and broadcast";
} else if (provider.contains("google-compute")) {
/* Google nodes cannot reach themselves/each-other on the public IP,
* and there is no hostname, so use private IP here */
if (getConfig(LISTEN_ADDRESS_SENSOR)==null)
- setConfig(LISTEN_ADDRESS_SENSOR, CassandraNode.SUBNET_HOSTNAME.getName());
+ config().set(LISTEN_ADDRESS_SENSOR, CassandraNode.SUBNET_HOSTNAME.getName());
if (getConfig(BROADCAST_ADDRESS_SENSOR)==null)
- setConfig(BROADCAST_ADDRESS_SENSOR, CassandraNode.SUBNET_HOSTNAME.getName());
+ config().set(BROADCAST_ADDRESS_SENSOR, CassandraNode.SUBNET_HOSTNAME.getName());
result = "private IP for both listen and broadcast";
}
}
@@ -372,7 +372,7 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
if (name == null) {
name = "UNKNOWN_DATACENTER";
}
- setAttribute((AttributeSensor<String>)DATACENTER_NAME, name);
+ sensors().set((AttributeSensor<String>)DATACENTER_NAME, name);
}
return name;
}
@@ -391,7 +391,7 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
if (name == null) {
name = "UNKNOWN_RACK";
}
- setAttribute((AttributeSensor<String>)RACK_NAME, name);
+ sensors().set((AttributeSensor<String>)RACK_NAME, name);
}
return name;
}
@@ -420,7 +420,7 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
@Override
protected void connectSensors() {
// "cassandra" isn't really a protocol, but okay for now
- setAttribute(DATASTORE_URL, "cassandra://"+getAttribute(HOSTNAME)+":"+getAttribute(THRIFT_PORT));
+ sensors().set(DATASTORE_URL, "cassandra://"+getAttribute(HOSTNAME)+":"+getAttribute(THRIFT_PORT));
super.connectSensors();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5385f347/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java
index 193b49f..d3230f9 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeSshDriver.java
@@ -224,10 +224,10 @@ public class CassandraNodeSshDriver extends JavaSoftwareProcessSshDriver impleme
protected void customizeInitialSeeds() {
if (entity.getConfig(CassandraNode.INITIAL_SEEDS)==null) {
if (isClustered()) {
- entity.setConfig(CassandraNode.INITIAL_SEEDS,
+ entity.config().set(CassandraNode.INITIAL_SEEDS,
DependentConfiguration.attributeWhenReady(entity.getParent(), CassandraDatacenter.CURRENT_SEEDS));
} else {
- entity.setConfig(CassandraNode.INITIAL_SEEDS, MutableSet.<Entity>of(entity));
+ entity.config().set(CassandraNode.INITIAL_SEEDS, MutableSet.<Entity>of(entity));
}
}
}
@@ -273,10 +273,10 @@ public class CassandraNodeSshDriver extends JavaSoftwareProcessSshDriver impleme
queuedStart = root.getAttribute(CassandraDatacenter.QUEUED_START_NODES);
if (queuedStart==null) {
queuedStart = new ArrayList<Entity>();
- ((EntityLocal)root).setAttribute(CassandraDatacenter.QUEUED_START_NODES, queuedStart);
+ ((EntityLocal)root).sensors().set(CassandraDatacenter.QUEUED_START_NODES, queuedStart);
}
queuedStart.add(getEntity());
- ((EntityLocal)root).setAttribute(CassandraDatacenter.QUEUED_START_NODES, queuedStart);
+ ((EntityLocal)root).sensors().set(CassandraDatacenter.QUEUED_START_NODES, queuedStart);
}
do {
// get it again in case it is backed by something external
@@ -316,7 +316,7 @@ public class CassandraNodeSshDriver extends JavaSoftwareProcessSshDriver impleme
}
if (isClustered() && isFirst) {
for (Entity ancestor: getCassandraAncestors()) {
- ((EntityLocal)ancestor).setAttribute(CassandraDatacenter.FIRST_NODE_STARTED_TIME_UTC, System.currentTimeMillis());
+ ((EntityLocal)ancestor).sensors().set(CassandraDatacenter.FIRST_NODE_STARTED_TIME_UTC, System.currentTimeMillis());
}
}
} finally {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5385f347/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraFabricTest.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraFabricTest.java b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraFabricTest.java
index d6df2ea..f28ddc1 100644
--- a/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraFabricTest.java
+++ b/software/nosql/src/test/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraFabricTest.java
@@ -131,12 +131,12 @@ public class CassandraFabricTest extends BrooklynAppUnitTestSupport {
final DummyCassandraNode d2a = (DummyCassandraNode) Iterables.get(d2.getMembers(), 0);
final DummyCassandraNode d2b = (DummyCassandraNode) Iterables.get(d2.getMembers(), 1);
- d1a.setAttribute(Attributes.HOSTNAME, "d1a");
- d1b.setAttribute(Attributes.HOSTNAME, "d1b");
+ d1a.sensors().set(Attributes.HOSTNAME, "d1a");
+ d1b.sensors().set(Attributes.HOSTNAME, "d1b");
Thread.sleep(1000);
- d2a.setAttribute(Attributes.HOSTNAME, "d2a");
- d2b.setAttribute(Attributes.HOSTNAME, "d2b");
+ d2a.sensors().set(Attributes.HOSTNAME, "d2a");
+ d2b.sensors().set(Attributes.HOSTNAME, "d2b");
Predicate<Set<Entity>> predicate = new Predicate<Set<Entity>>() {
@Override public boolean apply(Set<Entity> input) {