Repository: ambari Updated Branches: refs/heads/branch-2.6 e0879e98e -> 16c0beb1c
AMBARI-21965 Tez UI: DAG - All Task Attempts displays no records available. (atkach) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/16c0beb1 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/16c0beb1 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/16c0beb1 Branch: refs/heads/branch-2.6 Commit: 16c0beb1c99281bc79104d53ead0fd7af2f5d7b4 Parents: e0879e9 Author: Andrii Tkach <[email protected]> Authored: Fri Sep 15 14:33:49 2017 +0300 Committer: Andrii Tkach <[email protected]> Committed: Fri Sep 15 16:03:41 2017 +0300 ---------------------------------------------------------------------- ambari-web/app/controllers/main/service/item.js | 8 +++--- .../app/controllers/wizard/step7_controller.js | 10 ++++--- .../configs/config_recommendation_parser.js | 29 ++++++++++++-------- ...onfig_with_override_recommendation_parser.js | 7 ++++- .../test/controllers/wizard/step7_test.js | 11 ++++++++ 5 files changed, 45 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/16c0beb1/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 ecdf3f3..4e1b6fc 100644 --- a/ambari-web/app/controllers/main/service/item.js +++ b/ambari-web/app/controllers/main/service/item.js @@ -1489,7 +1489,7 @@ App.MainServiceItemController = Em.Controller.extend(App.SupportClientConfigsDow * @return {Boolean} * @override */ - allowUpdateProperty: function (parentProperties, name, fileName) { + allowUpdateProperty: function (parentProperties, name, fileName, configGroup, savedValue) { var stackProperty = App.configsCollection.getConfigByName(name, fileName); if (!stackProperty || (stackProperty.serviceName === this.get('content.serviceName'))) { /** @@ -1502,12 +1502,12 @@ App.MainServiceItemController = Em.Controller.extend(App.SupportClientConfigsDow /** * update properties that depends on current service */ - return !!stackProperty.propertyDependsOn.filter(function (p) { + return stackProperty.propertyDependsOn.some(function (p) { var service = App.config.get('serviceByConfigTypeMap')[p.type]; return service && (this.get('content.serviceName') === service.get('serviceName')); - }, this).length; + }, this); } - return false; + return !Em.isNone(savedValue) && stackProperty.recommendedValue === savedValue; }, /** http://git-wip-us.apache.org/repos/asf/ambari/blob/16c0beb1/ambari-web/app/controllers/wizard/step7_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/wizard/step7_controller.js b/ambari-web/app/controllers/wizard/step7_controller.js index 66bfafa..c3dfad7 100644 --- a/ambari-web/app/controllers/wizard/step7_controller.js +++ b/ambari-web/app/controllers/wizard/step7_controller.js @@ -1337,10 +1337,12 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E * @param parentProperties * @param name * @param fileName + * @param configGroup + * @param savedValue * @returns {*} * @override */ - allowUpdateProperty: function(parentProperties, name, fileName) { + allowUpdateProperty: function(parentProperties, name, fileName, configGroup, savedValue) { if (name.contains('proxyuser')) return true; if (['installerController'].contains(this.get('wizardController.name')) || !!(parentProperties && parentProperties.length)) { return true; @@ -1349,12 +1351,12 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E if (!stackProperty || !this.get('installedServices')[stackProperty.serviceName]) { return true; } else if (stackProperty.propertyDependsOn.length) { - return !!stackProperty.propertyDependsOn.filter(function (p) { + return stackProperty.propertyDependsOn.some(function (p) { var service = App.config.get('serviceByConfigTypeMap')[p.type]; return service && !this.get('installedServices')[service.get('serviceName')]; - }, this).length; + }, this); } else { - return false; + return !Em.isNone(savedValue) && stackProperty.recommendedValue === savedValue; } } return true; http://git-wip-us.apache.org/repos/asf/ambari/blob/16c0beb1/ambari-web/app/mixins/common/configs/config_recommendation_parser.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/common/configs/config_recommendation_parser.js b/ambari-web/app/mixins/common/configs/config_recommendation_parser.js index b8845a0..b0b2c41 100644 --- a/ambari-web/app/mixins/common/configs/config_recommendation_parser.js +++ b/ambari-web/app/mixins/common/configs/config_recommendation_parser.js @@ -58,8 +58,10 @@ App.ConfigRecommendationParser = Em.Mixin.create(App.ConfigRecommendations, { var propertiesToDelete = []; configs.forEach(function (config) { - var name = Em.get(config, 'name'), fileName = Em.get(config, 'filename'), - recommendations = recommendationObject[App.config.getConfigTagFromFileName(fileName)]; + var name = Em.get(config, 'name'), + fileName = Em.get(config, 'filename'), + value = Em.get(config, 'value'), + recommendations = recommendationObject[App.config.getConfigTagFromFileName(fileName)]; if (recommendations) { @@ -78,7 +80,7 @@ App.ConfigRecommendationParser = Em.Mixin.create(App.ConfigRecommendations, { if (propertyAttributes) { var stackProperty = App.configsCollection.getConfigByName(name, fileName); for (var attr in propertyAttributes) { - if (attr === 'delete' && this.allowUpdateProperty(parentProperties, name, fileName)) { + if (attr === 'delete' && this.allowUpdateProperty(parentProperties, name, fileName, null, value)) { propertiesToDelete.push(config); } else if (attr === 'visible' || stackProperty) { /** update config boundaries **/ @@ -152,14 +154,18 @@ App.ConfigRecommendationParser = Em.Mixin.create(App.ConfigRecommendations, { */ _updateConfigByRecommendation: function (config, recommendedValue, parentProperties) { App.assertObject(config); + var name = Em.get(config, 'name'), + fileName = Em.get(config, 'filename'), + group = Em.get(config, 'group.name'), + value = Em.get(config, 'value'); Em.set(config, 'recommendedValue', recommendedValue); - if (this.allowUpdateProperty(parentProperties, Em.get(config, 'name'), Em.get(config, 'filename'))) { + if (this.allowUpdateProperty(parentProperties, name, fileName, group, value)) { var allowConfigUpdate = true; // workaround for capacity-scheduler if (this.get('currentlyChangedConfig')) { var cId = App.config.configId(this.get('currentlyChangedConfig.name'), this.get('currentlyChangedConfig.fileName')); - if (App.config.configId(config.get('name'), config.get('filename')) === cId) { + if (App.config.configId(name, fileName) === cId) { allowConfigUpdate = false; } } @@ -173,7 +179,7 @@ App.ConfigRecommendationParser = Em.Mixin.create(App.ConfigRecommendations, { if (!Em.isNone(recommendedValue) && !Em.get(config, 'hiddenBySection')) { Em.set(config, 'isVisible', true); } - this.applyRecommendation(Em.get(config, 'name'), Em.get(config, 'filename'), Em.get(config, 'group.name'), recommendedValue, this._getInitialValue(config), parentProperties, Em.get(config, 'isEditable')); + this.applyRecommendation(name, fileName, group, recommendedValue, this._getInitialValue(config), parentProperties, Em.get(config, 'isEditable')); } if (this.updateInitialOnRecommendations(Em.get(config, 'serviceName'))) { Em.set(config, 'initialValue', recommendedValue); @@ -341,13 +347,14 @@ App.ConfigRecommendationParser = Em.Mixin.create(App.ConfigRecommendations, { /** * Defines if recommendation allowed to be applied * - * @param parentProperties - * @param name - * @param fileName - * @param [configGroup] + * @param {Array} parentProperties + * @param {string} name + * @param {string} fileName + * @param {string} configGroup + * @param {*} savedValue * @returns {boolean} */ - allowUpdateProperty: function (parentProperties, name, fileName, configGroup) { + allowUpdateProperty: function (parentProperties, name, fileName, configGroup, savedValue) { try { return Em.get(this.getRecommendation(name, fileName, configGroup), 'saveRecommended'); } catch (e) { http://git-wip-us.apache.org/repos/asf/ambari/blob/16c0beb1/ambari-web/app/mixins/common/configs/config_with_override_recommendation_parser.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/common/configs/config_with_override_recommendation_parser.js b/ambari-web/app/mixins/common/configs/config_with_override_recommendation_parser.js index 4312170..1d7842f 100644 --- a/ambari-web/app/mixins/common/configs/config_with_override_recommendation_parser.js +++ b/ambari-web/app/mixins/common/configs/config_with_override_recommendation_parser.js @@ -46,7 +46,12 @@ App.ConfigWithOverrideRecommendationParser = Em.Mixin.create(App.ConfigRecommend * @protected */ _updateOverride: function(config, recommendedValue, parentProperties, configGroup) { - var updateValue = this.allowUpdateProperty(parentProperties, Em.get(config, 'name'), Em.get(config, 'filename'), configGroup.get('name')); + var name = Em.get(config, 'name'), + fileName = Em.get(config, 'filename'), + group = Em.get(config, 'group.name'), + value = Em.get(config, 'value'); + + var updateValue = this.allowUpdateProperty(parentProperties, name, fileName, group, value); var override = config.getOverride(configGroup.get('name')); if (override) { this._updateConfigByRecommendation(override, recommendedValue, parentProperties); http://git-wip-us.apache.org/repos/asf/ambari/blob/16c0beb1/ambari-web/test/controllers/wizard/step7_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/wizard/step7_test.js b/ambari-web/test/controllers/wizard/step7_test.js index 5677a8d..c5fa05f 100644 --- a/ambari-web/test/controllers/wizard/step7_test.js +++ b/ambari-web/test/controllers/wizard/step7_test.js @@ -2050,6 +2050,17 @@ describe('App.InstallerStep7Controller', function () { expect(installerStep7Controller.allowUpdateProperty([], '', '')).to.be.false; }); + it('stackProperty was not customized', function () { + installerStep7Controller.reopen({installedServices: {s1: true}}); + this.stub.returns({ + serviceName: 's1', + propertyDependsOn: [], + recommendedValue: '1' + }); + + expect(installerStep7Controller.allowUpdateProperty([], '', '', null, '1')).to.be.true; + }); + }); it('true if it is not installer or addService', function () {
