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 () {

Reply via email to