You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/07/17 10:28:02 UTC

incubator-ignite git commit: GG-10576 Start Visor in client mode.

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-gg-10576 [created] 34f30746f


GG-10576 Start Visor in client mode.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/34f30746
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/34f30746
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/34f30746

Branch: refs/heads/ignite-gg-10576
Commit: 34f30746f48f1e3593b5cad8cf0499cbd7a753eb
Parents: 44043fa
Author: AKuznetsov <ak...@gridgain.com>
Authored: Fri Jul 17 15:27:54 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Fri Jul 17 15:27:54 2015 +0700

----------------------------------------------------------------------
 .../ignite/internal/visor/util/VisorTaskUtils.java     |  9 +++++++++
 .../ignite/visor/commands/open/VisorOpenCommand.scala  | 13 +++++++++++++
 2 files changed, 22 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/34f30746/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java
index 6636a08..d98fc09 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/util/VisorTaskUtils.java
@@ -871,4 +871,13 @@ public class VisorTaskUtils {
 
         return bos.toByteArray();
     }
+
+    /**
+     *
+     * @param msg Exception message.
+     * @return {@code true} if node failed to join grid.
+     */
+    public static boolean joinTimedOut(String msg) {
+        return msg.startsWith("Join process timed out.");
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/34f30746/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala
index 632a96b..2f20cc4 100644
--- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala
+++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala
@@ -25,9 +25,13 @@ import org.apache.ignite.internal.IgniteComponentType._
 import org.apache.ignite.internal.IgniteEx
 import org.apache.ignite.internal.util.scala.impl
 import org.apache.ignite.internal.util.spring.IgniteSpringHelper
+import org.apache.ignite.internal.util.typedef.X
 import org.apache.ignite.internal.util.{IgniteUtils => U}
+import org.apache.ignite.internal.visor.util.VisorTaskUtils._
 import org.apache.ignite.logger.NullLogger
+import org.apache.ignite.spi.IgniteSpiException
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi
 import org.apache.ignite.visor.commands.common.{VisorConsoleCommand, VisorTextTable}
 import org.apache.ignite.visor.visor._
 import org.apache.ignite.visor.{VisorTag, visor}
@@ -230,6 +234,10 @@ class VisorOpenCommand extends VisorConsoleCommand {
 
         val shutdownHook = IgniteSystemProperties.getString(IGNITE_NO_SHUTDOWN_HOOK, "false")
 
+        // Make sure visor starts in client mode.
+        cfg.setClientMode(true)
+        cfg.getDiscoverySpi.asInstanceOf[TcpDiscoverySpi].setJoinTimeout(10000)
+
         // Make sure Visor console starts as daemon node.
         Ignition.setDaemon(true)
 
@@ -255,6 +263,11 @@ class VisorOpenCommand extends VisorConsoleCommand {
             catch {
                 case _: IllegalStateException =>
                     throw new IgniteException("Named grid unavailable: " + startedGridName)
+                case e: Throwable =>
+                    if (X.hasCause(e, classOf[IgniteSpiException]) && joinTimedOut(X.cause(e, classOf[IgniteSpiException]).getMessage))
+                        throw new IgniteException("Visor console failed to connect to any of server nodes", e)
+                    else
+                        throw e
             }
 
         visor.open(startedGridName, cfgPath)