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 2016/03/23 12:31:52 UTC
ambari git commit: AMBARI-15517 Improve config groups loading on
wizard (part 1). (ababiichuk)
Repository: ambari
Updated Branches:
refs/heads/trunk 3ae91d255 -> 7e1815db5
AMBARI-15517 Improve config groups loading on wizard (part 1). (ababiichuk)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7e1815db
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7e1815db
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7e1815db
Branch: refs/heads/trunk
Commit: 7e1815db51adc60b2944b7cf17cf99ac293af84c
Parents: 3ae91d2
Author: ababiichuk <ab...@hortonworks.com>
Authored: Tue Mar 22 18:14:34 2016 +0200
Committer: ababiichuk <ab...@hortonworks.com>
Committed: Wed Mar 23 13:29:58 2016 +0200
----------------------------------------------------------------------
.../app/controllers/wizard/step7_controller.js | 66 +++------------
ambari-web/app/utils/config.js | 10 ++-
.../test/controllers/wizard/step7_test.js | 87 +-------------------
3 files changed, 22 insertions(+), 141 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e1815db/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 9113ea2..1df119e 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -479,18 +479,22 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E
loadServiceConfigGroupOverridesSuccess: function (data, opt, params) {
data.items.forEach(function (config) {
- var hostOverrideValue, hostOverrideIsFinal;
var group = params.typeTagToGroupMap[config.type + "///" + config.tag];
var properties = config.properties;
for (var prop in properties) {
var fileName = App.config.getOriginalFileName(config.type);
- var serviceConfig = !!params.configKeyToConfigMap[fileName] ? params.configKeyToConfigMap[fileName][prop] : false;
- if (serviceConfig) {
- hostOverrideValue = App.config.formatPropertyValue(serviceConfig, properties[prop]);
- hostOverrideIsFinal = !!(config.properties_attributes && config.properties_attributes.final && config.properties_attributes.final[prop]);
- // Value of this property is different for this host.
- if (!Em.get(serviceConfig, 'overrides')) Em.set(serviceConfig, 'overrides', []);
- serviceConfig.overrides.pushObject({value: hostOverrideValue, group: group, isFinal: hostOverrideIsFinal});
+ var serviceConfigProperty = !!params.configKeyToConfigMap[fileName] ? params.configKeyToConfigMap[fileName][prop] : false;
+ if (serviceConfigProperty) {
+ var hostOverrideValue = App.config.formatPropertyValue(serviceConfigProperty, properties[prop]);
+ var hostOverrideIsFinal = !!(config.properties_attributes && config.properties_attributes.final && config.properties_attributes.final[prop]);
+
+ App.config.createOverride(serviceConfigProperty, {
+ "value": hostOverrideValue,
+ "savedValue": hostOverrideValue,
+ "isFinal": hostOverrideIsFinal,
+ "savedIsFinal": hostOverrideIsFinal,
+ "isEditable": false
+ }, group, true);
} else {
params.serviceConfigs.push(App.config.createCustomGroupConfig(prop, fileName, config.properties[prop], group));
}
@@ -539,51 +543,6 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E
},
/**
- * Set <code>overrides</code>-property to <code>serviceConfigProperty<code>
- * @param {Ember.Object} serviceConfigProperty
- * @param {Ember.Object} component
- * @return {Ember.Object} Updated config-object
- * @method _updateOverridesForConfig
- */
- _updateOverridesForConfig: function (serviceConfigProperty, component) {
-
- var overrides = serviceConfigProperty.get('overrides');
-
- if (Em.isNone(overrides)) {
- serviceConfigProperty.set('overrides', Em.A([]));
- return serviceConfigProperty;
- }
- serviceConfigProperty.set('overrides', null);
- var defaultGroupSelected = component.get('selectedConfigGroup.isDefault');
-
- // Wrap each override to App.ServiceConfigProperty
- overrides.forEach(function (override) {
- var newSCP = App.ServiceConfigProperty.create(serviceConfigProperty);
- newSCP.set('value', override.value);
- newSCP.set('isOriginalSCP', false); // indicated this is overridden value,
- newSCP.set('parentSCP', serviceConfigProperty);
- if (defaultGroupSelected) {
- var group = component.get('configGroups').findProperty('name', override.group.get('name'));
- // prevent cycle in proto object, clean link
- if (group.get('properties').length == 0) {
- group.set('properties', Em.A([]));
- }
- group.get('properties').push(newSCP);
- newSCP.set('group', override.group);
- newSCP.set('isEditable', false);
- }
- var parentOverridesArray = serviceConfigProperty.get('overrides');
- if (Em.isNone(parentOverridesArray)) {
- parentOverridesArray = Em.A([]);
- serviceConfigProperty.set('overrides', parentOverridesArray);
- }
- serviceConfigProperty.get('overrides').pushObject(newSCP);
- newSCP.validate();
- }, this);
- return serviceConfigProperty;
- },
-
- /**
* Set configs with overrides, recommended defaults to component
* @param {Ember.Object[]} configs
* @param {Ember.Object} componentConfig
@@ -602,7 +561,6 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E
if (!Em.isNone(serviceConfigProperty.get('group'))) {
serviceConfigProperty.get('group.properties').pushObject(serviceConfigProperty);
}
- this._updateOverridesForConfig(serviceConfigProperty, component);
this._updateIsEditableFlagForConfig(serviceConfigProperty, defaultGroupSelected);
componentConfig.get('configs').pushObject(serviceConfigProperty);
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e1815db/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index 8866612..db6c27f 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -893,9 +893,10 @@ App.config = Em.Object.create({
* @param {App.ServiceConfigProperty} serviceConfigProperty
* @param {Object} override - plain object with properties that is different from parent SCP
* @param {App.ServiceConfigGroup} configGroup
+ * @param {boolean} [updateGroup]
* @returns {App.ServiceConfigProperty}
*/
- createOverride: function(serviceConfigProperty, override, configGroup) {
+ createOverride: function(serviceConfigProperty, override, configGroup, updateGroup) {
Em.assert('serviceConfigProperty can\' be null', serviceConfigProperty);
Em.assert('configGroup can\' be null', configGroup);
@@ -916,6 +917,13 @@ App.config = Em.Object.create({
'parentSCP': serviceConfigProperty
});
+ if (updateGroup) {
+ if (!configGroup.get('properties.length')) {
+ configGroup.set('properties', Em.A([]));
+ }
+ configGroup.get('properties').push(newOverride);
+ }
+
serviceConfigProperty.get('overrides').pushObject(newOverride);
serviceConfigProperty.set('overrideValues', serviceConfigProperty.get('overrides').mapProperty('value'));
serviceConfigProperty.set('overrideIsFinalValues', serviceConfigProperty.get('overrides').mapProperty('isFinal'));
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e1815db/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 1291ed9..f1033bb 100644
--- a/ambari-web/test/controllers/wizard/step7_test.js
+++ b/ambari-web/test/controllers/wizard/step7_test.js
@@ -1236,91 +1236,6 @@ describe('App.InstallerStep7Controller', function () {
});
});
- describe('#_updateOverridesForConfig', function () {
-
- it('should set empty array', function () {
- var serviceConfigProperty = Em.Object.create({
- overrides: null
- }), component = Em.Object.create();
- installerStep7Controller._updateOverridesForConfig(serviceConfigProperty, component);
- expect(serviceConfigProperty.get('overrides')).to.eql(Em.A([]));
- });
-
- describe('host overrides not supported', function () {
- var serviceConfigProperty = Em.Object.create({
- overrides: [
- {value: 'new value'}
- ]
- });
- var component = Em.Object.create({selectedConfigGroup: {isDefault: false}});
-
- beforeEach(function () {
- installerStep7Controller._updateOverridesForConfig(serviceConfigProperty, component);
- });
- it('there is 1 override', function () {
- expect(serviceConfigProperty.get('overrides').length).to.equal(1);
- });
- it('override value is valid', function () {
- expect(serviceConfigProperty.get('overrides.firstObject.value')).to.equal('new value');
- });
- it('override is not original SCP', function () {
- expect(serviceConfigProperty.get('overrides.firstObject.isOriginalSCP')).to.equal(false);
- });
- it('override is linked to parent', function () {
- expect(serviceConfigProperty.get('overrides.firstObject.parentSCP')).to.eql(serviceConfigProperty);
- });
- });
-
- describe('host overrides supported', function () {
- var serviceConfigProperty;
- var component;
- beforeEach(function () {
- sinon.stub(App, 'get', function (k) {
- if (k === 'supports.hostOverrides') return true;
- return Em.get(App, k);
- });
- serviceConfigProperty = Em.Object.create({
- overrides: [
- {value: 'new value', group: Em.Object.create({name: 'n1'})}
- ]
- });
- component = Em.Object.create({
- selectedConfigGroup: {isDefault: true},
- configGroups: Em.A([
- Em.Object.create({name: 'n1', properties: []})
- ])
- });
- installerStep7Controller._updateOverridesForConfig(serviceConfigProperty, component);
- });
-
- afterEach(function () {
- App.get.restore();
- });
- it('there is 1 override', function () {
- expect(serviceConfigProperty.get('overrides').length).to.equal(1);
- });
- it('override.value is valid', function () {
- expect(serviceConfigProperty.get('overrides.firstObject.value')).to.equal('new value');
- });
- it('override is not original SCP', function () {
- expect(serviceConfigProperty.get('overrides.firstObject.isOriginalSCP')).to.equal(false);
- });
- it('override.parentSCP is valid', function () {
- expect(serviceConfigProperty.get('overrides.firstObject.parentSCP')).to.eql(serviceConfigProperty);
- });
- it('there is 1 property in the config group', function () {
- expect(component.get('configGroups.firstObject.properties').length).to.equal(1);
- });
- it('property in the config group is not editable', function () {
- expect(component.get('configGroups.firstObject.properties.firstObject.isEditable')).to.equal(false);
- });
- it('property in the config group is linked to it', function () {
- expect(component.get('configGroups.firstObject.properties.firstObject.group')).to.be.object;
- });
- });
-
- });
-
describe('#setInstalledServiceConfigs', function () {
var controller = App.WizardStep7Controller.create({
@@ -2427,7 +2342,7 @@ describe('App.InstallerStep7Controller', function () {
configKeyToConfigMap: {
type1: {},
type2: {
- p4: {}
+ p4: Em.Object.create({})
}
}
};