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(-)
----------------------------------------------------------------------