You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sj...@apache.org on 2015/10/15 15:01:53 UTC
[1/2] incubator-brooklyn git commit: BROOKLYN-175 Fixing MongoDB
restart() phase
Repository: incubator-brooklyn
Updated Branches:
refs/heads/master 0c3e7ea53 -> 32346b80b
BROOKLYN-175 Fixing MongoDB restart() phase
- isRunning() check uses ping() during the restart phase
- ping() must complete in a reasonable amount of time since
it is invoked against stopped entities too
- lowering the MongoClient timeouts, because default values are too
high when used inside ping()
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/87be9225
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/87be9225
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/87be9225
Branch: refs/heads/master
Commit: 87be92257b6f44ec9966e41795c856a5eced3afd
Parents: 49eabd1
Author: Yavor Yanchev <ya...@yanchev.com>
Authored: Wed Oct 14 21:44:14 2015 +0300
Committer: Yavor Yanchev <ya...@yanchev.com>
Committed: Wed Oct 14 22:02:30 2015 +0300
----------------------------------------------------------------------
.../nosql/mongodb/MongoDBClientSupport.java | 32 ++++++++++++++++----
1 file changed, 26 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/87be9225/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBClientSupport.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBClientSupport.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBClientSupport.java
index 3fadd4d..c0ec6e7 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBClientSupport.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBClientSupport.java
@@ -22,7 +22,6 @@ import java.net.UnknownHostException;
import java.util.concurrent.Callable;
import org.apache.brooklyn.core.location.access.BrooklynAccessUtils;
-import org.apache.brooklyn.util.exceptions.ReferenceWithError;
import org.apache.brooklyn.util.repeat.Repeater;
import org.apache.brooklyn.util.time.Duration;
import org.bson.BSONObject;
@@ -59,6 +58,20 @@ public class MongoDBClientSupport {
private String authenticationDatabase;
private MongoClient client() {
+ return baseClient(connectionOptions);
+ }
+
+ private MongoClient fastClient() {
+ MongoClientOptions fastConnectionOptions = MongoClientOptions.builder()
+ .connectTimeout(1000 * 10)
+ .maxWaitTime(1000 * 10)
+ .serverSelectionTimeout(1000 * 10)
+ .build();
+
+ return baseClient(fastConnectionOptions);
+ }
+
+ private MongoClient baseClient(MongoClientOptions connectionOptions) {
if (usesAuthentication) {
MongoCredential credential = MongoCredential.createMongoCRCredential(username, authenticationDatabase, password.toCharArray());
return new MongoClient(address, ImmutableList.of(credential), connectionOptions);
@@ -125,6 +138,7 @@ public class MongoDBClientSupport {
try {
final DB db = client.getDB(database);
final CommandResult[] status = new CommandResult[1];
+
// The mongoDB client can occasionally fail to connect. Try up to 5 times to run the command
boolean commandResult = Repeater.create().backoff(Duration.ONE_SECOND, 1.5, null).limitIterationsTo(5)
.until(new Callable<Boolean>() {
@@ -134,7 +148,7 @@ public class MongoDBClientSupport {
status[0] = db.command(command);
return true;
} catch (Exception e) {
- LOG.warn("Command " + command + " on " + getServerAddress() + " failed", e);
+ LOG.warn("Command " + command + " on " + address.getHost() + " failed", e);
return false;
}
}
@@ -173,13 +187,19 @@ public class MongoDBClientSupport {
}
public boolean ping() {
- DBObject ping = new BasicDBObject("ping", "1");
+ MongoClient client = fastClient();
+ DBObject command = new BasicDBObject("ping", "1");
+ final DB db = client.getDB("admin");
+
try {
- runDBCommand("admin", ping);
+ CommandResult status = db.command(command);
+ return status.ok();
} catch (MongoException e) {
- return false;
+ LOG.warn("Pinging server {} failed with {}", address.getHost(), e);
+ } finally {
+ client.close();
}
- return true;
+ return false;
}
public boolean initializeReplicaSet(String replicaSetName, Integer id) {
[2/2] incubator-brooklyn git commit: This closes #956
Posted by sj...@apache.org.
This closes #956
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/32346b80
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/32346b80
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/32346b80
Branch: refs/heads/master
Commit: 32346b80b6b3df6f756fc979e325d979fd6343f5
Parents: 0c3e7ea 87be922
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Thu Oct 15 13:54:26 2015 +0100
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Thu Oct 15 13:54:26 2015 +0100
----------------------------------------------------------------------
.../nosql/mongodb/MongoDBClientSupport.java | 32 ++++++++++++++++----
1 file changed, 26 insertions(+), 6 deletions(-)
----------------------------------------------------------------------