From e8c4b2b44bb4951714d414a1f8bb4d4cf33fc883 Mon Sep 17 00:00:00 2001 From: Nitin Kumar Maharana Date: Tue, 29 Sep 2015 00:09:15 +0530 Subject: [PATCH] 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. --- ui/scripts/network.js | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/ui/scripts/network.js b/ui/scripts/network.js index 110bc4b98e4..5d3ef9bea50 100755 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -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; },