You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ab...@apache.org on 2015/05/29 10:12:59 UTC

ambari git commit: AMBARI-11522 Going to config-group in installer not showing config-group specific bounds/recommendations. (ababiichuk)

Repository: ambari
Updated Branches:
  refs/heads/trunk 4e7a135ed -> 0f602e15c


AMBARI-11522 Going to config-group in installer not showing config-group specific bounds/recommendations. (ababiichuk)


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

Branch: refs/heads/trunk
Commit: 0f602e15c137df0da40aae8451d2864b326d1dce
Parents: 4e7a135
Author: aBabiichuk <ab...@hortonworks.com>
Authored: Fri May 29 10:34:29 2015 +0300
Committer: aBabiichuk <ab...@hortonworks.com>
Committed: Fri May 29 11:12:41 2015 +0300

----------------------------------------------------------------------
 .../app/controllers/wizard/step7_controller.js  |  1 +
 .../mixins/common/configs/enhanced_configs.js   | 44 ++++++++++++++------
 .../widgets/slider_config_widget_view.js        | 14 +++++--
 3 files changed, 43 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/0f602e15/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 1eda0a6..9ad4a49 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -1106,6 +1106,7 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E
       this._setEditableValue(config);
       this._setOverrides(config, overrides);
     }, this);
+    this.getRecommendationsForDependencies(null, true, Em.K);
   }.observes('selectedConfigGroup'),
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/0f602e15/ambari-web/app/mixins/common/configs/enhanced_configs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/configs/enhanced_configs.js b/ambari-web/app/mixins/common/configs/enhanced_configs.js
index 6a214c7..5c9dde1 100644
--- a/ambari-web/app/mixins/common/configs/enhanced_configs.js
+++ b/ambari-web/app/mixins/common/configs/enhanced_configs.js
@@ -29,6 +29,13 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
   recommendationTimeStamp: null,
 
   /**
+   * this property is used to force update min/max values
+   * for not default config groups
+   * @type {boolean}
+   */
+  forceUpdateBoundaries: false,
+
+  /**
    * flag is true when Ambari changes some of the dependent properties
    * @type {boolean}
    */
@@ -254,13 +261,13 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
         hosts: this.get('hostNames'),
         services: this.get('serviceNames')
       };
