|
@@ -36,11 +36,19 @@ App.serviceConfigVersionsMapper = App.QuickDataMapper.create({
|
|
is_compatible: 'is_cluster_compatible'
|
|
is_compatible: 'is_cluster_compatible'
|
|
},
|
|
},
|
|
map: function (json) {
|
|
map: function (json) {
|
|
|
|
+ console.time('App.serviceConfigVersionsMapper');
|
|
var result = [];
|
|
var result = [];
|
|
var itemIds = {};
|
|
var itemIds = {};
|
|
var serviceToHostMap = {};
|
|
var serviceToHostMap = {};
|
|
|
|
+ var currentVersionsMap = {};
|
|
|
|
|
|
if (json && json.items) {
|
|
if (json && json.items) {
|
|
|
|
+ App.ServiceConfigVersion.find().forEach(function (v) {
|
|
|
|
+ if (v.get('isCurrent')) {
|
|
|
|
+ currentVersionsMap[v.get('serviceName') + "_" + v.get('groupName')] = v;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
json.items.forEach(function (item, index) {
|
|
json.items.forEach(function (item, index) {
|
|
var parsedItem = this.parseIt(item, this.get('config'));
|
|
var parsedItem = this.parseIt(item, this.get('config'));
|
|
parsedItem.id = parsedItem.service_name + '_' + parsedItem.version;
|
|
parsedItem.id = parsedItem.service_name + '_' + parsedItem.version;
|
|
@@ -52,18 +60,19 @@ App.serviceConfigVersionsMapper = App.QuickDataMapper.create({
|
|
} else {
|
|
} else {
|
|
serviceToHostMap[item.service_name] = item.hosts;
|
|
serviceToHostMap[item.service_name] = item.hosts;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ // if loaded only latest versions(later than current), then current version should be reset
|
|
|
|
+ if (parsedItem.is_current && currentVersionsMap[parsedItem.service_name + "_" + parsedItem.group_name]) {
|
|
|
|
+ currentVersionsMap[parsedItem.service_name + "_" + parsedItem.group_name].set('isCurrent', false);
|
|
|
|
+ }
|
|
result.push(parsedItem);
|
|
result.push(parsedItem);
|
|
}, this);
|
|
}, this);
|
|
|
|
|
|
- this.get('model').find().forEach(function (item) {
|
|
|
|
- if (!itemIds[item.get('id')]) {
|
|
|
|
- item.set('isRequested', false);
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
var itemTotal = parseInt(json.itemTotal);
|
|
var itemTotal = parseInt(json.itemTotal);
|
|
if (!isNaN(itemTotal)) {
|
|
if (!isNaN(itemTotal)) {
|
|
App.router.set('mainConfigHistoryController.filteredCount', itemTotal);
|
|
App.router.set('mainConfigHistoryController.filteredCount', itemTotal);
|
|
}
|
|
}
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* this code sets hostNames for default config group
|
|
* this code sets hostNames for default config group
|
|
* by excluding hostNames that belongs to not default groups
|
|
* by excluding hostNames that belongs to not default groups
|
|
@@ -82,17 +91,9 @@ App.serviceConfigVersionsMapper = App.QuickDataMapper.create({
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
- result.forEach(function(v) {
|
|
|
|
- if (v.is_current) {
|
|
|
|
- var formerCurrent = App.ServiceConfigVersion.find().filterProperty('isCurrent').filterProperty('serviceName', v.service_name).findProperty('groupName', v.group_name);
|
|
|
|
- if (formerCurrent) {
|
|
|
|
- formerCurrent.set('isCurrent', false);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- App.store.commit();
|
|
|
|
|
|
+ this.get('model').find().clear();
|
|
App.store.loadMany(this.get('model'), result);
|
|
App.store.loadMany(this.get('model'), result);
|
|
|
|
+ console.timeEnd('App.serviceConfigVersionsMapper');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|