CLOUDSTACK-8919: Slow UI response while loading the list of networks in network tab.

Instead of searching for each network, now it is searching for each zone.
For basic zone, it will show the security group directly because by default securitygroupsenabled is true.
For advanced zone, check the securitygroupsenabled option in each zone. If any one has value true, then show.
This commit is contained in:
Nitin Kumar Maharana 2015-09-29 00:09:15 +05:30 committed by Nitin Kumar Maharana
parent 930ef8dc7b
commit e8c4b2b44b
1 changed files with 28 additions and 15 deletions

View File

@ -376,7 +376,9 @@
sectionSelect: {
preFilter: function(args) {
var sectionsToShow = ['networks'];
var securityGroupsEnabledFound = false; //Until we found a zone where securitygroupsenabled is true.
//This call to show VPC and VPN Customer Gateway sections, if zone is advanced.
$.ajax({
url: createURL('listZones'),
data: {
@ -384,29 +386,40 @@
},
async: false,
success: function(json) {
advZoneObjs = json.listzonesresponse.zone;
advZoneObjs = json.listzonesresponse ? json.listzonesresponse.zone : null;
if (advZoneObjs != null && advZoneObjs.length > 0) {
sectionsToShow.push('vpc');
sectionsToShow.push('vpnCustomerGateway');
//At the same time check if any advanced zone has securitygroupsenabled is true.
//If so, show Security Group section.
for (var i = 0; (i < advZoneObjs.length) && !securityGroupsEnabledFound; i++) {
if (advZoneObjs[i].securitygroupsenabled) {
securityGroupsEnabledFound = true;
sectionsToShow.push('securityGroups');
}
}
}
}
});
$.ajax({
url: createURL('listNetworks', {
ignoreProject: true
}),
data: {
supportedServices: 'SecurityGroup',
listAll: true
},
async: false,
success: function(json) {
if (json.listnetworksresponse.network != null && json.listnetworksresponse.network.length > 0) {
sectionsToShow.push('securityGroups');
//If we didn't find any advanced zone whose securitygroupsenabled is true.
//Search in all Basic zones.
if (!securityGroupsEnabledFound) {
$.ajax({
url: createURL('listZones'),
data: {
networktype: 'Basic'
},
async: false,
success: function(json) {
var basicZoneObjs = json.listzonesresponse ? json.listzonesresponse.zone : null;
if (basicZoneObjs != null && basicZoneObjs.length > 0) {
sectionsToShow.push('securityGroups');
}
}
}
});
});
}
return sectionsToShow;
},