You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jg...@apache.org on 2018/06/18 18:33:51 UTC

[ambari] branch branch-feature-AMBARI-14714-mpack-advisor updated: [AMBARI-24137] Fixed mpack display on service summary view.

This is an automated email from the ASF dual-hosted git repository.

jgolieb pushed a commit to branch branch-feature-AMBARI-14714-mpack-advisor
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/branch-feature-AMBARI-14714-mpack-advisor by this push:
     new 24299f4  [AMBARI-24137] Fixed mpack display on service summary view.
24299f4 is described below

commit 24299f4f855bb0e34514d3d220388ef0b293bc0a
Author: Jason Golieb <jg...@hortonworks.com>
AuthorDate: Mon Jun 18 09:22:27 2018 -0400

    [AMBARI-24137] Fixed mpack display on service summary view.
---
 ambari-web/app/controllers/main/service.js         |  2 +-
 ambari-web/app/mappers/service_mapper.js           | 24 +++++++++++++++++-----
 ambari-web/app/models/service.js                   |  2 ++
 ambari-web/app/styles/bootstrap_overrides.less     |  2 --
 ambari-web/app/utils/misc.js                       |  7 +++++--
 ambari-web/app/views/main/service/service.js       |  6 +++---
 .../mixins/common/widgets/widget_section_test.js   |  4 ++--
 7 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/ambari-web/app/controllers/main/service.js b/ambari-web/app/controllers/main/service.js
