You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/12/11 07:49:40 UTC

[4/6] ignite git commit: IGNITE-6999 Visor CMD: Added support for "-quiet" option in batch mode.

IGNITE-6999 Visor CMD: Added support for "-quiet" option in batch mode.


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

Branch: refs/heads/ignite-zk
Commit: 1e8b5501ee9fde61f979c104b4d271a1a458eb1d
Parents: 93e133c
Author: vsisko <vs...@gridgain.com>
Authored: Sun Dec 10 20:13:05 2017 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Sun Dec 10 20:13:05 2017 +0700

----------------------------------------------------------------------
 .../ignite/visor/commands/VisorConsole.scala    | 25 ++++++++------
 .../visor/commands/open/VisorOpenCommand.scala  | 34 +++++++++++++-------
 .../scala/org/apache/ignite/visor/visor.scala   | 25 ++++++++------
 3 files changed, 54 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/1e8b5501/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/VisorConsole.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/VisorConsole.scala b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/VisorConsole.scala
index d53a0d5..ce8b313 100644
--- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/VisorConsole.scala
+++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/VisorConsole.scala
@@ -84,7 +84,7 @@ class VisorConsole {
 
         if (hasArgFlag("?", argLst) || hasArgFlag("help", argLst)) {
             println("Usage:")
-            println(s"    $progName [? | -help]|[{-v}{-np} {-cfg=<path>}]|[{-b=<path>} {-e=command1;command2;...}]")
+            println(s"    $progName [? | -help]|[{-v}{-np} {-cfg=<path>}]|[{-b=<path>} {-e=command1;command2;...} -quiet]")
             println("    Where:")
             println("        ?, /help, -help      - show this message.")
             println("        -v                   - verbose mode (quiet by default).")
@@ -93,6 +93,7 @@ class VisorConsole {
             println("        -b=<path>            - batch mode with file.")
             println("        -e=cmd1;cmd2;...     - batch mode with commands.")
             println("        -nq                  - batch mode will not quit after execution (useful for alerts monitoring).")
+            println("        -quiet               - batch mode will not print inform message and node log.")
 
             visor.quit()
         }
@@ -100,15 +101,19 @@ class VisorConsole {
         argLst
     }
 
-    protected def buildReader(argLst: ArgList) = {
+    protected def buildReader(argLst: ArgList): ConsoleReader = {
         val cfgFile = argValue("cfg", argLst)
         val batchFile = argValue("b", argLst)
         val batchCommand = argValue("e", argLst)
         val noBatchQuit = hasArgName("nq", argLst)
+        val quiet = hasArgName("quiet", argLst)
 
         if (noBatchQuit && batchFile.isEmpty && batchCommand.isEmpty)
             visor.warn("Option \"-nq\" will be ignored because batch mode options \"-b\" or \"-e\" were not specified.")
 
+        if (quiet && batchFile.isEmpty && batchCommand.isEmpty)
+            visor.warn("Option \"-quiet\" will be ignored because batch mode options \"-b\" or \"-e\" were not specified.")
+
         cfgFile.foreach(cfg => {
             if (cfg.trim.isEmpty) {
                 visor.warn("Expected path to configuration after \"-cfg\" option.")
@@ -153,6 +158,7 @@ class VisorConsole {
         val inputStream = batchStream match {
             case Some(cmd) =>
                 visor.batchMode = true
+                visor.quiet = quiet
 
                 val script = if (noBatchQuit) cmd else cmd + "\nquit\n"
 
@@ -179,7 +185,8 @@ class VisorConsole {
     }
 
     protected def mainLoop(reader: ConsoleReader) {
-        welcomeMessage()
+        if (!visor.quiet)
+            welcomeMessage()
 
         var ok = true
 
@@ -194,7 +201,7 @@ class VisorConsole {
         val buf = new StringBuilder
 
         while (ok) {
-            line = reader.readLine("visor> ")
+            line = reader.readLine(if (visor.quiet) null else "visor> ")
 
             ok = line != null
 
@@ -253,11 +260,11 @@ class VisorConsole {
      * Print banner, hint message on start.
      */
     protected def welcomeMessage() {
-        println("___    _________________________ ________" +  NL +
-                "__ |  / /____  _/__  ___/__  __ \\___  __ \\" +  NL +
-                "__ | / /  __  /  _____ \\ _  / / /__  /_/ /" +  NL +
-                "__ |/ /  __/ /   ____/ / / /_/ / _  _, _/" +  NL +
-                "_____/   /___/   /____/  \\____/  /_/ |_|" +  NL +
+        println("___    _________________________ ________" + NL +
+                "__ |  / /____  _/__  ___/__  __ \\___  __ \\" + NL +
+                "__ | / /  __  /  _____ \\ _  / / /__  /_/ /" + NL +
+                "__ |/ /  __/ /   ____/ / / /_/ / _  _, _/" + NL +
+                "_____/   /___/   /____/  \\____/  /_/ |_|" + NL +
                 NL +
                 "ADMIN CONSOLE" + NL +
                 copyright())

http://git-wip-us.apache.org/repos/asf/ignite/blob/1e8b5501/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 1cfbde4..949aa00 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
@@ -19,7 +19,8 @@
 
 package org.apache.ignite.visor.commands.open
 
-import java.util.logging.{ConsoleHandler, Logger}
+import java.net.URL
+import java.util.logging.{ConsoleHandler, Level, Logger}
 
 import org.apache.ignite.IgniteSystemProperties._
 import org.apache.ignite.configuration.IgniteConfiguration
@@ -28,14 +29,13 @@ 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.{IgniteUtils => U}
+import org.apache.ignite.logger.NullLogger
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi
 import org.apache.ignite.visor.commands.common.{VisorConsoleCommand, VisorTextTable}
 import org.apache.ignite.visor.visor._
 import org.apache.ignite.visor.{VisorTag, visor}
 import org.apache.ignite.{IgniteException, IgniteSystemProperties, Ignition}
 
-import java.net.URL
-
 import scala.language.{implicitConversions, reflectiveCalls}
 
 /**
@@ -134,7 +134,15 @@ class VisorOpenCommand extends VisorConsoleCommand {
 
                 // Add no-op logger to remove no-appender warning.
                 val log4jTup =
-                    if (classOf[Ignition].getClassLoader.getResource("org/apache/log4j/Appender.class") != null)
+                    if (visor.quiet) {
+                        val springLog = Logger.getLogger("org.springframework")
+
+                        if (springLog != null)
+                            springLog.setLevel(Level.WARNING)
+
+                        null
+                    }
+                    else if (classOf[Ignition].getClassLoader.getResource("org/apache/log4j/Appender.class") != null)
                         U.addLog4jNoOpLogger()
                     else
                         null
@@ -147,7 +155,7 @@ class VisorOpenCommand extends VisorConsoleCommand {
                         spring.loadConfigurations(url, "cacheConfiguration", "fileSystemConfiguration",
                             "lifecycleBeans", "indexingSpi").get1()
                     finally {
-                        if (log4jTup != null)
+                        if (log4jTup != null && !visor.quiet)
                             U.removeLog4jNoOpLogger(log4jTup)
                     }
 
@@ -159,12 +167,16 @@ class VisorOpenCommand extends VisorConsoleCommand {
 
                 val cfg = cfgs.iterator().next()
 
-                if (log4jTup != null)
-                    System.setProperty(IgniteSystemProperties.IGNITE_CONSOLE_APPENDER, "false")
-                else
-                    Logger.getGlobal.getHandlers.foreach({
-                        case handler: ConsoleHandler => Logger.getGlobal.removeHandler(handler)
-                    })
+                if (visor.quiet)
+                    cfg.setGridLogger(new NullLogger)
+                else {
+                    if (log4jTup != null)
+                        System.setProperty(IgniteSystemProperties.IGNITE_CONSOLE_APPENDER, "false")
+                    else
+                        Logger.getGlobal.getHandlers.foreach({
+                            case handler: ConsoleHandler => Logger.getGlobal.removeHandler(handler)
+                        })
+                }
 
                 // Setting up 'Config URL' for properly print in console.
                 System.setProperty(IgniteSystemProperties.IGNITE_CONFIG_URL, url.getPath)

http://git-wip-us.apache.org/repos/asf/ignite/blob/1e8b5501/modules/visor-console/src/main/scala/org/apache/ignite/visor/visor.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/main/scala/org/apache/ignite/visor/visor.scala b/modules/visor-console/src/main/scala/org/apache/ignite/visor/visor.scala
index 28c4301..069e50f 100644
--- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/visor.scala
+++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/visor.scala
@@ -240,6 +240,9 @@ object visor extends VisorTag {
 
     var batchMode: Boolean = false
 
+    /** Quiet mode to disable node log and information messages output. */
+    var quiet: Boolean = false
+
     def reader(reader: ConsoleReader) {
         assert(reader != null)
 
@@ -1658,20 +1661,22 @@ object visor extends VisorTag {
 
         nl()
 
-        val t = VisorTextTable()
+        if (!visor.quiet) {
+            val t = VisorTextTable()
 
-        // Print advise.
-        println("Some useful commands:")
+            // Print advise.
+            println("Some useful commands:")
 
-        t += ("Type 'top'", "to see full topology.")
-        t += ("Type 'node'", "to see node statistics.")
-        t += ("Type 'cache'", "to see cache statistics.")
-        t += ("Type 'tasks'", "to see tasks statistics.")
-        t += ("Type 'config'", "to see node configuration.")
+            t += ("Type 'top'", "to see full topology.")
+            t += ("Type 'node'", "to see node statistics.")
+            t += ("Type 'cache'", "to see cache statistics.")
+            t += ("Type 'tasks'", "to see tasks statistics.")
+            t += ("Type 'config'", "to see node configuration.")
 
-        t.render()
+            t.render()
 
-        println("\nType 'help' to get help.\n")
+            println("\nType 'help' to get help.\n")
+        }
 
         status()
     }