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
+});