You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by pr...@apache.org on 2012/09/20 10:49:22 UTC
git commit: AutoScale. Re-organized NetScalerResource. Bringing
autoscale functions in a logical order.
Updated Branches:
refs/heads/autoscale 259d0849a -> 5598794f1
AutoScale. Re-organized NetScalerResource. Bringing autoscale functions in a logical order.
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/5598794f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/5598794f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/5598794f
Branch: refs/heads/autoscale
Commit: 5598794f1eea2a6659d36abb1e32d10f4e1aa5a4
Parents: 259d084
Author: Vijay venkatachalam <vi...@citrix.com>
Authored: Thu Sep 20 14:18:58 2012 +0530
Committer: Pranav Saxena <pr...@citrix.com>
Committed: Thu Sep 20 14:18:58 2012 +0530
----------------------------------------------------------------------
.../cloud/network/resource/NetscalerResource.java | 444 ++++++++-------
1 files changed, 228 insertions(+), 216 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5598794f/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java b/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java
index b3f801e..ffdad78 100644
--- a/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java
+++ b/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java
@@ -43,7 +43,8 @@ import com.citrix.netscaler.nitro.resource.config.network.vlan_nsip_binding;
import com.citrix.netscaler.nitro.resource.config.ns.nsconfig;
import com.citrix.netscaler.nitro.resource.config.ns.nshardware;
import com.citrix.netscaler.nitro.resource.config.ns.nsip;
-import com.citrix.netscaler.nitro.resource.config.autoscale.*;
+import com.citrix.netscaler.nitro.resource.config.timer.timerpolicy;
+import com.citrix.netscaler.nitro.resource.config.timer.timertrigger_timerpolicy_binding;
import com.citrix.netscaler.nitro.resource.stat.lb.lbvserver_stats;
import com.citrix.netscaler.nitro.service.nitro_service;
import com.citrix.netscaler.nitro.util.filtervalue;
@@ -1267,7 +1268,7 @@ public class NetscalerResource implements ServerResource {
}
- private boolean nsServiceGroupExisits(String lbVServerName ) throws ExecutionException {
+ private boolean nsServiceGroupExists(String lbVServerName ) throws ExecutionException {
try {
return servicegroup.get(_netscalerService, lbVServerName) != null;
} catch (nitro_exception e) {
@@ -1456,202 +1457,30 @@ public class NetscalerResource implements ServerResource {
}
}
- private boolean isScaleUpPolicy(AutoScalePolicyTO autoScalePolicyTO) {
- return autoScalePolicyTO.getAction().equals("scaleup");
- }
-
- private boolean isScaleDownPolicy(AutoScalePolicyTO autoScalePolicyTO) {
- return autoScalePolicyTO.getAction().equals("scaledown");
- }
+ public synchronized void applyAutoScaleConfig(LoadBalancerTO loadBalancer) throws Exception, ExecutionException {
- private void removeAutoScalePolicy(String timerName, String policyName, boolean isCleanUp) throws Exception {
- // unbind timer policy
- // unbbind timer trigger lb_astimer -policyName lb_policy_scaleUp
- com.citrix.netscaler.nitro.resource.config.timer.timertrigger_timerpolicy_binding timer_policy_binding = new com.citrix.netscaler.nitro.resource.config.timer.timertrigger_timerpolicy_binding();
- try {
- timer_policy_binding.set_name(timerName);
- timer_policy_binding.set_policyname(policyName);
- timer_policy_binding.set_global("DEFAULT");
- timer_policy_binding.delete(_netscalerService, timer_policy_binding);
- } catch (Exception e) {
- // Ignore Exception on cleanup
- if(!isCleanUp) throw e;
+ AutoScaleVmGroupTO vmGroupTO = loadBalancer.getAutoScaleVmGroupTO();
+ if(!isAutoScaleSupportedInNetScaler()) {
+ throw new ExecutionException("AutoScale not supported in this version of NetScaler");
}
-
- // Removing Timer policy
- // rm timer policy lb_policy_scaleUp_cpu_mem
- com.citrix.netscaler.nitro.resource.config.timer.timerpolicy timerPolicy = new com.citrix.netscaler.nitro.resource.config.timer.timerpolicy();
- try {
- timerPolicy.set_name(policyName);
- timerPolicy.delete(_netscalerService, timerPolicy);
- } catch (Exception e) {
- // Ignore Exception on cleanup
- if(!isCleanUp) throw e;
+ if(vmGroupTO.getState().equals("new")) {
+ assert !loadBalancer.isRevoked();
+ createAutoScaleConfig(loadBalancer);
}
-
- }
-
- @SuppressWarnings("static-access")
- private synchronized boolean removeAutoScaleConfig(LoadBalancerTO loadBalancerTO) throws Exception, ExecutionException {
- String srcIp = loadBalancerTO.getSrcIp();
- int srcPort = loadBalancerTO.getSrcPort();
-
- String nsVirtualServerName = generateNSVirtualServerName(srcIp, srcPort);
- String serviceGroupName = generateAutoScaleServiceGroupName(srcIp, srcPort);
-
- disableAutoScaleConfig(loadBalancerTO, false);
-
- if(isServiceGroupBoundToVirtualServer(nsVirtualServerName, serviceGroupName)) {
- // UnBind autoscale service group
- // unbind lb vserver lb lb_autoscaleGroup
- lbvserver_servicegroup_binding vserver_servicegroup_binding = new lbvserver_servicegroup_binding();
- vserver_servicegroup_binding.set_name(nsVirtualServerName);
- vserver_servicegroup_binding.set_servicegroupname(serviceGroupName);
- vserver_servicegroup_binding.delete(_netscalerService, vserver_servicegroup_binding);
+ else if(loadBalancer.isRevoked() || vmGroupTO.getState().equals("revoke")) {
+ removeAutoScaleConfig(loadBalancer);
}
-
- if(nsServiceGroupExisits(serviceGroupName)) {
- // Remove autoscale service group
- com.citrix.netscaler.nitro.resource.config.basic.servicegroup serviceGroup = new com.citrix.netscaler.nitro.resource.config.basic.servicegroup();
- serviceGroup.set_servicegroupname(serviceGroupName);
- serviceGroup.delete(_netscalerService, serviceGroup);
+ else if(vmGroupTO.getState().equals("enabled")) {
+ assert !loadBalancer.isRevoked();
+ enableAutoScaleConfig(loadBalancer, false);
}
-
- removeLBVirtualServer(nsVirtualServerName);
-
- return true;
- }
-
- @SuppressWarnings("static-access")
- private synchronized boolean disableAutoScaleConfig(LoadBalancerTO loadBalancerTO, boolean isCleanUp) throws Exception {
- String srcIp = loadBalancerTO.getSrcIp();
- int srcPort = loadBalancerTO.getSrcPort();
-
- String nsVirtualServerName = generateNSVirtualServerName(srcIp, srcPort);
- String profileName = generateAutoScaleProfileName(srcIp, srcPort);
- String timerName = generateAutoScaleTimerName(srcIp, srcPort);
- String scaleDownActionName = generateAutoScaleScaleDownActionName(srcIp, srcPort);
- String scaleUpActionName = generateAutoScaleScaleUpActionName(srcIp, srcPort);
- String mtName = generateSnmpMetricTableName(srcIp, srcPort);
- String monitorName = generateSnmpMonitorName(srcIp, srcPort);
- String serviceGroupName = generateAutoScaleServiceGroupName(srcIp, srcPort);
- AutoScaleVmGroupTO vmGroupTO = loadBalancerTO.getAutoScaleVmGroupTO();
- List<AutoScalePolicyTO> policies = vmGroupTO.getPolicies();
- String minMemberPolicyName = generateAutoScaleMinPolicyName(srcIp, srcPort);
- String maxMemberPolicyName = generateAutoScaleMaxPolicyName(srcIp, srcPort);
-
- try {
-
- /* Delete min/max member policies */
-
- removeAutoScalePolicy(timerName, minMemberPolicyName, isCleanUp);
-
- removeAutoScalePolicy(timerName, maxMemberPolicyName, isCleanUp);
-
- boolean isSnmp = false;
- /* Create Counters */
- for (AutoScalePolicyTO autoScalePolicyTO : policies) {
- List<ConditionTO> conditions = autoScalePolicyTO.getConditions();
- for (ConditionTO conditionTO : conditions) {
- CounterTO counterTO = conditionTO.getCounter();
- if(counterTO.getSource().equals("snmp")) {
- isSnmp = true;
- break;
- }
- }
- String policyId = Long.toString(autoScalePolicyTO.getId());
- String policyName = generateAutoScalePolicyName(srcIp, srcPort,policyId);
-
- // Removing Timer policy
- removeAutoScalePolicy(timerName, policyName, isCleanUp);
- }
-
- /* Delete AutoScale Config */
- // Delete AutoScale ScaleDown action
- com.citrix.netscaler.nitro.resource.config.autoscale.autoscaleaction scaleDownAction = new com.citrix.netscaler.nitro.resource.config.autoscale.autoscaleaction();
- try {
- scaleDownAction.set_name(scaleDownActionName);
- scaleDownAction.delete(_netscalerService, scaleDownAction);
- } catch (Exception e) {
- // Ignore Exception on cleanup
- if(!isCleanUp) throw e;
- }
-
- // Delete AutoScale ScaleUp action
- com.citrix.netscaler.nitro.resource.config.autoscale.autoscaleaction scaleUpAction = new com.citrix.netscaler.nitro.resource.config.autoscale.autoscaleaction();
- try {
- scaleUpAction.set_name(scaleUpActionName);
- scaleUpAction.delete(_netscalerService, scaleUpAction);
- } catch (Exception e) {
- // Ignore Exception on cleanup
- if(!isCleanUp) throw e;
- }
-
- // Delete Timer
- com.citrix.netscaler.nitro.resource.config.timer.timertrigger timer = new com.citrix.netscaler.nitro.resource.config.timer.timertrigger();
- try {
- timer.set_name(timerName);
- timer.delete(_netscalerService, timer);
- } catch (Exception e) {
- // Ignore Exception on cleanup
- if(!isCleanUp) throw e;
- }
-
- // Delete AutoScale Profile
- com.citrix.netscaler.nitro.resource.config.autoscale.autoscaleprofile autoscaleProfile = new com.citrix.netscaler.nitro.resource.config.autoscale.autoscaleprofile();
- try {
- autoscaleProfile.set_name(profileName);
- autoscaleProfile.delete(_netscalerService, autoscaleProfile);
- } catch (Exception e) {
- // Ignore Exception on cleanup
- if(!isCleanUp) throw e;
- }
-
- if(isSnmp) {
- com.citrix.netscaler.nitro.resource.config.lb.lbmonitor_servicegroup_binding monitor_servicegroup_binding = new com.citrix.netscaler.nitro.resource.config.lb.lbmonitor_servicegroup_binding();
- try {
- monitor_servicegroup_binding.set_monitorname(monitorName);
- monitor_servicegroup_binding.set_servicegroupname(serviceGroupName);
- monitor_servicegroup_binding.delete(_netscalerService, monitor_servicegroup_binding);
- } catch (Exception e) {
- // Ignore Exception on cleanup
- if(!isCleanUp) throw e;
- }
-
- // Delete Monitor
- // rm lb monitor lb_metric_table_mon
- com.citrix.netscaler.nitro.resource.config.lb.lbmonitor monitor = new com.citrix.netscaler.nitro.resource.config.lb.lbmonitor();
- try {
- monitor.set_monitorname(monitorName);
- monitor.set_type("LOAD");
- monitor.delete(_netscalerService, monitor);
- } catch (Exception e) {
- // Ignore Exception on cleanup
- if(!isCleanUp) throw e;
- }
-
- // Delete Metric Table
- com.citrix.netscaler.nitro.resource.config.lb.lbmetrictable metricTable = new com.citrix.netscaler.nitro.resource.config.lb.lbmetrictable();
- try {
- metricTable.set_metrictable(mtName);
- metricTable.delete(_netscalerService, metricTable);
- } catch (Exception e) {
- // Ignore Exception on cleanup
- if(!isCleanUp) throw e;
- }
- }
- } catch (Exception ex) {
- if(!isCleanUp) {
- // Normal course, exception has occurred
- enableAutoScaleConfig(loadBalancerTO, true);
- throw ex;
- } else {
- // Programming error
- throw ex;
- }
+ else if(vmGroupTO.getState().equals("disabled")) {
+ assert !loadBalancer.isRevoked();
+ disableAutoScaleConfig(loadBalancer, false);
+ } else {
+ ///// This should never happen
+ throw new ExecutionException("Unknown vmGroup State :" + vmGroupTO.getState());
}
-
- return true;
}
@SuppressWarnings("static-access")
@@ -1669,7 +1498,7 @@ public class NetscalerResource implements ServerResource {
addLBVirtualServer(nsVirtualServerName, srcIp, srcPort, lbAlgorithm, lbProtocol, loadBalancerTO.getStickinessPolicies(), vmGroupTO);
String serviceGroupName = generateAutoScaleServiceGroupName(srcIp, srcPort);
- if(!nsServiceGroupExisits(serviceGroupName)) {
+ if(!nsServiceGroupExists(serviceGroupName)) {
// add servicegroup lb_autoscaleGroup -autoscale POLICY -memberPort 80
int memberPort = vmGroupTO.getMemberPort();
try {
@@ -1704,6 +1533,45 @@ public class NetscalerResource implements ServerResource {
}
@SuppressWarnings("static-access")
+ private synchronized boolean removeAutoScaleConfig(LoadBalancerTO loadBalancerTO) throws Exception, ExecutionException {
+ String srcIp = loadBalancerTO.getSrcIp();
+ int srcPort = loadBalancerTO.getSrcPort();
+
+ String nsVirtualServerName = generateNSVirtualServerName(srcIp, srcPort);
+ String serviceGroupName = generateAutoScaleServiceGroupName(srcIp, srcPort);
+
+ disableAutoScaleConfig(loadBalancerTO, false);
+
+ if(isServiceGroupBoundToVirtualServer(nsVirtualServerName, serviceGroupName)) {
+ // UnBind autoscale service group
+ // unbind lb vserver lb lb_autoscaleGroup
+ lbvserver_servicegroup_binding vserver_servicegroup_binding = new lbvserver_servicegroup_binding();
+ try {
+ vserver_servicegroup_binding.set_name(nsVirtualServerName);
+ vserver_servicegroup_binding.set_servicegroupname(serviceGroupName);
+ vserver_servicegroup_binding.delete(_netscalerService, vserver_servicegroup_binding);
+ } catch (Exception e) {
+ throw e;
+ }
+ }
+
+ if(nsServiceGroupExists(serviceGroupName)) {
+ // Remove autoscale service group
+ com.citrix.netscaler.nitro.resource.config.basic.servicegroup serviceGroup = new com.citrix.netscaler.nitro.resource.config.basic.servicegroup();
+ try {
+ serviceGroup.set_servicegroupname(serviceGroupName);
+ serviceGroup.delete(_netscalerService, serviceGroup);
+ } catch (Exception e) {
+ throw e;
+ }
+ }
+
+ removeLBVirtualServer(nsVirtualServerName);
+
+ return true;
+ }
+
+ @SuppressWarnings("static-access")
private synchronized boolean enableAutoScaleConfig(LoadBalancerTO loadBalancerTO, boolean isCleanUp) throws Exception {
String srcIp = loadBalancerTO.getSrcIp();
int srcPort = loadBalancerTO.getSrcPort();
@@ -1992,6 +1860,140 @@ public class NetscalerResource implements ServerResource {
return true;
}
+
+ @SuppressWarnings("static-access")
+ private synchronized boolean disableAutoScaleConfig(LoadBalancerTO loadBalancerTO, boolean isCleanUp) throws Exception {
+ String srcIp = loadBalancerTO.getSrcIp();
+ int srcPort = loadBalancerTO.getSrcPort();
+
+ String nsVirtualServerName = generateNSVirtualServerName(srcIp, srcPort);
+ String profileName = generateAutoScaleProfileName(srcIp, srcPort);
+ String timerName = generateAutoScaleTimerName(srcIp, srcPort);
+ String scaleDownActionName = generateAutoScaleScaleDownActionName(srcIp, srcPort);
+ String scaleUpActionName = generateAutoScaleScaleUpActionName(srcIp, srcPort);
+ String mtName = generateSnmpMetricTableName(srcIp, srcPort);
+ String monitorName = generateSnmpMonitorName(srcIp, srcPort);
+ String serviceGroupName = generateAutoScaleServiceGroupName(srcIp, srcPort);
+ AutoScaleVmGroupTO vmGroupTO = loadBalancerTO.getAutoScaleVmGroupTO();
+ List<AutoScalePolicyTO> policies = vmGroupTO.getPolicies();
+ String minMemberPolicyName = generateAutoScaleMinPolicyName(srcIp, srcPort);
+ String maxMemberPolicyName = generateAutoScaleMaxPolicyName(srcIp, srcPort);
+
+ try {
+
+ /* Delete min/max member policies */
+
+ removeAutoScalePolicy(timerName, minMemberPolicyName, isCleanUp);
+
+ removeAutoScalePolicy(timerName, maxMemberPolicyName, isCleanUp);
+
+ boolean isSnmp = false;
+ /* Create Counters */
+ for (AutoScalePolicyTO autoScalePolicyTO : policies) {
+ List<ConditionTO> conditions = autoScalePolicyTO.getConditions();
+ for (ConditionTO conditionTO : conditions) {
+ CounterTO counterTO = conditionTO.getCounter();
+ if(counterTO.getSource().equals("snmp")) {
+ isSnmp = true;
+ break;
+ }
+ }
+ String policyId = Long.toString(autoScalePolicyTO.getId());
+ String policyName = generateAutoScalePolicyName(srcIp, srcPort,policyId);
+
+ // Removing Timer policy
+ removeAutoScalePolicy(timerName, policyName, isCleanUp);
+ }
+
+ /* Delete AutoScale Config */
+ // Delete AutoScale ScaleDown action
+ com.citrix.netscaler.nitro.resource.config.autoscale.autoscaleaction scaleDownAction = new com.citrix.netscaler.nitro.resource.config.autoscale.autoscaleaction();
+ try {
+ scaleDownAction.set_name(scaleDownActionName);
+ scaleDownAction.delete(_netscalerService, scaleDownAction);
+ } catch (Exception e) {
+ // Ignore Exception on cleanup
+ if(!isCleanUp) throw e;
+ }
+
+ // Delete AutoScale ScaleUp action
+ com.citrix.netscaler.nitro.resource.config.autoscale.autoscaleaction scaleUpAction = new com.citrix.netscaler.nitro.resource.config.autoscale.autoscaleaction();
+ try {
+ scaleUpAction.set_name(scaleUpActionName);
+ scaleUpAction.delete(_netscalerService, scaleUpAction);
+ } catch (Exception e) {
+ // Ignore Exception on cleanup
+ if(!isCleanUp) throw e;
+ }
+
+ // Delete Timer
+ com.citrix.netscaler.nitro.resource.config.timer.timertrigger timer = new com.citrix.netscaler.nitro.resource.config.timer.timertrigger();
+ try {
+ timer.set_name(timerName);
+ timer.delete(_netscalerService, timer);
+ } catch (Exception e) {
+ // Ignore Exception on cleanup
+ if(!isCleanUp) throw e;
+ }
+
+ // Delete AutoScale Profile
+ com.citrix.netscaler.nitro.resource.config.autoscale.autoscaleprofile autoscaleProfile = new com.citrix.netscaler.nitro.resource.config.autoscale.autoscaleprofile();
+ try {
+ autoscaleProfile.set_name(profileName);
+ autoscaleProfile.delete(_netscalerService, autoscaleProfile);
+ } catch (Exception e) {
+ // Ignore Exception on cleanup
+ if(!isCleanUp) throw e;
+ }
+
+ if(isSnmp) {
+ com.citrix.netscaler.nitro.resource.config.lb.lbmonitor_servicegroup_binding monitor_servicegroup_binding = new com.citrix.netscaler.nitro.resource.config.lb.lbmonitor_servicegroup_binding();
+ try {
+ monitor_servicegroup_binding.set_monitorname(monitorName);
+ monitor_servicegroup_binding.set_servicegroupname(serviceGroupName);
+ monitor_servicegroup_binding.delete(_netscalerService, monitor_servicegroup_binding);
+ } catch (Exception e) {
+ // Ignore Exception on cleanup
+ if(!isCleanUp) throw e;
+ }
+
+ // Delete Monitor
+ // rm lb monitor lb_metric_table_mon
+ com.citrix.netscaler.nitro.resource.config.lb.lbmonitor monitor = new com.citrix.netscaler.nitro.resource.config.lb.lbmonitor();
+ try {
+ monitor.set_monitorname(monitorName);
+ monitor.set_type("LOAD");
+ monitor.delete(_netscalerService, monitor);
+ } catch (Exception e) {
+ // Ignore Exception on cleanup
+ if(!isCleanUp) throw e;
+ }
+
+ // Delete Metric Table
+ com.citrix.netscaler.nitro.resource.config.lb.lbmetrictable metricTable = new com.citrix.netscaler.nitro.resource.config.lb.lbmetrictable();
+ try {
+ metricTable.set_metrictable(mtName);
+ metricTable.delete(_netscalerService, metricTable);
+ } catch (Exception e) {
+ // Ignore Exception on cleanup
+ if(!isCleanUp) throw e;
+ }
+ }
+ } catch (Exception ex) {
+ if(!isCleanUp) {
+ // Normal course, exception has occurred
+ enableAutoScaleConfig(loadBalancerTO, true);
+ throw ex;
+ } else {
+ // Programming error
+ throw ex;
+ }
+ }
+
+ return true;
+ }
+
+
private synchronized void addAutoScalePolicy(String timerName,String policyName, long priority, String policyExpression, String action,
int duration, int interval, boolean isCleanUp) throws Exception {
// Adding a autoscale policy
@@ -2031,32 +2033,34 @@ public class NetscalerResource implements ServerResource {
}
}
- public synchronized void applyAutoScaleConfig(LoadBalancerTO loadBalancer) throws Exception, ExecutionException {
-
- AutoScaleVmGroupTO vmGroupTO = loadBalancer.getAutoScaleVmGroupTO();
- if(!isAutoScaleSupportedInNetScaler()) {
- throw new ExecutionException("AutoScale not supported in this version of NetScaler");
- }
- if(vmGroupTO.getState().equals("new")) {
- assert !loadBalancer.isRevoked();
- createAutoScaleConfig(loadBalancer);
- }
- else if(loadBalancer.isRevoked() || vmGroupTO.getState().equals("revoke")) {
- removeAutoScaleConfig(loadBalancer);
- }
- else if(vmGroupTO.getState().equals("enabled")) {
- assert !loadBalancer.isRevoked();
- enableAutoScaleConfig(loadBalancer, false);
+ private void removeAutoScalePolicy(String timerName, String policyName, boolean isCleanUp) throws Exception {
+ // unbind timer policy
+ // unbbind timer trigger lb_astimer -policyName lb_policy_scaleUp
+ com.citrix.netscaler.nitro.resource.config.timer.timertrigger_timerpolicy_binding timer_policy_binding = new com.citrix.netscaler.nitro.resource.config.timer.timertrigger_timerpolicy_binding();
+ try {
+ timer_policy_binding.set_name(timerName);
+ timer_policy_binding.set_policyname(policyName);
+ timer_policy_binding.set_global("DEFAULT");
+ timer_policy_binding.delete(_netscalerService, timer_policy_binding);
+ } catch (Exception e) {
+ // Ignore Exception on cleanup
+ if(!isCleanUp) throw e;
}
- else if(vmGroupTO.getState().equals("disabled")) {
- assert !loadBalancer.isRevoked();
- disableAutoScaleConfig(loadBalancer, false);
- } else {
- ///// This should never happen
- throw new ExecutionException("Unknown vmGroup State :" + vmGroupTO.getState());
+
+ // Removing Timer policy
+ // rm timer policy lb_policy_scaleUp_cpu_mem
+ com.citrix.netscaler.nitro.resource.config.timer.timerpolicy timerPolicy = new com.citrix.netscaler.nitro.resource.config.timer.timerpolicy();
+ try {
+ timerPolicy.set_name(policyName);
+ timerPolicy.delete(_netscalerService, timerPolicy);
+ } catch (Exception e) {
+ // Ignore Exception on cleanup
+ if(!isCleanUp) throw e;
}
+
}
+
private boolean isAutoScaleSupportedInNetScaler() throws ExecutionException {
autoscaleprofile autoscaleProfile = new autoscaleprofile();
try {
@@ -2072,6 +2076,14 @@ public class NetscalerResource implements ServerResource {
return true;
}
+ private boolean isScaleUpPolicy(AutoScalePolicyTO autoScalePolicyTO) {
+ return autoScalePolicyTO.getAction().equals("scaleup");
+ }
+
+ private boolean isScaleDownPolicy(AutoScalePolicyTO autoScalePolicyTO) {
+ return autoScalePolicyTO.getAction().equals("scaledown");
+ }
+
private void saveConfiguration() throws ExecutionException {
try {
apiCallResult = nsconfig.save(_netscalerService);
@@ -2249,4 +2261,4 @@ public class NetscalerResource implements ServerResource {
public void disconnected() {
return;
}
-}
\ No newline at end of file
+}