From 47384e30cc20d10081cbd1ac1f07533a53905f7c Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Thu, 19 Sep 2013 18:34:42 -0700 Subject: [PATCH] CLOUDSTACK-4713: EIP/ELB Basic Zone: UI > Network > IP Addresses > make extra API call to get IPs allocated at guest network. --- ui/scripts/network.js | 78 +++++++++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 36 deletions(-) diff --git a/ui/scripts/network.js b/ui/scripts/network.js index 9d4cf3897a3..421582afab7 100755 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -2054,57 +2054,63 @@ }, dataProvider: function(args) { - var data = {}; - listViewDataProvider(args, data); - - //The following 10 lines caused CLOUDSTACK-4713 (EIP/ELB Basic Zone - unable to see any IPs that are acquired) - /* - if (g_supportELB == "guest") // IPs are allocated on guest network - $.extend(data, { - forvirtualnetwork: false, - forloadbalancing: true - }); - else if (g_supportELB == "public") // IPs are allocated on public network - $.extend(data, { - forvirtualnetwork: true, - forloadbalancing: true - }); - */ - + var items = []; + var data = {}; + listViewDataProvider(args, data); if (args.context.networks) { $.extend(data, { associatedNetworkId: args.context.networks[0].id }); - } - if ("vpc" in args.context) { $.extend(data, { vpcid: args.context.vpc[0].id }); - } - + } + $.ajax({ url: createURL('listPublicIpAddresses'), - data: data, + data: $.extend({}, data, { + forvirtualnetwork: true, //IPs are allocated on public network + }), dataType: "json", - async: true, + async: false, success: function(json) { - var items = json.listpublicipaddressesresponse.publicipaddress; - - $(items).each(function() { - getExtaPropertiesForIpObj(this, args); - }); - - args.response.success({ - actionFilter: actionFilters.ipAddress, - data: items - }); - }, - error: function(data) { - args.response.error(parseXMLHttpResponse(data)); + var ips = json.listpublicipaddressesresponse.publicipaddress; + if(ips != null) { + for(var i = 0; i < ips.length; i++) { + getExtaPropertiesForIpObj(ips[i], args); + items.push(ips[i]); + } + } } }); + + if (g_supportELB == "guest") { + $.ajax({ + url: createURL('listPublicIpAddresses'), + data: $.extend({}, data, { + forvirtualnetwork: false, // ELB IPs are allocated on guest network + forloadbalancing: true + }), + dataType: "json", + async: false, + success: function(json) { + var ips = json.listpublicipaddressesresponse.publicipaddress; + if(ips != null) { + for(var i = 0; i < ips.length; i++) { + getExtaPropertiesForIpObj(ips[i], args); + items.push(ips[i]); + } + } + } + }); + } + + args.response.success({ + actionFilter: actionFilters.ipAddress, + data: items + }); }, // Detail view