index 7455eac..c52471a 100644
--- a/ambari-web/app/controllers/main/service.js
+++ b/ambari-web/app/controllers/main/service.js
@@ -30,7 +30,7 @@ App.MainServiceController = Em.ArrayController.extend(App.SupportClientConfigsDo
     if (!App.router.get('clusterController.isLoaded')) {
       return [];
     }
-    return misc.sortByOrder(App.StackService.find().mapProperty('serviceName'), App.Service.find().toArray());
+    return misc.sortByOrder(App.StackService.find().mapProperty('serviceName'), App.Service.find().toArray(), s => s.get('serviceName'));
   }.property('App.router.clusterController.isLoaded').volatile(),
 
   /**
diff --git a/ambari-web/app/mappers/service_mapper.js b/ambari-web/app/mappers/service_mapper.js
index 99d8adb..5cb2b9e 100644
--- a/ambari-web/app/mappers/service_mapper.js
+++ b/ambari-web/app/mappers/service_mapper.js
@@ -21,10 +21,13 @@ var misc = require('utils/misc');
 App.serviceMapper = App.QuickDataMapper.create({
   model: App.Service,
   config: {
-    id: 'ServiceInfo.service_name',
+    id: 'ServiceInfo.id',
     service_name: 'ServiceInfo.service_name',
     service_group_name: 'ServiceInfo.service_group_name',
-    work_status: 'ServiceInfo.state'
+    work_status: 'ServiceInfo.state',
+    mpack_name: 'ServiceInfo.mpack_name',
+    mpack_version: 'ServiceInfo.mpack_version',
+    tool_tip_content: 'ServiceInfo.tool_tip_content'
   },
   initialAppLoad: false,
   passiveStateMap: {},
@@ -33,8 +36,15 @@ App.serviceMapper = App.QuickDataMapper.create({
     var self = this;
     var passiveStateMap = this.get('passiveStateMap');
     var services = [];
+    
     json.items.forEach(function (item) {
-      services = services.concat(item.services);
+      const itemServices = item.services.map(service => {
+        service.ServiceInfo.mpack_name = item.ServiceGroupInfo.mpack_name;
+        service.ServiceInfo.mpack_version = item.ServiceGroupInfo.mpack_version;
+        return service;
+      });
+
+      services = services.concat(itemServices);
     });
 
     services.forEach(function (service) {
@@ -47,9 +57,13 @@ App.serviceMapper = App.QuickDataMapper.create({
         } else {
           var serviceData = {
             ServiceInfo: {
+              id: `${service.ServiceInfo.service_name}-${service.ServiceInfo.service_group_name}`,
               service_name: service.ServiceInfo.service_name,
               service_group_name: service.ServiceInfo.service_group_name,
-              state: service.ServiceInfo.state
+              state: service.ServiceInfo.state,
+              mpack_name: service.ServiceInfo.mpack_name,
+              mpack_version: service.ServiceInfo.mpack_version,
+              tool_tip_content: `${service.ServiceInfo.service_name} (${service.ServiceInfo.service_group_name})`
             },
             host_components: [],
             components: []
@@ -65,7 +79,7 @@ App.serviceMapper = App.QuickDataMapper.create({
         App.serviceMetricsMapper.mapExtendedModel(item);
         return self.parseIt(item, self.get('config'));
       });
-      parsedCacheServices = misc.sortByOrder(App.StackService.find().mapProperty('serviceName'), parsedCacheServices);
+      parsedCacheServices = misc.sortByOrder(App.StackService.find().mapProperty('serviceName'), parsedCacheServices, item => item.service_name);
       App.store.safeLoadMany(this.get('model'), parsedCacheServices);
       this.set('initialAppLoad', true);
     }
diff --git a/ambari-web/app/models/service.js b/ambari-web/app/models/service.js
index 0c6a64d..3bb61a4 100644
--- a/ambari-web/app/models/service.js
+++ b/ambari-web/app/models/service.js
@@ -24,6 +24,8 @@ App.Service = DS.Model.extend({
   serviceName: DS.attr('string'),
   displayName: Em.computed.formatRole('serviceName', true),
   serviceGroupName: DS.attr('string'),
+  mpackName: DS.attr('string'),
+  mpackVersion: DS.attr('string'),
   passiveState: DS.attr('string', {defaultValue: "OFF"}),
   workStatus: DS.attr('string'),
   rand: DS.attr('string'),
diff --git a/ambari-web/app/styles/bootstrap_overrides.less b/ambari-web/app/styles/bootstrap_overrides.less
index febbf93..1522875 100644
--- a/ambari-web/app/styles/bootstrap_overrides.less
+++ b/ambari-web/app/styles/bootstrap_overrides.less
@@ -85,7 +85,6 @@ select.form-control {
   background-color: #fff;
   border-radius: 0;
   .panel-heading {
-    padding: 0;
     margin-bottom: 15px;
     .panel-title {
       line-height: 34px;
@@ -94,7 +93,6 @@ select.form-control {
 }
 
 .panel .panel-body {
-  padding: 0;
   position: relative;
   min-height: 200px;
   height: 100%;
diff --git a/ambari-web/app/utils/misc.js b/ambari-web/app/utils/misc.js
index ae0e49b..3fe3d9d 100644
--- a/ambari-web/app/utils/misc.js
+++ b/ambari-web/app/utils/misc.js
@@ -54,11 +54,14 @@ module.exports = {
     return ((((((+d[0])*256)+(+d[1]))*256)+(+d[2]))*256)+(+d[3]);
   },
 
-  sortByOrder: function (sortOrder, array) {
+  sortByOrder: function (sortOrder, array, sortOn) {
+    //provide default sortOn function if one is not passed in
+    sortOn = sortOn || (item => Em.get(item, 'id'));
+
     var sorted = [];
     for (var i = 0; i < sortOrder.length; i++)
       for (var j = 0; j < array.length; j++) {
-        if (sortOrder[i] == Em.get(array[j], 'id')) {
+        if (sortOrder[i] == sortOn(array[j])) {
           sorted.push(array[j]);
         }
       }
diff --git a/ambari-web/app/views/main/service/service.js b/ambari-web/app/views/main/service/service.js
index 6032333..9b46dcc 100644
--- a/ambari-web/app/views/main/service/service.js
+++ b/ambari-web/app/views/main/service/service.js
@@ -124,9 +124,9 @@ App.MainDashboardServiceViewWrapper = Em.Mixin.create({
   layoutName: require('templates/main/service/service'),
 
   mpackVersion: function() {
-    const stackService = App.StackService.find(this.get('controller.content.serviceName'));
-    return `${stackService.get('stackName')} (${stackService.get('stackVersion')})`;
-  }.property('controller.content.serviceName'),
+    const service = this.get('controller.content');
+    return `${service.get('mpackName')} (${service.get('mpackVersion')})`;
+  }.property('controller.content'),
 });
 
 App.MainDashboardServiceView = Em.View.extend(App.MainDashboardServiceViewWrapper, {
diff --git a/ambari-web/test/mixins/common/widgets/widget_section_test.js b/ambari-web/test/mixins/common/widgets/widget_section_test.js
index e6b8bf4..1da742d 100644
--- a/ambari-web/test/mixins/common/widgets/widget_section_test.js
+++ b/ambari-web/test/mixins/common/widgets/widget_section_test.js
@@ -38,9 +38,9 @@ describe('App.WidgetSectionMixin', function () {
       },
       {
         services: [
-          {
+          Em.Object.create({
             serviceName: 'AMBARI_METRICS'
-          }
+          })
         ],
         isAmbariMetricsInstalled: true,
         title: 'Ambari Metrics installed'

-- 
To stop receiving notification emails like this one, please contact
jgolieb@apache.org.