You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ak...@apache.org on 2015/12/16 20:12:45 UTC
ambari git commit: AMBARI-14402 Duplicate config group action doesn't
duplicate configs (akovalenko)
Repository: ambari
Updated Branches:
refs/heads/trunk b85a15c8a -> 74a9d7223
AMBARI-14402 Duplicate config group action doesn't duplicate configs (akovalenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/74a9d722
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/74a9d722
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/74a9d722
Branch: refs/heads/trunk
Commit: 74a9d7223acf85b64405ba88f65e56d3154b782b
Parents: b85a15c
Author: Aleksandr Kovalenko <ak...@hortonworks.com>
Authored: Wed Dec 16 21:10:17 2015 +0200
Committer: Aleksandr Kovalenko <ak...@hortonworks.com>
Committed: Wed Dec 16 21:10:17 2015 +0200
----------------------------------------------------------------------
.../service/manage_config_groups_controller.js | 22 +++++++++---
.../app/mixins/common/configs/configs_loader.js | 1 +
.../main/service/configs/config_overridable.js | 36 ++++++++++++++------
ambari-web/app/models/configs/config_group.js | 5 ---
ambari-web/app/utils/ajax/ajax.js | 10 +-----
.../views/common/configs/config_history_flow.js | 7 ++--
.../manage_config_groups_controller_test.js | 1 +
7 files changed, 50 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/manage_config_groups_controller.js b/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
index bdc6200..633c3c9 100644
--- a/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
+++ b/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
@@ -192,7 +192,8 @@ App.ManageConfigGroupsController = Em.Controller.extend(App.ConfigOverridable, {
description: groupRecord.get('description'),
hosts: groupRecord.get('hosts').slice(0),
service_id: groupRecord.get('serviceName'),
- desired_configs: groupRecord.get('desiredConfigs')
+ desired_configs: groupRecord.get('desiredConfigs'),
+ properties: groupRecord.get('properties')
});
}
}
@@ -698,12 +699,15 @@ App.ManageConfigGroupsController = Em.Controller.extend(App.ConfigOverridable, {
App.store.load(App.ServiceConfigGroup, App.configGroupsMapper.generateDefaultGroup(self.get('serviceName'), defaultConfigGroup.get('hosts'), childConfigGroups));
App.store.commit();
if (duplicated) {
- self.get('selectedConfigGroup.properties').forEach(function(item) {
+ self.get('selectedConfigGroup.properties').forEach(function (item) {
var property = App.ServiceConfigProperty.create($.extend(false, {}, item));
property.set('group', App.ServiceConfigGroup.find(newGroupId));
properties.push(property);
});
- App.ServiceConfigGroup.find(newGroupId).set('properties', properties);
+ App.ServiceConfigGroup.find(newGroupId).setProperties({
+ 'properties': properties,
+ 'desiredConfigs': self.get('selectedConfigGroup.desiredConfigs')
+ });
}
self.get('configGroups').pushObject(App.ServiceConfigGroup.find(newGroupId));
this.hide();
@@ -896,8 +900,16 @@ App.ManageConfigGroupsController = Em.Controller.extend(App.ConfigOverridable, {
if (errors.length > 0) {
self.get('subViewController').set('errorMessage', errors.join(". "));
} else {
- self.updateConfigGroupOnServicePage();
- self.hide();
+ if (!self.get('isAddService') && !self.get('isInstaller') && !modifiedConfigGroups.toCreate.everyProperty('properties.length', 0)) {
+ //update service config versions only if it is service configs page and at least one newly created group had properties
+ App.router.get('mainServiceInfoConfigsController').loadServiceConfigVersions().done(function () {
+ self.updateConfigGroupOnServicePage();
+ self.hide();
+ });
+ } else {
+ self.updateConfigGroupOnServicePage();
+ self.hide();
+ }
}
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/ambari-web/app/mixins/common/configs/configs_loader.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/configs/configs_loader.js b/ambari-web/app/mixins/common/configs/configs_loader.js
index 8841f1b..5fc44a9 100644
--- a/ambari-web/app/mixins/common/configs/configs_loader.js
+++ b/ambari-web/app/mixins/common/configs/configs_loader.js
@@ -44,6 +44,7 @@ App.ConfigsLoader = Em.Mixin.create(App.GroupsMappingMixin, {
* @returns {$.ajax}
*/
loadServiceConfigVersions: function () {
+ this.set('allVersionsLoaded', false);
return App.ajax.send({
name: 'service.serviceConfigVersions.get',
data: {
http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/ambari-web/app/mixins/main/service/configs/config_overridable.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/main/service/configs/config_overridable.js b/ambari-web/app/mixins/main/service/configs/config_overridable.js
index 387e0b0..e6a0f0c 100644
--- a/ambari-web/app/mixins/main/service/configs/config_overridable.js
+++ b/ambari-web/app/mixins/main/service/configs/config_overridable.js
@@ -225,19 +225,33 @@ App.ConfigOverridable = Em.Mixin.create({
* @method postNewConfigurationGroup
*/
postNewConfigurationGroup: function (newConfigGroupData, callback) {
- var dataHosts = [];
- newConfigGroupData.hosts.forEach(function (_host) {
- dataHosts.push({
- host_name: _host
- });
- }, this);
+ var properties = {};
+ newConfigGroupData.properties.forEach(function (propertiy) {
+ properties[propertiy.get('name')] = propertiy.get('value');
+ });
+ var newGroupData = {
+ "ConfigGroup": {
+ "group_name": newConfigGroupData.name,
+ "tag": newConfigGroupData.service_id,
+ "description": newConfigGroupData.description,
+ "desired_configs": newConfigGroupData.desired_configs.map(function (cst) {
+ return {
+ type: Em.get(cst, 'site') || Em.get(cst, 'type'),
+ tag: 'version' + (new Date).getTime(),
+ properties: properties
+ };
+ }),
+ "hosts": newConfigGroupData.hosts.map(function (h) {
+ return {
+ host_name: h
+ };
+ })
+ }
+ };
var sendData = {
name: 'config_groups.create',
data: {
- 'group_name': newConfigGroupData.name,
- 'service_id': newConfigGroupData.service_id,
- 'description': newConfigGroupData.description,
- 'hosts': dataHosts
+ data: [newGroupData]
},
success: 'successFunction',
error: 'errorFunction',
@@ -282,7 +296,7 @@ App.ConfigOverridable = Em.Mixin.create({
}),
desired_configs: desiredConfigs.map(function (cst) {
return {
- type: Em.get(cst, 'site') || Em.get(cst, 'type') ,
+ type: Em.get(cst, 'site') || Em.get(cst, 'type'),
tag: Em.get(cst, 'tag')
};
})
http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/ambari-web/app/models/configs/config_group.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/configs/config_group.js b/ambari-web/app/models/configs/config_group.js
index 70379e5..5c76527 100644
--- a/ambari-web/app/models/configs/config_group.js
+++ b/ambari-web/app/models/configs/config_group.js
@@ -16,11 +16,6 @@
* limitations under the License.
*/
-/**
- * THIS IS NOT USED FOR NOW
- * FOR CONFIG GROUPS WE ARE USING OLD MODELS AND LOGIC
- */
-
var App = require('app');
App.ServiceConfigGroup = DS.Model.extend({
http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/ambari-web/app/utils/ajax/ajax.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js
index 54a659e..1187d0a 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -2101,15 +2101,7 @@ var urls = {
'format': function (data) {
return {
type: 'POST',
- data: JSON.stringify([{
- "ConfigGroup": {
- "group_name": data.group_name,
- "tag": data.service_id,
- "description": data.description,
- "desired_configs": data.desired_configs,
- "hosts": data.hosts
- }
- }])
+ data: JSON.stringify(data.data)
}
}
},
http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/ambari-web/app/views/common/configs/config_history_flow.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/config_history_flow.js b/ambari-web/app/views/common/configs/config_history_flow.js
index 3355431..465daca 100644
--- a/ambari-web/app/views/common/configs/config_history_flow.js
+++ b/ambari-web/app/views/common/configs/config_history_flow.js
@@ -183,8 +183,11 @@ App.ConfigHistoryFlowView = Em.View.extend({
this.$('[data-toggle=tooltip], [data-toggle=arrow-tooltip]').remove();
},
-
willInsertElement: function () {
+ this.setDisplayVersion();
+ },
+
+ setDisplayVersion: function () {
var serviceVersions = this.get('serviceVersions');
var startIndex = 0;
var currentIndex = 0;
@@ -205,7 +208,7 @@ App.ConfigHistoryFlowView = Em.View.extend({
}
this.set('startIndex', startIndex);
this.adjustFlowView();
- },
+ }.observes('allVersionsLoaded'),
onChangeConfigGroup: function () {
var serviceVersions = this.get('serviceVersions');
http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js b/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js
index 4828869..bfc88f4 100644
--- a/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js
+++ b/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js
@@ -306,6 +306,7 @@ describe('App.ManageConfigGroupsController', function() {
popup.hide.restore();
});
it("", function () {
+ manageConfigGroupsController.set('hostsModifiedConfigGroups', {toCreate: []});
popup.onPrimary();
expect(popup.runClearCGQueue.calledOnce).to.be.true;
expect(popup.runModifyCGQueue.calledOnce).to.be.true;