You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2017/09/13 15:39:41 UTC

ambari git commit: AMBARI-21949. Stacks And Versions Page Displays Wrong Version For Service (alexantonenko)

Repository: ambari
Updated Branches:
  refs/heads/branch-2.6 08db087b8 -> c95009f55


AMBARI-21949. Stacks And Versions Page Displays Wrong Version For Service (alexantonenko)


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

Branch: refs/heads/branch-2.6
Commit: c95009f5568967f0abf20e88a89821032b3c9b14
Parents: 08db087
Author: Alex Antonenko <aa...@hortonworks.com>
Authored: Wed Sep 13 18:38:37 2017 +0300
Committer: Alex Antonenko <aa...@hortonworks.com>
Committed: Wed Sep 13 18:38:37 2017 +0300

----------------------------------------------------------------------
 .../app/controllers/global/update_controller.js |  2 +-
 ambari-web/app/mappers/service_mapper.js        |  6 +++--
 .../app/mappers/service_metrics_mapper.js       |  3 ++-
 ambari-web/app/models/service.js                |  1 +
 .../upgrade_version_column_view.js              | 10 ++------
 .../upgrade_version_column_view_test.js         | 27 +++++++++++++++++---
 6 files changed, 34 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/c95009f5/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 9b8614d..e1b2924 100644
