Add internal LB count to VPC chart
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4ce76429 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4ce76429 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4ce76429 Branch: refs/heads/master Commit: 4ce76429e28a1e1da6ca14d79082da1f1cf0a74f Parents: d019359 Author: Brian Federle <bfede...@gmail.com> Authored: Tue May 21 16:16:27 2013 -0700 Committer: Brian Federle <bfede...@gmail.com> Committed: Tue May 21 16:16:27 2013 -0700 ---------------------------------------------------------------------- ui/scripts/vpc.js | 139 +++++++++++++++++++++++++++++------------------ 1 files changed, 86 insertions(+), 53 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4ce76429/ui/scripts/vpc.js ---------------------------------------------------------------------- diff --git a/ui/scripts/vpc.js b/ui/scripts/vpc.js index 23e7b0c..f96d552 100644 --- a/ui/scripts/vpc.js +++ b/ui/scripts/vpc.js @@ -3084,72 +3084,105 @@ async: true, success: function(json) { var networks = json.listnetworksresponse.network; - if(networks != null && networks.length > 0) { - for(var i = 0; i < networks.length; i++) { - $.ajax({ - url: createURL("listVirtualMachines"), - dataType: "json", - data: { - networkid: networks[i].id, - listAll: true - }, - async: false, - success: function(json) { - networks[i].virtualMachines = json.listvirtualmachinesresponse.virtualmachine; - } - }); + var loadBalancers; + var error = false; + + // Get load balancers + $.ajax({ + url: createURL('listLoadBalancers'), + data: { details: 'min', vpcid: args.context.vpc[0].id }, + success: function(json) { + loadBalancers = json.listloadbalancerssresponse.loadbalancer ? + json.listloadbalancerssresponse.loadbalancer : [] + }, + error: function(json) { + error = true; } - } - args.response.success({ - routerDashboard: [ - { - id: 'privateGateways', - name: 'Private gateways', - total: 0 - }, - { - id: 'publicIPs', - name: 'Public IP addresses', - total: 0 - }, - { - id: 'siteToSiteVPNs', - name: 'Site-to-site VPNs', - total: 0 - }, - { - id: 'networkACLLists', - name: 'Network ACL lists', - total: 0 + }); + + var dataTimer = setInterval(function() { + console.log('timer'); + + var complete = loadBalancers; + + if (complete) { + clearInterval(dataTimer); + + if(networks != null && networks.length > 0) { + for(var i = 0; i < networks.length; i++) { + $.ajax({ + url: createURL("listVirtualMachines"), + dataType: "json", + data: { + networkid: networks[i].id, + listAll: true + }, + async: false, + success: function(json) { + networks[i].virtualMachines = json.listvirtualmachinesresponse.virtualmachine; + } + }); + } } - ], - tiers: $(networks).map(function(index, tier) { - return $.extend(tier, { - _dashboardItems: [ + args.response.success({ + routerDashboard: [ { - id: 'tierLoadBalancers', - name: 'Load balancers', - totalMultiLine: '0 Internal<br/>0 Public' + id: 'privateGateways', + name: 'Private gateways', + total: 0 }, { - id: 'tierPortForwarders', - name: 'Port forwarders', + id: 'publicIPs', + name: 'Public IP addresses', total: 0 }, { - id: 'tierStaticNATs', - name: 'Static NATs', + id: 'siteToSiteVPNs', + name: 'Site-to-site VPNs', total: 0 }, { - id: 'tierVMs', - name: 'Virtual Machines', - total: $.isArray(tier.virtualMachines) ? tier.virtualMachines.length : 0 + id: 'networkACLLists', + name: 'Network ACL lists', + total: 0 } - ] + ], + tiers: $(networks).map(function(index, tier) { + var internalLoadBalancers = $.grep(loadBalancers, function(lb) { + return lb.networkid == tier.id; + }); + + return $.extend(tier, { + _dashboardItems: [ + { + id: 'tierLoadBalancers', + name: 'Load balancers', + totalMultiLine: internalLoadBalancers.length + ' Internal<br/>0 Public' + }, + { + id: 'tierPortForwarders', + name: 'Port forwarders', + total: 0 + }, + { + id: 'tierStaticNATs', + name: 'Static NATs', + total: 0 + }, + { + id: 'tierVMs', + name: 'Virtual Machines', + total: $.isArray(tier.virtualMachines) ? tier.virtualMachines.length : 0 + } + ] + }); + }) }); - }) - }); + } else if (error) { + clearInterval(dataTimer); + cloudStack.dialog.notice({ message: 'Error loading dashboard data.' }); + } + }, 500); } }); }