Explorar o código

AMBARI-1501. Nagios alerts do not update automatically. (yusaku)

git-svn-id: https://svn.apache.org/repos/asf/incubator/ambari/trunk@1451333 13f79535-47bb-0310-9956-ffa450edef68
Yusaku Sako %!s(int64=12) %!d(string=hai) anos
pai
achega
7fc54e328e

+ 10 - 0
ambari-web/app/controllers/global/cluster_controller.js

@@ -228,6 +228,16 @@ App.ClusterController = Em.Controller.extend({
     return true;
   },
 
+  /**
+   * Run <code>loadUpdatedStatus</code> with delay
+   * @param delay
+   */
+  loadUpdatedStatusDelayed: function(delay){
+    setTimeout(function(){
+      App.updater.immediateRun('loadUpdatedStatus');
+    }, delay);
+  },
+
   /**
    * Start polling, when <code>isWorking</code> become true
    */

+ 23 - 0
ambari-web/app/utils/updater.js

@@ -45,6 +45,14 @@ function update(obj, name, isWorking){
   return true;
 };
 
+function rerun(name){
+  var state = states[name];
+  if(state){
+    clearTimeout(state.timeout);
+    state.func();
+  }
+};
+
 App.updater = {
 
   /**
@@ -95,6 +103,21 @@ App.updater = {
    */
   run: function(obj, name, isWorking){
     return update(obj, name, isWorking);
+  },
+
+  /**
+   * Immediate run function, which is periodically running using <code>run</code> method
+   * Example:
+   *    App.updater.run(obj, 'clickIt');
+   *    App.updater.immediateRun('clickIt');
+   *
+   * <code>clickIt</code> will be executed immediately and proceed executing periodically
+   *
+   * @param name Method name, which was used as a parameter in <code>run</code> method
+   * @return {*}
+   */
+  immediateRun: function(name){
+    return rerun(name);
   }
 
 }