From b02e9f00106a705e862cd859e021d21c9780da68 Mon Sep 17 00:00:00 2001 From: Nitin Kumar Maharana Date: Thu, 14 Jan 2016 12:04:13 +0530 Subject: [PATCH] CLOUDSTACK-9235: Autoscale button is missing in VPC In case of VPC, it checks the services available. If LB is there, It checks the provider is Netscaler then it shows the button or hides it. --- ui/scripts/network.js | 49 +++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/ui/scripts/network.js b/ui/scripts/network.js index cdfbcaa2d5a..e4a54e11b63 100755 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -3643,22 +3643,7 @@ success: function(json) { var networkOffering = json.listnetworkofferingsresponse.networkoffering[0]; var services = networkOffering.service; - if (services != null) { - for (var i = 0; i < services.length; i++) { - if (services[i].name == 'Lb') { - var providers = services[i].provider; - if (providers != null) { - for (var k = 0; k < providers.length; k++) { - if (providers[k].name == 'Netscaler') { - lbProviderIsNetscaler = true; - break; - } - } - } - break; - } - } - } + lbProviderIsNetscaler = checkIfNetScalerProviderIsEnabled(services); } }); if (lbProviderIsNetscaler == true) { //AutoScale is only supported on Netscaler (but not on any other provider like VirtualRouter) @@ -3667,8 +3652,16 @@ return 2; //hide Autoscale button (both header and form) } } else { //from VPC section - //VPC doesn't support autoscale - return 2; + var lbProviderIsNetscaler; + var services = args.context.vpc[0].service; + + lbProviderIsNetscaler = checkIfNetScalerProviderIsEnabled(services); + + if (lbProviderIsNetscaler == true) { //AutoScale is only supported on Netscaler (but not on any other provider like VirtualRouter) + return false; //show AutoScale button + } else { + return 2; //hide Autoscale button (both header and form) + } } } }, @@ -6525,6 +6518,26 @@ } }; + function checkIfNetScalerProviderIsEnabled(services) { + if (services != null) { + for (var i = 0; i < services.length; i++) { + if (services[i].name == 'Lb') { + var providers = services[i].provider; + if (providers != null) { + for (var k = 0; k < providers.length; k++) { + if (providers[k].name == 'Netscaler') { + return true; + } + } + } + return false; + } + } + } + + return false; + } + function getExtaPropertiesForIpObj(ipObj, args) { if (!('vpc' in args.context)) { //***** Guest Network section > Guest Network page > IP Address page ***** var services = args.context.networks[0].service;