IGNITE-6304 Fixed script execution after throttling interval. (cherry picked from commit d1f178f)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/668e29fa Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/668e29fa Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/668e29fa Branch: refs/heads/ignite-gg-12822 Commit: 668e29fa2766ad5f0fda829e027b777407d9ca4f Parents: 6318c1a Author: vsisko <[email protected]> Authored: Wed Sep 20 17:27:14 2017 +0700 Committer: Alexey Kuznetsov <[email protected]> Committed: Wed Sep 20 17:28:35 2017 +0700 ---------------------------------------------------------------------- .../commands/alert/VisorAlertCommand.scala | 29 ++++++++++---------- 1 file changed, 15 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/668e29fa/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/alert/VisorAlertCommand.scala ---------------------------------------------------------------------- diff --git a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/alert/VisorAlertCommand.scala b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/alert/VisorAlertCommand.scala index fb60a1e..254dc2d 100644 --- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/alert/VisorAlertCommand.scala +++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/alert/VisorAlertCommand.scala @@ -85,7 +85,7 @@ import scala.util.control.Breaks._ * 2) Alert condition as string. * 3, ...) Values of alert conditions ordered as in alert command. * -i - * Configure alert notification minimal throttling interval in seconds. Default is 60 seconds. + * Configure alert notification minimal throttling interval in seconds. Default is 0 seconds. * * -<metric> * This defines a mnemonic for the metric that will be measured: @@ -267,7 +267,7 @@ class VisorAlertCommand extends VisorConsoleCommand { var script: Option[String] = None val conditions = mutable.ArrayBuffer.empty[VisorAlertCondition] var freq = DFLT_FREQ - var interval = DFLT_FREQ + var interval = 0L try { args.foreach(arg => { @@ -653,25 +653,26 @@ class VisorAlertCommand extends VisorConsoleCommand { private def executeAlertScript(alert: VisorAlert, node: ClusterNode, values: Seq[String]) { val n = alert.notification + if (n.notified && System.currentTimeMillis() - n.notifiedTime < n.throttleInterval) + return + try { n.script.foreach(script => { - if (!n.notified && (n.notifiedTime < 0 || (System.currentTimeMillis() - n.notifiedTime) > n.throttleInterval)) { - val scriptFile = new File(script) + val scriptFile = new File(script) - if (!scriptFile.exists()) - throw new FileNotFoundException("Script/executable not found: " + script) + if (!scriptFile.exists()) + throw new FileNotFoundException("Script/executable not found: " + script) - val scriptFolder = scriptFile.getParentFile + val scriptFolder = scriptFile.getParentFile - val p = Process(Seq(script, alert.name.getOrElse(alert.id), alert.conditionSpec) ++ values, - Some(scriptFolder)) + val p = Process(Seq(script, alert.name.getOrElse(alert.id), alert.conditionSpec) ++ values, + Some(scriptFolder)) - p.run(ProcessLogger((fn: String) => {})) + p.run(ProcessLogger((fn: String) => {})) - n.notifiedTime = System.currentTimeMillis() + n.notifiedTime = System.currentTimeMillis() - n.notified = true - } + n.notified = true }) } catch { @@ -865,7 +866,7 @@ object VisorAlertCommand { " 2) Alert condition as string.", " 3, ...) Values of alert conditions ordered as in alert command." ), - "-i" -> "Configure alert notification minimal throttling interval in seconds. Default is 60 seconds.", + "-i" -> "Configure alert notification minimal throttling interval in seconds. Default is 0 seconds.", "-<metric>" -> Seq( "This defines a mnemonic for the metric that will be measured:", "",
