AMBARI-19877. Confirmation for deleting services show serviceName and not displayName (onechiporenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/1756ce5e Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/1756ce5e Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/1756ce5e Branch: refs/heads/branch-dev-patch-upgrade Commit: 1756ce5ea6afb7256c5fb7e987a1cdb91d073d71 Parents: 3436c4a Author: Oleg Nechiporenko <onechipore...@apache.org> Authored: Mon Feb 6 13:57:39 2017 +0200 Committer: Nate Cole <nc...@hortonworks.com> Committed: Mon Feb 13 15:45:36 2017 -0500 ---------------------------------------------------------------------- ambari-web/app/controllers/main/service/item.js | 15 ++++-- .../test/controllers/main/service/item_test.js | 54 ++++++++++++++++++-- 2 files changed, 62 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/1756ce5e/ambari-web/app/controllers/main/service/item.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/service/item.js b/ambari-web/app/controllers/main/service/item.js index 9758ac3..7010ab5 100644 --- a/ambari-web/app/controllers/main/service/item.js +++ b/ambari-web/app/controllers/main/service/item.js @@ -1531,10 +1531,17 @@ App.MainServiceItemController = Em.Controller.extend(App.SupportClientConfigsDow }, confirmServiceDeletion: function() { - var progressPopup = this.get('deleteServiceProgressPopup'), - msg = this.get('interDependentServices.length') - ? Em.I18n.t('services.service.delete.service.success.confirmation.plural').format(this.get('serviceNamesToDelete').join(',')) - : Em.I18n.t('services.service.delete.service.success.confirmation').format(this.get('content.serviceName')); + let serviceNames, msg; + if (this.get('interDependentServices.length')) { + serviceNames = this.get('serviceNamesToDelete').map(serviceName => App.format.role(serviceName, true)).join(', '); + msg = Em.I18n.t('services.service.delete.service.success.confirmation.plural').format(serviceNames); + } + else { + serviceNames = App.format.role(this.get('content.serviceName'), true); + msg = Em.I18n.t('services.service.delete.service.success.confirmation').format(serviceNames); + } + + var progressPopup = this.get('deleteServiceProgressPopup'); if (progressPopup) { progressPopup.onClose(); } http://git-wip-us.apache.org/repos/asf/ambari/blob/1756ce5e/ambari-web/test/controllers/main/service/item_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/service/item_test.js b/ambari-web/test/controllers/main/service/item_test.js index b582e86..302a9a5 100644 --- a/ambari-web/test/controllers/main/service/item_test.js +++ b/ambari-web/test/controllers/main/service/item_test.js @@ -28,7 +28,7 @@ require('controllers/main/service/reassign_controller'); require('controllers/main/service/item'); var batchUtils = require('utils/batch_scheduled_requests'); var testHelpers = require('test/helpers'); -var stackSerivceModel = { +var stackServiceModel = { 'HDFS': Em.Object.create({ serviceName: 'HDFS', requiredServices: ['ZOOKEEPER'] @@ -1352,7 +1352,7 @@ describe('App.MainServiceItemController', function () { beforeEach(function() { mainServiceItemController = App.MainServiceItemController.create({}); sinon.stub(App.StackService, 'find', function (serviceName) { - return stackSerivceModel[serviceName]; + return stackServiceModel[serviceName]; }); this.mockService = sinon.stub(App.Service, 'find'); }); @@ -1644,7 +1644,7 @@ describe('App.MainServiceItemController', function () { beforeEach(function() { sinon.stub(App.StackService, 'find', function (serviceName) { - return stackSerivceModel[serviceName]; + return stackServiceModel[serviceName]; }); mainServiceItemController = App.MainServiceItemController.create({ content: {} @@ -1802,6 +1802,54 @@ describe('App.MainServiceItemController', function () { }); }); + describe('#confirmServiceDeletion', function () { + + var mainServiceItemController = App.MainServiceItemController.create({deleteServiceProgressPopup: null}); + + [ + { + content: Em.Object.create({serviceName: 'DRUID'}), + stackServices: [ + Em.Object.create({id: 'DRUID', displayName: 'Druid', serviceName: 'DRUID', requiredServices: []}) + ], + m: 'No required services', + e: Em.I18n.t('services.service.delete.service.success.confirmation').format('Druid') + }, + { + content: Em.Object.create({serviceName: 'MAPREDUCE2'}), + stackServices: [ + Em.Object.create({id: 'MAPREDUCE2', serviceName: 'MAPREDUCE2', requiredServices: ['YARN'], displayName: 'MapReduce2'}), + Em.Object.create({id: 'YARN', serviceName: 'YARN', requiredServices: ['MAPREDUCE2'], displayName: 'YARN'}), + ], + m: 'One required service', + e: Em.I18n.t('services.service.delete.service.success.confirmation.plural').format('MapReduce2, YARN') + } + ].forEach(function(test) { + describe(test.m, function () { + + beforeEach(function () { + sinon.stub(App.StackService, 'find', function (id) { + return arguments.length ? test.stackServices.findProperty('id', id) : test.stackServices; + }); + sinon.spy(App, 'showAlertPopup'); + mainServiceItemController.set('content', test.content); + mainServiceItemController.confirmServiceDeletion(); + }); + + afterEach(function () { + App.StackService.find.restore(); + App.showAlertPopup.restore(); + }); + + it('Popup body has display service names', function () { + expect(App.showAlertPopup.args[0][1]).to.be.equal(test.e); + }); + + }); + }); + + }); + describe("#isRangerPluginEnabled()", function () { var mainServiceItemController;