-      if (App.get('isClusterSupportsEnhancedConfigs') && changedConfigs) {
+      if (App.get('isClusterSupportsEnhancedConfigs')) {
         if (changedConfigs) {
           dataToSend.recommend = 'configuration-dependencies';
           dataToSend.changed_configurations = changedConfigs;
         }
         if (!this.get('selectedConfigGroup.isDefault') && this.get('selectedConfigGroup.hosts.length') > 0) {
-          var configGroups = this.buildConfigGroupJSON(this.get('stepConfigs').findProperty('serviceName', this.get('content.serviceName')).get('configs'), this.get('selectedConfigGroup'));
+          var configGroups = this.buildConfigGroupJSON(this.get('selectedService.configs'), this.get('selectedConfigGroup'));
           recommendations.config_groups = [configGroups];
         }
       }
@@ -271,6 +278,7 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
         data: {
           stackVersionUrl: App.get('stackVersionURL'),
           dataToSend: dataToSend,
+          selectedConfigGroup: this.get('selectedConfigGroup.isDefault') ? null : this.get('selectedConfigGroup.name'),
           initial: initial
         },
         success: 'dependenciesSuccess',
@@ -322,7 +330,7 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
    * @method dependenciesSuccess
    */
   dependenciesSuccess: function (data, opt, params) {
-    this._saveRecommendedValues(data, params.initial, params.dataToSend.changed_configurations);
+    this._saveRecommendedValues(data, params.initial, params.dataToSend.changed_configurations, params.selectedConfigGroup);
     this.set("recommendationsConfigs", Em.get(data.resources[0] , "recommendations.blueprint.configurations"));
     if (!params.initial) {
       this.updateDependentConfigs();
@@ -397,14 +405,14 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
    * @method saveRecommendedValues
    * @private
    */
-  _saveRecommendedValues: function(data, updateOnlyBoundaries, changedConfigs) {
+  _saveRecommendedValues: function(data, updateOnlyBoundaries, changedConfigs, selectedConfigGroup) {
     Em.assert('invalid data - `data.resources[0].recommendations.blueprint.configurations` not defined ', data && data.resources[0] && Em.get(data.resources[0], 'recommendations.blueprint.configurations'));
     var configObject = data.resources[0].recommendations.blueprint.configurations;
-    this.parseConfigsByTag(configObject, updateOnlyBoundaries, changedConfigs, false);
+    this.parseConfigsByTag(configObject, updateOnlyBoundaries, changedConfigs, selectedConfigGroup);
     if (!this.get('selectedConfigGroup.isDefault') && data.resources[0].recommendations['config-groups']) {
       var configFroGroup = data.resources[0].recommendations['config-groups'][0];
-      this.parseConfigsByTag(configFroGroup.configurations, updateOnlyBoundaries, changedConfigs, true);
-      this.parseConfigsByTag(configFroGroup.dependent_configurations, updateOnlyBoundaries, changedConfigs, true);
+      this.parseConfigsByTag(configFroGroup.configurations, updateOnlyBoundaries, changedConfigs, selectedConfigGroup);
+      this.parseConfigsByTag(configFroGroup.dependent_configurations, updateOnlyBoundaries, changedConfigs, selectedConfigGroup);
     }
   },
 
@@ -412,12 +420,13 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
    * saves values from response for dependent configs to <code>_dependentConfigValues<code>
    * @param configObject - JSON response from `recommendations` endpoint
    * @param updateOnlyBoundaries
-   * @param notDefaultGroup
+   * @param selectedConfigGroup
    * @param {App.ServiceConfigProperty[]} parentConfigs - config properties for which recommendations were received
    * @method saveRecommendedValues
    * @private
    */
-  parseConfigsByTag: function(configObject, updateOnlyBoundaries, parentConfigs, notDefaultGroup) {
+  parseConfigsByTag: function(configObject, updateOnlyBoundaries, parentConfigs, selectedConfigGroup) {
+    var notDefaultGroup = !!selectedConfigGroup;
     var parentPropertiesNames = parentConfigs ? parentConfigs.mapProperty('name') : [];
     /** get all configs by config group **/
     for (var key in configObject) {
@@ -522,7 +531,7 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
           }
         }
       }
-      this._saveRecommendedAttributes(configObject, parentPropertiesNames, updateOnlyBoundaries);
+      this._saveRecommendedAttributes(configObject, parentPropertiesNames, updateOnlyBoundaries, selectedConfigGroup);
     }
   },
 
@@ -535,7 +544,7 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
    * @param updateOnlyBoundaries
    * @private
    */
-  _saveRecommendedAttributes: function(configs, parentPropertiesNames, updateOnlyBoundaries) {
+  _saveRecommendedAttributes: function(configs, parentPropertiesNames, updateOnlyBoundaries, selectedConfigGroup) {
     var self = this;
     Em.keys(configs).forEach(function (siteName) {
       var service = App.config.getServiceByConfigType(siteName);
@@ -576,7 +585,18 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
               }
             }
           } else if (stackProperty) {
-            Em.set(stackProperty.get('valueAttributes'), attributeName, attributes[attributeName]);
+            if (selectedConfigGroup) {
+              if (!stackProperty.get('valueAttributes')[selectedConfigGroup]) {
+                /** create not default group object for updating such values as min/max **/
+                Em.set(stackProperty.get('valueAttributes'), selectedConfigGroup, {});
+              }
+              if (stackProperty.get('valueAttributes')[selectedConfigGroup][attributeName] != attributes[attributeName]) {
+                Em.set(stackProperty.get('valueAttributes')[selectedConfigGroup], attributeName, attributes[attributeName]);
+                self.toggleProperty('forceUpdateBoundaries');
+              }
+            } else {
+              Em.set(stackProperty.get('valueAttributes'), attributeName, attributes[attributeName]);
+            }
           }
         });
       });

http://git-wip-us.apache.org/repos/asf/ambari/blob/0f602e15/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js b/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js
index 31d8aef..4ea542e 100644
--- a/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js
@@ -70,9 +70,12 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
    */
   maxMirrorValue: function() {
     var parseFunction = this.get('mirrorValueParseFunction');
-    var max = this.widgetValueByConfigAttributes(this.get('config.stackConfigProperty.valueAttributes.maximum'));
+    var defaultGroupAttr = this.get('config.stackConfigProperty.valueAttributes');
+    var groupAttr = this.get('configGroup') && this.get('config.stackConfigProperty.valueAttributes')[this.get('configGroup.name')];
+    var maximum = (groupAttr && !Em.isNone(groupAttr['maximum'])) ? groupAttr['maximum'] : defaultGroupAttr['maximum'];
+    var max = this.widgetValueByConfigAttributes(maximum);
     return parseFunction(max);
-  }.property('config.stackConfigProperty.valueAttributes.maximum'),
+  }.property('config.stackConfigProperty.valueAttributes.maximum', 'controller.forceUpdateBoundaries'),
 
   /**
    * min allowed value transformed form config unit to widget unit
@@ -80,9 +83,12 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
    */
   minMirrorValue: function() {
     var parseFunction = this.get('mirrorValueParseFunction');
-    var min = this.widgetValueByConfigAttributes(this.get('config.stackConfigProperty.valueAttributes.minimum'));
+    var defaultGroupAttr = this.get('config.stackConfigProperty.valueAttributes');
+    var groupAttr = this.get('configGroup') && this.get('config.stackConfigProperty.valueAttributes')[this.get('configGroup.name')];
+    var minimum = (groupAttr && !Em.isNone(groupAttr['minimum'])) ? groupAttr['minimum'] : defaultGroupAttr['minimum'];
+    var min = this.widgetValueByConfigAttributes(minimum);
     return parseFunction(min);
-  }.property('config.stackConfigProperty.valueAttributes.minimum'),
+  }.property('config.stackConfigProperty.valueAttributes.minimum', 'controller.forceUpdateBoundaries'),
 
   /**
    * step transformed form config units to widget units