浏览代码

AMBARI-2709. HBase average load shows up as recurring decimal. (Oleg Nechiporenko via srimanth)

Srimanth Gunturi 12 年之前
父节点
当前提交
2b116b39f4

+ 1 - 0
ambari-web/app/assets/test/tests.js

@@ -46,6 +46,7 @@ require('test/mappers/dataset_mapper_test');
 require('test/mappers/hosts_mapper_test');
 require('test/mappers/jobs_mapper_test');
 require('test/mappers/runs_mapper_test');
+require('test/mappers/service_mapper_test');
 require('test/mappers/status_mapper_test');
 require('test/mappers/users_mapper_test');
 require('test/utils/config_test');

+ 1 - 1
ambari-web/app/mappers/service_mapper.js

@@ -528,6 +528,7 @@ App.servicesMapper = App.QuickDataMapper.create({
     });
     // Map
     finalJson = this.parseIt(item, finalConfig);
+    finalJson.average_load = parseFloat(finalJson.average_load).toFixed(2);
     finalJson.quick_links = [13, 14, 15, 16, 17, 18];
     return finalJson;
   },
@@ -540,7 +541,6 @@ App.servicesMapper = App.QuickDataMapper.create({
   flumeMapper: function (item) {
     var finalConfig = jQuery.extend({}, this.config);
     var finalJson = this.parseIt(item, finalConfig);
-    ;
     item.components.forEach(function (component) {
       if (component.ServiceComponentInfo && component.ServiceComponentInfo.component_name == "FLUME_SERVER") {
         if (!finalJson.nodes) {

+ 88 - 0
ambari-web/test/mappers/service_mapper_test.js

@@ -0,0 +1,88 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var Ember = require('ember');
+var App = require('app');
+
+require('utils/helper');
+require('mappers/server_data_mapper');
+require('mappers/service_mapper');
+
+describe('App.servicesMapper', function () {
+
+  describe('#hbaseMapper', function() {
+
+    it ('Round Average Load', function() {
+      var tests = [
+        {
+          components: [
+            {
+                ServiceComponentInfo: {
+                  AverageLoad: 1.23456789,
+                  component_name: "HBASE_MASTER",
+                  RegionsInTransition : [ ]
+                }
+              }
+          ],
+          e: '1.23'
+        },
+        {
+          components: [
+            {
+                ServiceComponentInfo: {
+                  AverageLoad: 1.00,
+                  component_name: "HBASE_MASTER",
+                  RegionsInTransition : [ ]
+                }
+              }
+          ],
+          e: '1.00'
+        },
+        {
+          components: [
+            {
+                ServiceComponentInfo: {
+                  AverageLoad: 1,
+                  component_name: "HBASE_MASTER",
+                  RegionsInTransition : [ ]
+                }
+              }
+          ],
+          e: '1.00'
+        },
+        {
+          components: [
+            {
+                ServiceComponentInfo: {
+                  AverageLoad: 1.2,
+                  component_name: "HBASE_MASTER",
+                  RegionsInTransition : [ ]
+                }
+              }
+          ],
+          e: '1.20'
+        }
+      ];
+      tests.forEach(function(test) {
+        var result = App.servicesMapper.hbaseMapper(test);
+        expect(result.average_load).to.equal(test.e);
+      });
+    });
+  });
+
+});