You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by on...@apache.org on 2015/08/17 14:02:36 UTC
ambari git commit: AMBARI-12786. App.alertGroupsMapper shouldn't
commit not changed data (onechiporenko)
Repository: ambari
Updated Branches:
refs/heads/trunk 930d44999 -> 0f693987c
AMBARI-12786. App.alertGroupsMapper shouldn't commit not changed data (onechiporenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0f693987
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0f693987
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0f693987
Branch: refs/heads/trunk
Commit: 0f693987c6162e0edf7716af543198ac65e8e603
Parents: 930d449
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Mon Aug 17 14:49:01 2015 +0300
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Mon Aug 17 15:02:26 2015 +0300
----------------------------------------------------------------------
ambari-web/app/mappers/alert_groups_mapper.js | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/0f693987/ambari-web/app/mappers/alert_groups_mapper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mappers/alert_groups_mapper.js b/ambari-web/app/mappers/alert_groups_mapper.js
index 50a8ea5..fffbd2c 100644
--- a/ambari-web/app/mappers/alert_groups_mapper.js
+++ b/ambari-web/app/mappers/alert_groups_mapper.js
@@ -20,6 +20,7 @@ var App = require('app');
/**
* Mapper for <code>App.AlertGroup</code>
* Save general information
+ * Doesn't save not changed data (check it using <code>App.cache['previousAlertGroupsFullMap']</code>)
* Use <code>App.cache['previousAlertGroupsMap']</code> to store map alertDefinitions-alertGroups. This map is used
* in the <code>App.AlertDefinitionsMapper</code> to correctly link alertDefinitions and alertGroups
*/
@@ -39,10 +40,14 @@ App.alertGroupsMapper = App.QuickDataMapper.create({
},
map: function (json) {
+ if(Em.isNone(App.cache['previousAlertGroupsFullMap'])) {
+ App.cache['previousAlertGroupsFullMap'] = {};
+ }
if (!Em.isNone(json, 'items')) {
-
+ console.time('App.alertGroupsMapper execution time');
var alertGroups = [],
self = this,
+ groupsMap = {},
groupsToDelete = App.AlertGroup.find().mapProperty('id'),
/**
* AlertGroups-map for <code>App.AlertDefinitionsMappers</code>
@@ -65,7 +70,7 @@ App.alertGroupsMapper = App.QuickDataMapper.create({
group.targets = [];
group.definitions = [];
if (item.AlertGroup.definitions) {
- item.AlertGroup.definitions.forEach(function(definition) {
+ item.AlertGroup.definitions.forEach(function (definition) {
if (!group.definitions.contains(definition.id)) {
group.definitions.push(definition.id);
}
@@ -76,7 +81,7 @@ App.alertGroupsMapper = App.QuickDataMapper.create({
});
}
if (item.AlertGroup.targets) {
- item.AlertGroup.targets.forEach(function(target) {
+ item.AlertGroup.targets.forEach(function (target) {
if (!group.targets.contains(target.id)) {
group.targets.push(target.id);
}
@@ -86,7 +91,14 @@ App.alertGroupsMapper = App.QuickDataMapper.create({
alertNotificationsGroupsMap[target.id].push(group.id);
});
}
- alertGroups.push(group);
+
+ groupsMap[group.id] = group;
+ var previousGroup = App.cache['previousAlertGroupsFullMap'][group.id] ? App.cache['previousAlertGroupsFullMap'][group.id] : {};
+ var changedFields = self.getDiscrepancies(group, previousGroup, ['name', 'description', 'default', 'targets', 'definitions']);
+ if (Object.keys(changedFields).length) {
+ alertGroups.push(group);
+ }
+
}, this);
groupsToDelete.forEach(function(groupId) {
@@ -94,9 +106,11 @@ App.alertGroupsMapper = App.QuickDataMapper.create({
});
App.cache['previousAlertGroupsMap'] = alertDefinitionsGroupsMap;
+ App.cache['previousAlertGroupsFullMap'] = groupsMap;
App.cache['alertNotificationsGroupsMap'] = alertNotificationsGroupsMap;
App.store.loadMany(this.get('model'), alertGroups);
App.store.commit();
+ console.timeEnd('App.alertGroupsMapper execution time');
}
}
});