Updated Branches:
  refs/heads/autoscale bf62abae8 -> 9d660bbb6

Create Autoscale config in Netscaler with unique Identifier based on Vmgroup


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/9d660bbb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/9d660bbb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/9d660bbb

Branch: refs/heads/autoscale
Commit: 9d660bbb634538ca4747fed8f91405883d39f3dc
Parents: bf62aba
Author: Vijay Vekatachalam <[email protected]>
Authored: Thu Sep 27 20:31:58 2012 +0530
Committer: Pranav Saxena <[email protected]>
Committed: Thu Sep 27 20:31:58 2012 +0530

----------------------------------------------------------------------
 api/src/com/cloud/agent/api/to/LoadBalancerTO.java |   10 ++++++-
 .../cloud/network/resource/NetscalerResource.java  |   19 ++++++++++----
 2 files changed, 21 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9d660bbb/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/api/to/LoadBalancerTO.java 
b/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
index 1a8093c..24ea702 100644
--- a/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
+++ b/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
@@ -362,6 +362,7 @@ public class LoadBalancerTO {
     }
 
     public static class AutoScaleVmGroupTO implements Serializable {
+        private final String uuid;
         private final int minMembers;
         private final int maxMembers;
         private final int memberPort;
@@ -371,8 +372,9 @@ public class LoadBalancerTO {
         private final String state;
         private final String currentState;
 
-        AutoScaleVmGroupTO(int minMembers, int maxMembers, int memberPort, int 
interval, List<AutoScalePolicyTO> policies, AutoScaleVmProfileTO profile, 
String state, String currentState)
+        AutoScaleVmGroupTO(String uuid, int minMembers, int maxMembers, int 
memberPort, int interval, List<AutoScalePolicyTO> policies, 
AutoScaleVmProfileTO profile, String state, String currentState)
         {
+            this.uuid = uuid;
             this.minMembers = minMembers;
             this.maxMembers = maxMembers;
             this.memberPort = memberPort;
@@ -383,6 +385,10 @@ public class LoadBalancerTO {
             this.currentState = currentState;
         }
 
+        public String getUuid() {
+            return uuid;
+        }
+
         public int getMinMembers() {
             return minMembers;
         }
@@ -445,7 +451,7 @@ public class LoadBalancerTO {
                 autoScaleVmProfile.getSnmpPort(), 
autoScaleVmProfile.getDestroyVmGraceperiod());
 
         AutoScaleVmGroup autoScaleVmGroup = lbAutoScaleVmGroup.getVmGroup();
-        autoScaleVmGroupTO = new 
AutoScaleVmGroupTO(autoScaleVmGroup.getMinMembers(), 
autoScaleVmGroup.getMaxMembers(), autoScaleVmGroup.getMemberPort(),
+        autoScaleVmGroupTO = new 
AutoScaleVmGroupTO(autoScaleVmGroup.getUuid(), 
autoScaleVmGroup.getMinMembers(), autoScaleVmGroup.getMaxMembers(), 
autoScaleVmGroup.getMemberPort(),
                 autoScaleVmGroup.getInterval(), autoScalePolicyTOs, 
autoScaleVmProfileTO, autoScaleVmGroup.getState(), 
lbAutoScaleVmGroup.getCurrentState());
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9d660bbb/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 7c8f88c..9900e01 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
@@ -1521,7 +1521,7 @@ public class NetscalerResource implements ServerResource {
         }
         addLBVirtualServer(nsVirtualServerName, srcIp, srcPort, lbAlgorithm, 
lbProtocol, loadBalancerTO.getStickinessPolicies(), vmGroupTO);
 
-        String serviceGroupName = 
generateAutoScaleServiceGroupName(vmGroupIdentifier);
+        String serviceGroupName = 
generateAutoScaleServiceGroupName(loadBalancerTO);
         if(!nsServiceGroupExists(serviceGroupName)) {
             // add servicegroup lb_autoscaleGroup -autoscale POLICY 
-memberPort 80
             int memberPort = vmGroupTO.getMemberPort();
@@ -1563,7 +1563,7 @@ public class NetscalerResource implements ServerResource {
         String vmGroupIdentifier = 
generateAutoScaleVmGroupIdentifier(loadBalancerTO);
 
         String nsVirtualServerName  = generateNSVirtualServerName(srcIp, 
srcPort);
-        String serviceGroupName = 
generateAutoScaleServiceGroupName(vmGroupIdentifier);
+        String serviceGroupName = 
generateAutoScaleServiceGroupName(loadBalancerTO);
 
         
if(loadBalancerTO.getAutoScaleVmGroupTO().getCurrentState().equals("enabled")) {
             disableAutoScaleConfig(loadBalancerTO, false);
@@ -1605,7 +1605,7 @@ public class NetscalerResource implements ServerResource {
         int srcPort = loadBalancerTO.getSrcPort();
 
         String nsVirtualServerName  = generateNSVirtualServerName(srcIp, 
srcPort);
-        String serviceGroupName = 
generateAutoScaleServiceGroupName(vmGroupIdentifier);
+        String serviceGroupName = 
generateAutoScaleServiceGroupName(loadBalancerTO);
         String profileName = generateAutoScaleProfileName(vmGroupIdentifier);
         String timerName = generateAutoScaleTimerName(vmGroupIdentifier);
         String scaleDownActionName = 
generateAutoScaleScaleDownActionName(vmGroupIdentifier);
@@ -1920,7 +1920,7 @@ public class NetscalerResource implements ServerResource {
         String scaleUpActionName = 
generateAutoScaleScaleUpActionName(vmGroupIdentifier);
         String mtName = generateSnmpMetricTableName(vmGroupIdentifier);
         String monitorName = generateSnmpMonitorName(vmGroupIdentifier);
-        String serviceGroupName = 
generateAutoScaleServiceGroupName(vmGroupIdentifier);
+        String serviceGroupName = 
generateAutoScaleServiceGroupName(loadBalancerTO);
         AutoScaleVmGroupTO vmGroupTO = loadBalancerTO.getAutoScaleVmGroupTO();
         List<AutoScalePolicyTO> policies = vmGroupTO.getPolicies();
         String minMemberPolicyName = 
generateAutoScaleMinPolicyName(vmGroupIdentifier);
@@ -2225,8 +2225,15 @@ public class NetscalerResource implements ServerResource 
{
         return lbTO.getSrcIp() + "-" + lbTO.getSrcPort();
     }
 
-    private String generateAutoScaleServiceGroupName(String vmGroupIdentifier) 
{
-        return genObjectName("Cloud-AutoScale-SvcGrp", vmGroupIdentifier);
+    private String generateAutoScaleServiceGroupName(LoadBalancerTO lbTO) {
+        /*
+         *  ServiceGroup name in NetScaler wont support long names. Providing 
special name.
+         *  Need for introducing uuid because every vmgroup creation should be 
distinguished.
+         *  Ex. (1) create a vm group, delete a vmgroup, create a vmgroup on 
same lb ip and port
+         *  This will reuse all vms from the original vm group in step (1)
+         */
+
+        return "Cloud" + lbTO.getAutoScaleVmGroupTO().getUuid().replace("-", 
"");
     }
 
     private String generateAutoScaleTimerName(String vmGroupIdentifier) {

Reply via email to