From 3787f4d92bd2b24143dec23dbe89edd242f8c3a6 Mon Sep 17 00:00:00 2001 From: Nitin Kumar Maharana Date: Thu, 14 Jan 2016 12:25:22 +0530 Subject: [PATCH] CLOUDSTACK-9236: Load Balancing Health Check button displayed when non-NetScaler offering is used This button will be shown only when the load balancer is NetScaler. Otherwise it is hidden. --- ui/scripts/network.js | 52 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/ui/scripts/network.js b/ui/scripts/network.js index cdfbcaa2d5a..63ef014ad7f 100755 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -3620,7 +3620,37 @@ requireValidation: true, buttonLabel: 'Configure', action: cloudStack.uiCustom.healthCheck() - + }, + isHidden: function(args) { + if (!('vpc' in args.context)) { //From Guest Network section + var lbProviderIsNetscaler = false; + $.ajax({ + url: createURL('listNetworkOfferings'), + data: { + id: args.context.networks[0].networkofferingid + }, + async: false, + success: function(json) { + var networkOffering = json.listnetworkofferingsresponse.networkoffering[0]; + var services = networkOffering.service; + lbProviderIsNetscaler = checkIfNetScalerProviderIsEnabled(services); + } + }); + if (lbProviderIsNetscaler == true) { //Health-Check is only supported on Netscaler (but not on any other provider) + return false; //Show Health-Check button + } else { + return 2; //Hide Health-Check button (Both Header and Form) + } + } else { //From VPC section + var lbProviderIsNetscaler; + var services = args.context.vpc[0].service; + lbProviderIsNetscaler = checkIfNetScalerProviderIsEnabled(services); + if (lbProviderIsNetscaler == true) { //Health-Check is only supported on Netscaler (but not on any other provider) + return false; //Show Health-Check button + } else { + return 2; //Hide Health-Check button (both Header and Form) + } + } } }, @@ -6525,6 +6555,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;