--- a/ambari-web/app/controllers/global/update_controller.js
+++ b/ambari-web/app/controllers/global/update_controller.js
@@ -520,7 +520,7 @@ App.UpdateController = Em.Controller.extend({
 
   updateServices: function (callback) {
     var testUrl = '/data/services/HDP2/services.json';
-    var componentConfigUrl = this.getUrl(testUrl, '/services?fields=ServiceInfo/state,ServiceInfo/maintenance_state,components/ServiceComponentInfo/component_name&minimal_response=true');
+    var componentConfigUrl = this.getUrl(testUrl, '/services?fields=ServiceInfo/state,ServiceInfo/maintenance_state,ServiceInfo/desired_repository_version_id,components/ServiceComponentInfo/component_name&minimal_response=true');
     App.HttpClient.get(componentConfigUrl, App.serviceMapper, {
       complete: callback
     });

http://git-wip-us.apache.org/repos/asf/ambari/blob/c95009f5/ambari-web/app/mappers/service_mapper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mappers/service_mapper.js b/ambari-web/app/mappers/service_mapper.js
index 3523379..24130dd 100644
--- a/ambari-web/app/mappers/service_mapper.js
+++ b/ambari-web/app/mappers/service_mapper.js
@@ -23,7 +23,8 @@ App.serviceMapper = App.QuickDataMapper.create({
   config: {
     id: 'ServiceInfo.service_name',
     service_name: 'ServiceInfo.service_name',
-    work_status: 'ServiceInfo.state'
+    work_status: 'ServiceInfo.state',
+    desired_repository_version_id: 'ServiceInfo.desired_repository_version_id'
   },
   initialAppLoad: false,
   passiveStateMap: {},
@@ -41,7 +42,8 @@ App.serviceMapper = App.QuickDataMapper.create({
         var serviceData = {
           ServiceInfo: {
             service_name: service.ServiceInfo.service_name,
-            state: service.ServiceInfo.state
+            state: service.ServiceInfo.state,
+            desired_repository_version_id: service.ServiceInfo.desired_repository_version_id
           },
           host_components: [],
           components: []

http://git-wip-us.apache.org/repos/asf/ambari/blob/c95009f5/ambari-web/app/mappers/service_metrics_mapper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mappers/service_metrics_mapper.js b/ambari-web/app/mappers/service_metrics_mapper.js
index f9b3548..a258b85 100644
--- a/ambari-web/app/mappers/service_metrics_mapper.js
+++ b/ambari-web/app/mappers/service_metrics_mapper.js
@@ -36,7 +36,8 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({
     installed_clients: 'installed_clients',
     client_components: 'client_components',
     slave_components: 'slave_components',
-    master_components: 'master_components'
+    master_components: 'master_components',
+    desired_repository_version_id: 'ServiceInfo.desired_repository_version_id'
   },
   hdfsConfig: {
     version: 'nameNodeComponent.host_components[0].metrics.dfs.namenode.Version',

http://git-wip-us.apache.org/repos/asf/ambari/blob/c95009f5/ambari-web/app/models/service.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/service.js b/ambari-web/app/models/service.js
index 70ae917..563add8 100644
--- a/ambari-web/app/models/service.js
+++ b/ambari-web/app/models/service.js
@@ -30,6 +30,7 @@ App.Service = DS.Model.extend({
   quickLinks: DS.hasMany('App.QuickLinks'),  // mapped in app/mappers/service_metrics_mapper.js method - mapQuickLinks
   hostComponents: DS.hasMany('App.HostComponent'),
   serviceConfigsTemplate: App.config.get('preDefinedServiceConfigs'),
+  desiredRepositoryVersionId: DS.attr('number'),
   /**
    * used by services("OOZIE", "ZOOKEEPER", "HIVE", "MAPREDUCE2", "TEZ", "SQOOP", "PIG","FALCON")
    * that have only client components

http://git-wip-us.apache.org/repos/asf/ambari/blob/c95009f5/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js
index a031b92..ff74eb4 100644
--- a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js
+++ b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js
@@ -82,14 +82,8 @@ App.UpgradeVersionColumnView = App.UpgradeVersionBoxView.extend({
       return false;
     }
     if ( this.get('content.isCurrent') ){
-      // if version is current, check whether this service is available and the version itself is the newest version of all versions that contain the same service
-      var serviceWithHigherVersion =  App.RepositoryVersion.find().filterProperty('isCurrent').find(function ( version ) {
-        var service = version.get('stackServices').toArray().find( function (service) {
-          return service.get('name') === stackService.get('name') && service.get('isAvailable')
-        });
-        return Boolean(service && stringUtils.compareVersions(version.get('repositoryVersion'), this.get('content.repositoryVersion')) === 1);
-      }, this);
-      return stackService.get('isAvailable') && !serviceWithHigherVersion;
+      var originalService = App.Service.find(stackService.get('name'));
+      return stackService.get('isAvailable') && originalService.get('desiredRepositoryVersionId') === this.get('content.id');
     }
     else{
       return stackService.get('isAvailable')

http://git-wip-us.apache.org/repos/asf/ambari/blob/c95009f5/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_column_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_column_view_test.js b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_column_view_test.js
index a7cb395..1c68fa3 100644
--- a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_column_view_test.js
+++ b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_column_view_test.js
@@ -22,8 +22,23 @@ require('views/main/admin/stack_upgrade/upgrade_version_column_view');
 
 describe('App.UpgradeVersionColumnView', function () {
   var view =  App.UpgradeVersionColumnView.create({});
+  var services = [
+    Em.Object.create({
+      id: 'zk',
+      desiredRepositoryVersionId: 1
+    }),
+    Em.Object.create({
+      id: 'storm',
+      desiredRepositoryVersionId: 2
+    }),
+    Em.Object.create({
+      id: 'hdfs',
+      desiredRepositoryVersionId: 1
+    })
+  ];
   var versions = [
     Em.Object.create({
+      id: 1,
       status: "CURRENT",
       repositoryVersion: "2.3.1.1",
       stackVersionType: 'HDP',
@@ -45,6 +60,7 @@ describe('App.UpgradeVersionColumnView', function () {
       ]
     }),
     Em.Object.create({
+      id: 2,
       status: "CURRENT",
       repositoryVersion: "2.2.0.1",
       stackVersionType: 'HDP',
@@ -66,6 +82,7 @@ describe('App.UpgradeVersionColumnView', function () {
       ]
     }),
     Em.Object.create({
+      id: 3,
       status: "INSTALLED",
       repositoryVersion: "2.0.2.1",
       stackVersionType: 'HCP',
@@ -92,10 +109,14 @@ describe('App.UpgradeVersionColumnView', function () {
   
   describe("#isStackServiceAvailable", function () {
     beforeEach(function() {
-      sinon.stub(App.RepositoryVersion, 'find').returns(versions);
+      sinon.stub(App.Service, 'find', function (id) {
+        return services.find(function (service) {
+          return id === service.get('id');
+        })
+      })
     });
     afterEach(function() {
-      App.RepositoryVersion.find.restore();
+      App.Service.find.restore();
     });
     it('Current upgrade with invalid service', function () {
       view.set('content', versions[0]);
@@ -122,4 +143,4 @@ describe('App.UpgradeVersionColumnView', function () {
       expect(view.isStackServiceAvailable(versions[1].get('stackServices')[1])).to.be.true;
     });
   });
-});
\ No newline at end of file
+});