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