Repository: ambari
Updated Branches:
  refs/heads/trunk 45a29900b -> 6305fb6ab


http://git-wip-us.apache.org/repos/asf/ambari/blob/6305fb6a/ambari-web/app/templates/main/service/services/yarn.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/service/services/yarn.hbs 
b/ambari-web/app/templates/main/service/services/yarn.hbs
index 32aad5d..aa8ee48 100644
--- a/ambari-web/app/templates/main/service/services/yarn.hbs
+++ b/ambari-web/app/templates/main/service/services/yarn.hbs
@@ -17,95 +17,123 @@
 }}
 
 <div class="row">
-{{! left column }}
-<div class="col-md-6">
-  {{view view.dashboardMasterComponentView}}
+  {{! Component Section }}
+  <div class="col-md-12 component-summary">
+    <div class="col-md-2">{{t 
dashboard.services.hdfs.summary.components}}</div>
+    <div class="col-md-10">
+      {{view view.dashboardMasterComponentView}}
 
-  {{! NodeManagers }}
-  {{#if view.isNodeManagerCreated}}
-    <div {{bindAttr class=":row :component 
view.nodeManagerComponent.componentName"}}>
-      <div class="col-md-6 summary-label">
-        <a href="#" {{action filterHosts view.nodeManagerComponent}}>{{t 
dashboard.services.yarn.nodeManagers}}</a>
+      {{! NodeManagers }}
+      {{#if view.isNodeManagerCreated}}
+        <div {{bindAttr class=":row :component :col-md-3 
view.nodeManagerComponent.componentName"}}>
+          <div class="summary-value main-info">
+            {{#if App.router.clusterController.isServiceContentFullyLoaded}}
+              {{#view App.ComponentLiveTextView 
liveComponentsBinding="view.service.nodeManagersStarted" 
totalComponentsBinding="view.service.nodeManagersTotal" tagName="span"}}
+                {{view.liveComponents}}/{{view.totalComponents}}
+              {{/view}}
+              {{t common.started}}
+            {{else}}
+              {{t common.loading.eclipses}}
+            {{/if}}
+          </div>
+          <div class="summary-label">
+            <a href="#" {{action filterHosts view.nodeManagerComponent}}>{{t 
dashboard.services.yarn.nodeManagers}}</a>
+          </div>
+        </div>
+      {{/if}}
+      {{! YARN Clients }}
+      <div {{bindAttr class=":row :component :col-md-3 
view.yarnClientComponent.componentName"}}>
+        <div class="summary-value main-info">
+          <span>{{view.service.installedClients}} {{t common.installed}} 
</span>
+        </div>
+        <div class="summary-label">
+          <a {{action filterHosts view.yarnClientComponent}} 
href="javascript:void(null)">
+            {{pluralize view.service.installedClients 
singular="t:dashboard.services.yarn.client" 
plural="t:dashboard.services.yarn.clients"}}
+          </a>
+        </div>
       </div>
-      <div class="col-md-6 summary-value">
-        {{#if App.router.clusterController.isServiceContentFullyLoaded}}
-          {{#view App.ComponentLiveTextView 
liveComponentsBinding="view.service.nodeManagersStarted" 
totalComponentsBinding="view.service.nodeManagersTotal" tagName="span"}}
-            {{view.liveComponents}}/{{view.totalComponents}}
-          {{/view}}
-          {{t common.started}}
-        {{else}}
-          {{t common.loading.eclipses}}
-        {{/if}}
+      {{! ResourceManager Uptime }}
+      <div class="row col-md-3 resourcemanager-uptime">
+        <div class="summary-value main-info">{{view.nodeUptime}}</div>
+        <div class="summary-label">{{t 
dashboard.services.yarn.resourceManager.uptime}}</div>
+      </div>
+      {{! NodeManagers status }}
+      <div class="row col-md-3 nodemanager-status">
+        <div class="summary-value">
+          <div class="main-info">
+            <span {{translateAttr 
data-original-title="dashboard.services.yarn.nodeManagers.status.tooltip.active"}}
+                    rel="tooltip">
+              {{view._nmActive}} </span> /
+            <span {{translateAttr 
data-original-title="dashboard.services.yarn.nodeManagers.status.tooltip.lost"}}
+                    rel="tooltip">
+              {{view._nmLost}} </span> /
+            <span {{translateAttr 
data-original-title="dashboard.services.yarn.nodeManagers.status.tooltip.unhealthy"}}
+                    rel="tooltip">
+              {{view._nmUnhealthy}} </span> /
+            <span {{translateAttr 
data-original-title="dashboard.services.yarn.nodeManagers.status.tooltip.rebooted"}}
+                    rel="tooltip">
+              {{view._nmRebooted}} </span> /
+            <span {{translateAttr 
data-original-title="dashboard.services.yarn.nodeManagers.status.tooltip.decommissioned"}}
+                    rel="tooltip">
+              {{view._nmDecom}} </span>
+          </div>
+          <div class="info-desc">
+            <span {{t dashboard.services.yarn.nodeManagers.status.active}} 
</span> /
+            <span {{t dashboard.services.yarn.nodeManagers.status.lost}} 
</span> /
+            <span {{t dashboard.services.yarn.nodeManagers.status.unhealthy}} 
</span> /
+            <span {{t dashboard.services.yarn.nodeManagers.status.rebooted}} 
</span> /
+            <span {{t 
dashboard.services.yarn.nodeManagers.status.decommissioned}} </span>
+          </div>
+        </div>
+        <div class="summary-label">{{t 
dashboard.services.yarn.nodeManagers.status}}</div>
+      </div>
+      {{! ResourceManager Heap }}
+      <div class="row col-md-3 resourcemanager-heap">
+        <div class="summary-value main-info">{{view.nodeHeap}}</div>
+        <div class="summary-label">{{t 
dashboard.services.resourceManager.nodes.heap}}</div>
       </div>
     </div>
-  {{/if}}
-  {{! NodeManagers status }}
-  <div class="row nodemanager-status">
-    <div class="col-md-6 summary-label">{{t 
dashboard.services.yarn.nodeManagers.status}}</div>
-    <div class="col-md-6 summary-value">
-      <span {{translateAttr 
data-original-title="dashboard.services.yarn.nodeManagers.status.tooltip.active"}}
 rel="tooltip">
-      {{view._nmActive}} {{t 
dashboard.services.yarn.nodeManagers.status.active}} </span> /
-    <span {{translateAttr 
data-original-title="dashboard.services.yarn.nodeManagers.status.tooltip.lost"}}
 rel="tooltip">
-      {{view._nmLost}} {{t dashboard.services.yarn.nodeManagers.status.lost}} 
</span> /
-    <span {{translateAttr 
data-original-title="dashboard.services.yarn.nodeManagers.status.tooltip.unhealthy"}}
 rel="tooltip">
-      {{view._nmUnhealthy}} {{t 
dashboard.services.yarn.nodeManagers.status.unhealthy}} </span> /
-    <span {{translateAttr 
data-original-title="dashboard.services.yarn.nodeManagers.status.tooltip.rebooted"}}
 rel="tooltip">
-      {{view._nmRebooted}} {{t 
dashboard.services.yarn.nodeManagers.status.rebooted}} </span> /
-    <span {{translateAttr 
data-original-title="dashboard.services.yarn.nodeManagers.status.tooltip.decommissioned"}}
 rel="tooltip">
-      {{view._nmDecom}} {{t 
dashboard.services.yarn.nodeManagers.status.decommissioned}} </span>
-    </div>
-  </div>
-  {{! YARN Clients }}
-  <div {{bindAttr class=":row :component 
view.yarnClientComponent.componentName"}}>
-    <div class="col-md-6 summary-label">
-      <a {{action filterHosts view.yarnClientComponent}} 
href="javascript:void(null)">
-        {{pluralize view.service.installedClients 
singular="t:dashboard.services.yarn.client" 
plural="t:dashboard.services.yarn.clients"}}
-      </a>
-    </div>
-    <div class="col-md-6 summary-value">
-      <span class="green-live">{{view.service.installedClients}} </span>
-      {{pluralize view.service.installedClients 
singular="t:dashboard.services.yarn.client" 
plural="t:dashboard.services.yarn.clients"}} {{t common.installed}}
-    </div>
-  </div>
-  {{! ResourceManager Uptime }}
-  <div class="row resourcemanager-uptime">
-    <div class="col-md-6 summary-label">{{t 
dashboard.services.yarn.resourceManager.uptime}}</div>
-    <div class="col-md-6 summary-value">{{view.nodeUptime}}</div>
   </div>
-</div>
-{{! left column end }}
 
-{{! right column }}
-<div class="col-md-6">
-  {{! ResourceManager Heap }}
-  <div class="row resourcemanager-heap">
-    <div class="col-md-6 summary-label">{{t 
dashboard.services.resourceManager.nodes.heap}}</div>
-    <div class="col-md-6 summary-value">{{view.nodeHeap}}</div>
-  </div>
-  {{! Containers }}
-  <div class="row yarn-containers">
-    <div class="col-md-6 summary-label">{{t 
dashboard.services.yarn.containers}}</div>
-    <div class="col-md-6 summary-value">{{view.containers}}</div>
-  </div>
-  {{! Applications }}
-  <div class="row yarn-applications">
-    <div class="col-md-6 summary-label">{{t 
dashboard.services.yarn.apps}}</div>
-    <div class="col-md-6 summary-value">{{view.apps}}</div>
-  </div>
-  {{! Memory }}
-  <div class="row yarn-memory">
-    <div class="col-md-6 summary-label">{{t 
dashboard.services.yarn.memory}}</div>
-    <div class="col-md-6 summary-value">{{view.memory}}</div>
-  </div>
-  {{! Queues }}
-  <div class="row yarn-queues">
-    <div class="col-md-6 summary-label">{{t 
dashboard.services.yarn.queues}}</div>
-    <div class="col-md-6 summary-value">
-        <span rel="queue-tooltip" class="text-tooltip" {{bindAttr 
data-original-title="view.service.queueFormatted" }}>
-          {{view.queues}}
-        </span>
+  {{! Service Metrics Section }}
+  <div class="col-md-12 metrics-summary">
+    <div class="col-md-2">{{t 
dashboard.services.hdfs.summary.service-metrics}}</div>
+    <div class="col-md-10">
+      {{! Containers }}
+      <div class="row col-md-3 yarn-containers">
+        <div class="summary-value">
+          <div class="main-info">{{view.containers}}</div>
+          <div class="info-desc">{{t 
dashboard.services.yarn.containers.msgDesc}}</div>
+        </div>
+        <div class="summary-label">{{t 
dashboard.services.yarn.containers}}</div>
+      </div>
+      {{! Applications }}
+      <div class="row col-md-3 yarn-applications">
+        <div class="summary-value">
+          <div class="main-info">{{view.apps}}</div>
+          <div class="info-desc">{{t 
dashboard.services.yarn.apps.msgDesc}}</div>
+        </div>
+        <div class="summary-label">{{t dashboard.services.yarn.apps}}</div>
+      </div>
+      {{! Memory }}
+      <div class="row col-md-3 yarn-memory">
+        <div class="summary-value">
+          <div class="main-info">{{view.memory}}</div>
+          <div class="info-desc">{{t 
dashboard.services.yarn.memory.msgDesc}}</div>
+        </div>
+        <div class="summary-label">{{t dashboard.services.yarn.memory}}</div>
+      </div>
+      {{! Queues }}
+      <div class="row col-md-3 yarn-queues">
+        <div class="summary-value main-info">
+          <span rel="queue-tooltip"
+                class="text-tooltip" {{bindAttr 
data-original-title="view.service.queueFormatted" }}>
+            {{view.queues}}
+          </span>
+        </div>
+        <div class="summary-label">{{t dashboard.services.yarn.queues}}</div>
+      </div>
     </div>
   </div>
-</div>
-{{! right column end }}
+  {{! right column end }}
 </div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/6305fb6a/ambari-web/app/views/common/quick_view_link_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/quick_view_link_view.js 
b/ambari-web/app/views/common/quick_view_link_view.js
index 47958f4..e39f230 100644
--- a/ambari-web/app/views/common/quick_view_link_view.js
+++ b/ambari-web/app/views/common/quick_view_link_view.js
@@ -39,6 +39,11 @@ App.QuickLinksView = Em.View.extend({
   showQuickLinks: false,
 
   /**
+   * @type {boolean}
+   */
+  showNoLinks: false,
+
+  /**
    * @type {string}
    */
   quickLinksErrorMessage: '',
@@ -211,6 +216,9 @@ App.QuickLinksView = Em.View.extend({
         this.set('requiredSiteNames', 
this.get('requiredSiteNames').pushObjects(sites).uniq());
         this.setQuickLinks();
       }
+    } else {
+      this.set('showNoLinks', true);
+
     }
   },
 
@@ -260,7 +268,11 @@ App.QuickLinksView = Em.View.extend({
     // no need to set quicklinks if
     // 1)current service does not have quick links configured
     // 2)No host component present for the configured quicklinks
-    this.set('showQuickLinks', hasQuickLinks && hasHosts);
+    if(hasQuickLinks && hasHosts) {
+      this.set('showQuickLinks', true);
+    } else {
+      this.set('showNoLinks', true);
+    }
 
     var isMultipleComponentsInLinks = componentNames.uniq().length > 1;
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/6305fb6a/ambari-web/app/views/common/widget/gauge_widget_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/widget/gauge_widget_view.js 
b/ambari-web/app/views/common/widget/gauge_widget_view.js
index 42224fe..e359567 100644
--- a/ambari-web/app/views/common/widget/gauge_widget_view.js
+++ b/ambari-web/app/views/common/widget/gauge_widget_view.js
@@ -60,8 +60,8 @@ App.GaugeWidgetView = Em.View.extend(App.WidgetMixin, {
   }.property('value'),
 
   chartView: App.ChartPieView.extend({
-    stroke: '#D6DDDF',  //light grey
-    innerR: 25,
+    stroke: '#transparent',
+    innerR: 40,
 
     /**
      * since chart widget using percentage values factor equal 100
@@ -105,20 +105,18 @@ App.GaugeWidgetView = Em.View.extend(App.WidgetMixin, {
       var color_orange = App.healthStatusOrange;
       if ((isNaN(threshold1) && isNaN(threshold2)) || (isNaN(threshold1) && 
used <= threshold2) || (isNaN(threshold2) && used <= threshold1) || 
(!isNaN(threshold2) && (threshold1 > threshold2) && (used > threshold1)) || 
(!isNaN(threshold2) && (threshold1 < threshold2) && (used <= threshold1))) {
         this.set('palette', new Rickshaw.Color.Palette({
-          scheme: ['#FFFFFF', color_green].reverse()
+          scheme: ['#DDDDDD', color_green].reverse()
         }));
-        return color_green;
       } else if ((!isNaN(threshold2) && used.isInRange(threshold1, 
threshold2)) || (isNaN(threshold2) && used > threshold1)) {
         this.set('palette', new Rickshaw.Color.Palette({
-          scheme: ['#FFFFFF', color_orange].reverse()
+          scheme: ['#DDDDDD', color_orange].reverse()
         }));
-        return color_orange;
       } else {
         this.set('palette', new Rickshaw.Color.Palette({
-          scheme: ['#FFFFFF', color_red].reverse()
+          scheme: ['#DDDDDD', color_red].reverse()
         }));
-        return color_red;
       }
+      return App.widgetContentColor;
     }.property('parentView.value', 'warningThreshold', 'errorThreshold'),
 
     // refresh text and color when data in model changed

http://git-wip-us.apache.org/repos/asf/ambari/blob/6305fb6a/ambari-web/app/views/main/service/info/summary.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/summary.js 
b/ambari-web/app/views/main/service/info/summary.js
index 75d4ed5..69e339a 100644
--- a/ambari-web/app/views/main/service/info/summary.js
+++ b/ambari-web/app/views/main/service/info/summary.js
@@ -229,6 +229,30 @@ App.MainServiceInfoSummaryView = 
Em.View.extend(App.Persist, App.TimeRangeMixin,
 
   service: null,
 
+  svc: function () {
+    var svc = this.get('controller.content');
+    var svcName = svc.get('serviceName');
+    if (svcName) {
+      switch (svcName.toLowerCase()) {
+        case 'hdfs':
+          svc = App.HDFSService.find().objectAt(0);
+          break;
+        case 'yarn':
+          svc = App.YARNService.find().objectAt(0);
+          break;
+        case 'hbase':
+          svc = App.HBaseService.find().objectAt(0);
+          break;
+        case 'flume':
+          svc = App.FlumeService.find().objectAt(0);
+          break;
+        default:
+          break;
+      }
+    }
+    return svc;
+  }.property('controller.content.serviceName').volatile(),
+
   getServiceModel: function (serviceName) {
     var extended = App.Service.extendedModel[serviceName];
     if (extended) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/6305fb6a/ambari-web/app/views/main/service/service.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/service.js 
b/ambari-web/app/views/main/service/service.js
index f2c8492..41afca3 100644
--- a/ambari-web/app/views/main/service/service.js
+++ b/ambari-web/app/views/main/service/service.js
@@ -113,7 +113,6 @@ App.MainDashboardServiceHealthView = Em.View.extend({
 });
 
 App.ComponentLiveTextView = Em.View.extend({
-  classNameBindings: 
['color:service-summary-component-red-dead:service-summary-component-green-live'],
   liveComponents: null,
   totalComponents: null,
   color: function () {
@@ -173,15 +172,21 @@ App.MainDashboardServiceView = 
Em.View.extend(App.MainDashboardServiceViewWrappe
 });
 
 App.MainDashboardServiceView.reopenClass({
-  formattedHeap: function (i18nKey, heapUsedKey, heapMaxKey) {
+  formattedHeapPercent: function (i18nKey, heapUsedKey, heapMaxKey) {
     return Em.computed(heapUsedKey, heapMaxKey, function () {
       var memUsed = Em.get(this, heapUsedKey);
       var memMax = Em.get(this, heapMaxKey);
       var percent = memMax > 0 ? 100 * memUsed / memMax : 0;
+      return Em.I18n.t(i18nKey).format(percent.toFixed(1));
+    });
+  },
+  formattedHeap: function (i18nKey, heapUsedKey, heapMaxKey) {
+    return Em.computed(heapUsedKey, heapMaxKey, function () {
+      var memUsed = Em.get(this, heapUsedKey);
+      var memMax = Em.get(this, heapMaxKey);
       return Em.I18n.t(i18nKey).format(
         numberUtils.bytesToSize(memUsed, 1, 'parseFloat'),
-        numberUtils.bytesToSize(memMax, 1, 'parseFloat'),
-        percent.toFixed(1));
+        numberUtils.bytesToSize(memMax, 1, 'parseFloat'));
     });
   }
 });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/6305fb6a/ambari-web/app/views/main/service/services/hbase.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/services/hbase.js 
b/ambari-web/app/views/main/service/services/hbase.js
index ddcb18d..fd889a9 100644
--- a/ambari-web/app/views/main/service/services/hbase.js
+++ b/ambari-web/app/views/main/service/services/hbase.js
@@ -58,7 +58,7 @@ App.MainDashboardServiceHbaseView = 
App.MainDashboardServiceView.extend({
   activeMasterTitle: Em.I18n.t('service.hbase.activeMaster'),
 
   masterServerHeapSummary: 
App.MainDashboardServiceView.formattedHeap('dashboard.services.hbase.masterServerHeap.summary',
 'service.heapMemoryUsed', 'service.heapMemoryMax'),
-
+  masterServerHeapSummaryPercent: 
App.MainDashboardServiceView.formattedHeapPercent('dashboard.services.hbase.masterServerHeap.percent',
 'service.heapMemoryUsed', 'service.heapMemoryMax'),
   summaryHeader: function () {
     var avgLoad = this.get('service.averageLoad');
     if (isNaN(avgLoad)) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/6305fb6a/ambari-web/app/views/main/service/services/hdfs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/services/hdfs.js 
b/ambari-web/app/views/main/service/services/hdfs.js
index becb75c..e0580f1 100644
--- a/ambari-web/app/views/main/service/services/hdfs.js
+++ b/ambari-web/app/views/main/service/services/hdfs.js
@@ -28,7 +28,20 @@ function diskPart(i18nKey, totalKey, usedKey) {
     if (percent == "NaN" || percent < 0) {
       percent = Em.I18n.t('services.service.summary.notAvailable') + " ";
     }
-    return text.format(numberUtils.bytesToSize(used, 1, 'parseFloat'), 
numberUtils.bytesToSize(total, 1, 'parseFloat'), percent);
+    return text.format(numberUtils.bytesToSize(used, 1, 'parseFloat'), 
numberUtils.bytesToSize(total, 1, 'parseFloat'));
+  });
+}
+
+function diskPartPercent(i18nKey, totalKey, usedKey) {
+  return Em.computed(totalKey, usedKey, function () {
+    var text = Em.I18n.t(i18nKey);
+    var total = this.get(totalKey);
+    var used = this.get(usedKey);
+    var percent = total > 0 ? ((used * 100) / total).toFixed(2) : 0;
+    if (percent == "NaN" || percent < 0) {
+      percent = Em.I18n.t('services.service.summary.notAvailable') + " ";
+    }
+    return text.format(percent);
   });
 }
 
@@ -113,9 +126,11 @@ App.MainDashboardServiceHdfsView = 
App.MainDashboardServiceView.extend({
     return this.t('services.service.summary.notRunning');
   }.property("service.nameNodeStartTime"),
 
+  nodeHeapPercent: 
App.MainDashboardServiceView.formattedHeapPercent('dashboard.services.hdfs.nodes.heapUsedPercent',
 'service.jvmMemoryHeapUsed', 'service.jvmMemoryHeapMax'),
   nodeHeap: 
App.MainDashboardServiceView.formattedHeap('dashboard.services.hdfs.nodes.heapUsed',
 'service.jvmMemoryHeapUsed', 'service.jvmMemoryHeapMax'),
 
   dfsUsedDisk: diskPart('dashboard.services.hdfs.capacityUsed', 
'service.capacityTotal', 'service.capacityUsed'),
+  dfsUsedDiskPercent: 
diskPartPercent('dashboard.services.hdfs.capacityUsedPercent', 
'service.capacityTotal', 'service.capacityUsed'),
 
   nonDfsUsed: function () {
     var total = this.get('service.capacityTotal');
@@ -125,8 +140,10 @@ App.MainDashboardServiceHdfsView = 
App.MainDashboardServiceView.extend({
   }.property('service.capacityTotal', 'service.capacityRemaining', 
'service.capacityUsed'),
 
   nonDfsUsedDisk: diskPart('dashboard.services.hdfs.capacityUsed', 
'service.capacityTotal', 'nonDfsUsed'),
+  nonDfsUsedDiskPercent: 
diskPartPercent('dashboard.services.hdfs.capacityUsedPercent', 
'service.capacityTotal', 'nonDfsUsed'),
 
   remainingDisk: diskPart('dashboard.services.hdfs.capacityUsed', 
'service.capacityTotal', 'service.capacityRemaining'),
+  remainingDiskPercent: 
diskPartPercent('dashboard.services.hdfs.capacityUsedPercent', 
'service.capacityTotal', 'service.capacityRemaining'),
 
   dataNodeComponent: Em.Object.create({
     componentName: 'DATANODE'

http://git-wip-us.apache.org/repos/asf/ambari/blob/6305fb6a/ambari-web/app/views/main/service/services/yarn.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/services/yarn.js 
b/ambari-web/app/views/main/service/services/yarn.js
index 84ba520..3533585 100644
--- a/ambari-web/app/views/main/service/services/yarn.js
+++ b/ambari-web/app/views/main/service/services/yarn.js
@@ -24,7 +24,8 @@ App.MainDashboardServiceYARNView = 
App.MainDashboardServiceView.extend({
   serviceName: 'YARN',
 
   nodeHeap: 
App.MainDashboardServiceView.formattedHeap('dashboard.services.yarn.nodes.heapUsed',
 'service.jvmMemoryHeapUsed', 'service.jvmMemoryHeapMax'),
-  
+  nodeHeapPercent: 
App.MainDashboardServiceView.formattedHeapPercent('dashboard.services.yarn.nodes.heapUsedPercent',
 'service.jvmMemoryHeapUsed', 'service.jvmMemoryHeapMax'),
+
   nodeManagerComponent: Em.Object.create({
     componentName: 'NODEMANAGER'
   }),

http://git-wip-us.apache.org/repos/asf/ambari/blob/6305fb6a/ambari-web/test/views/common/widget/gauge_widget_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/common/widget/gauge_widget_view_test.js 
b/ambari-web/test/views/common/widget/gauge_widget_view_test.js
index 1967289..2c8ef30 100644
--- a/ambari-web/test/views/common/widget/gauge_widget_view_test.js
+++ b/ambari-web/test/views/common/widget/gauge_widget_view_test.js
@@ -251,7 +251,7 @@ describe('App.GaugeWidgetView', function () {
         view.set('value', test.data.value);
         view.set('content.properties.warning_threshold', 
test.data.warningThreshold);
         view.set('content.properties.error_threshold', 
test.data.criticalThreshold);
-        expect(chartView.get('contentColor')).to.eql(test.result);
+        expect(chartView.get('palette').color(0)).to.eql(test.result);
       });
     });
   });

Reply via email to