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/21 15:14:17 UTC
ambari git commit: AMBARI-11297 Install Wizard > Customize Services:
confusing display regarding config changes. (ababiichuk)
Repository: ambari
Updated Branches:
refs/heads/trunk 46d142795 -> 6f3617353
AMBARI-11297 Install Wizard > Customize Services: confusing display regarding config changes. (ababiichuk)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6f361735
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6f361735
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6f361735
Branch: refs/heads/trunk
Commit: 6f3617353498fdf306eab36a3e5ee1fba93f90d2
Parents: 46d1427
Author: aBabiichuk <ab...@cybervisiontech.com>
Authored: Thu May 21 15:15:54 2015 +0300
Committer: aBabiichuk <ab...@cybervisiontech.com>
Committed: Thu May 21 15:57:17 2015 +0300
----------------------------------------------------------------------
.../app/controllers/wizard/step7_controller.js | 3 +-
.../mixins/common/configs/enhanced_configs.js | 58 +++++++++++++++++---
ambari-web/app/mixins/common/serverValidator.js | 2 +
3 files changed, 54 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/6f361735/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 f0ae1d3..3f3cafb 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -641,7 +641,6 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E
}
self.setStepConfigs(configs, storedConfigs);
this.loadServerSideConfigsRecommendations().always(function () {
- self.set('isRecommendedLoaded', true);
// format descriptor configs
var serviceConfigProperties = (self.get('content.serviceConfigProperties') || []).mapProperty('name');
var recommendedToDelete = self.get('_dependentConfigValues').filterProperty('toDelete');
@@ -657,6 +656,8 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E
self.activateSpecialConfigs();
self.selectProperService();
self.restoreRecommendedConfigs();
+ self.clearDependentConfigsByService(App.StackService.find().filterProperty('isSelected').mapProperty('serviceName'));
+ self.set('isRecommendedLoaded', true);
if (self.get('content.skipConfigStep')) {
App.router.send('next');
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/6f361735/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 85df56b..6a214c7 100644
--- a/ambari-web/app/mixins/common/configs/enhanced_configs.js
+++ b/ambari-web/app/mixins/common/configs/enhanced_configs.js
@@ -48,11 +48,13 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
/**
* defines if initialValue of config can be used on current controller
* if not savedValue is used instead
- * @type {boolean}
+ * @param {String} serviceName
+ * @return {boolean}
+ * @method useInitialValue
*/
- useInitialValue: function() {
- ['wizardStep7Controller'].contains(this.get('name'));
- }.property('name'),
+ useInitialValue: function(serviceName) {
+ return ['wizardStep7Controller'].contains(this.get('name')) && !App.Service.find().findProperty('serviceName', serviceName);
+ },
/**
@@ -139,6 +141,18 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
});
},
+ /**
+ * clear values for dependent configs for given services
+ * @method clearDependentConfigs
+ * @private
+ */
+ clearDependentConfigsByService: function(serviceNames) {
+ var cleanDependencies = this.get('_dependentConfigValues').reject(function(c) {
+ return serviceNames.contains(c.serviceName);
+ }, this);
+ this.set('_dependentConfigValues', cleanDependencies);
+ },
+
onConfigGroupChangeForEnhanced: function() {
if (this.get('name') === 'mainServiceInfoConfigsController') {
this.clearDependentConfigs();
@@ -426,7 +440,7 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
var value = override ? override.get('value') : cp && cp.get('value');
- if (this.get('useInitialValue')) {
+ if (this.useInitialValue(serviceName)) {
initialValue = override ? override.get('initialValue') : cp && cp.get('initialValue');
} else {
initialValue = override ? override.get('savedValue') : cp && cp.get('savedValue');
@@ -546,7 +560,7 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
self.get('_dependentConfigValues').pushObject({
saveRecommended: true,
saveRecommendedDefault: true,
- propertyValue: cp && (cp.get('useInitialValue') ? cp.get('initialValue') : cp.get('savedValue')),
+ propertyValue: cp && (self.useInitialValue(serviceName) ? cp.get('initialValue') : cp.get('savedValue')),
toDelete: true,
toAdd: false,
isDeleted: true,
@@ -624,7 +638,7 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
this.addOverrideProperty(cp, selectedGroup, Em.get(propertyToAdd, 'recommendedValue'), !Em.get(propertyToAdd, 'isDeleted'));
}
Em.setProperties(propertyToAdd, {
- isDeleted: false,
+ isDeleted: Em.get(propertyToAdd, 'isDeleted'),
toAdd: false,
toDelete: false
});
@@ -669,6 +683,8 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
toAdd: false,
toDelete: false
});
+ } else {
+ this.get('_dependentConfigValues').removeObject(propertyToDelete);
}
}, this);
}
@@ -697,7 +713,7 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
} else {
if (stepConfigs.get('serviceName') !== this.get('content.serviceName')) {
if (propertyToUpdate.saveRecommended || cp.get('value') == propertyToUpdate.recommendedValue) {
- cp.set('value', this.get('useInitialValue') ? cp.get('initialValue') : cp.get('savedValue'));
+ cp.set('value', this.useInitialValue(stepConfigs.get('serviceName')) ? cp.get('initialValue') : cp.get('savedValue'));
}
cp.set('recommendedValue', propertyToUpdate.recommendedValue);
}
@@ -712,6 +728,32 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
}
}, this);
}
+ },
+
+ /**
+ * On first load on installer and add service <code>initialValue<code> of <code>serviceConfigProperty<code> object
+ * that contains value from stack should be overriden by dynamic recommendation.
+ * Do this only for not installed services as in this case <code>initialValue<code> is not used.
+ * @param configObject
+ */
+ updateInitialValue: function(configObject) {
+ for (var key in configObject) {
+ /** defines main info for file name (service name, config group, config that belongs to filename) **/
+ var service = App.config.getServiceByConfigType(key);
+ if (App.Service.find().filterProperty('serviceName', service.get('serviceName'))) {
+ var stepConfig = this.get('stepConfigs').findProperty('serviceName', service.get('serviceName'));
+ if (stepConfig) {
+ var configProperties = stepConfig ? stepConfig.get('configs').filterProperty('filename', App.config.getOriginalFileName(key)) : [];
+
+ for (var propertyName in configObject[key].properties) {
+ var configProperty = configProperties.findProperty('name', propertyName);
+ if (configProperty) {
+ configProperty.set('initialValue', configObject[key].properties[propertyName]);
+ }
+ }
+ }
+ }
+ }
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/6f361735/ambari-web/app/mixins/common/serverValidator.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/serverValidator.js b/ambari-web/app/mixins/common/serverValidator.js
index 8ee28ef..47c6624 100644
--- a/ambari-web/app/mixins/common/serverValidator.js
+++ b/ambari-web/app/mixins/common/serverValidator.js
@@ -142,6 +142,8 @@ App.ServerValidatorMixin = Em.Mixin.create({
console.warn('error while loading default config values');
}
this._saveRecommendedValues(data);
+ var configObject = data.resources[0].recommendations.blueprint.configurations;
+ if (configObject) this.updateInitialValue(configObject);
this.set("recommendationsConfigs", Em.get(data.resources[0] , "recommendations.blueprint.configurations"));
},