You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by at...@apache.org on 2015/06/09 17:38:26 UTC

ambari git commit: AMBARI-11812 Perf cluster: Prevent make a call for service metric when it's already called. (atkach)

Repository: ambari
Updated Branches:
  refs/heads/trunk 7452077a3 -> 97bf29a35


AMBARI-11812 Perf cluster: Prevent make a call for service metric when it's already called. (atkach)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/97bf29a3
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/97bf29a3
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/97bf29a3

Branch: refs/heads/trunk
Commit: 97bf29a3533623422a1d3c8e746e73e54f122924
Parents: 7452077
Author: Andrii Tkach <at...@hortonworks.com>
Authored: Tue Jun 9 16:58:58 2015 +0300
Committer: Andrii Tkach <at...@hortonworks.com>
Committed: Tue Jun 9 18:38:08 2015 +0300

----------------------------------------------------------------------
 .../app/controllers/global/update_controller.js | 26 +++++++++++++++-----
 ambari-web/app/routes/main.js                   |  2 +-
 2 files changed, 21 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/97bf29a3/ambari-web/app/controllers/global/update_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/global/update_controller.js b/ambari-web/app/controllers/global/update_controller.js
index af7b69e..7246c37 100644
--- a/ambari-web/app/controllers/global/update_controller.js
+++ b/ambari-web/app/controllers/global/update_controller.js
@@ -41,6 +41,14 @@ App.UpdateController = Em.Controller.extend({
 
   paginationKeys: ['page_size', 'from'],
 
+  /**
+   * map which track status of requests, whether it's running or completed
+   * @type {object}
+   */
+  requestsRunningStatus: {
+    "updateServiceMetric": false
+  },
+
   getUrl: function (testUrl, url) {
     return (App.get('testMode')) ? testUrl : App.apiPrefix + '/clusters/' + this.get('clusterName') + url;
   },
@@ -362,6 +370,7 @@ App.UpdateController = Em.Controller.extend({
     var isATSPresent = App.StackServiceComponent.find().findProperty('componentName','APP_TIMELINE_SERVER');
 
     var conditionalFields = this.getConditionalFields(),
+      requestsRunningStatus = this.get('requestsRunningStatus'),
       conditionalFieldsString = conditionalFields.length > 0 ? ',' + conditionalFields.join(',') : '',
       testUrl = '/data/dashboard/HDP2/master_components.json',
       isFlumeInstalled = App.cache['services'].mapProperty('ServiceInfo.service_name').contains('FLUME'),
@@ -405,12 +414,17 @@ App.UpdateController = Em.Controller.extend({
     callback = callback || function () {
       self.set('isUpdated', true);
     };
-    App.HttpClient.get(servicesUrl, App.serviceMetricsMapper, {
-      complete: function () {
-        App.set('router.mainServiceItemController.isServicesInfoLoaded', App.get('router.clusterController.isLoaded'));
-        callback();
-      }
-    });
+
+    if (!requestsRunningStatus["updateServiceMetric"]) {
+      requestsRunningStatus["updateServiceMetric"] = true;
+      App.HttpClient.get(servicesUrl, App.serviceMetricsMapper, {
+        complete: function () {
+          App.set('router.mainServiceItemController.isServicesInfoLoaded', App.get('router.clusterController.isLoaded'));
+          callback();
+          requestsRunningStatus["updateServiceMetric"] = false;
+        }
+      });
+    }
   },
   /**
    * construct conditional parameters of query, depending on which services are installed

http://git-wip-us.apache.org/repos/asf/ambari/blob/97bf29a3/ambari-web/app/routes/main.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/main.js b/ambari-web/app/routes/main.js
index 53482b6..78d8243 100644
--- a/ambari-web/app/routes/main.js
+++ b/ambari-web/app/routes/main.js
@@ -636,7 +636,7 @@ module.exports = Em.Route.extend(App.RouterRedirections, {
         route: '/summary',
         connectOutlets: function (router, context) {
           var item = router.get('mainServiceItemController.content');
-          router.get('updateController').updateServiceMetric(Em.K);
+          if (router.get('clusterController.isLoaded')) router.get('updateController').updateServiceMetric(Em.K);
           //if service is not existed then route to default service
           if (item.get('isLoaded')) {
             router.get('mainServiceItemController').connectOutlet('mainServiceInfoSummary', item);