Updated Branches:
  refs/heads/master 43145f58c -> ca3fdf71b

fix STRATOS-289


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

Branch: refs/heads/master
Commit: ca3fdf71b6b1cd5372705017ccaccc2c03cdd8af
Parents: 43145f5
Author: Lahiru Sandaruwan <[email protected]>
Authored: Fri Jan 17 09:41:20 2014 +0530
Committer: Lahiru Sandaruwan <[email protected]>
Committed: Fri Jan 17 09:41:20 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/NetworkPartitionContext.java     | 169 +++++++++----------
 .../autoscaler/api/AutoScalerServiceImpl.java   |  28 +--
 .../internal/AutoscalerServerComponent.java     |  10 +-
 .../health/AutoscalerHealthStatReceiver.java    |   2 +-
 .../autoscaler/partition/PartitionManager.java  |  37 ++--
 .../autoscaler/registry/RegistryManager.java    |  41 ++---
 .../rule/AutoscalerRuleEvaluator.java           |  10 +-
 .../autoscaler/rule/RuleTasksDelegator.java     |  22 +--
 .../autoscaler/util/AutoScalerConstants.java    |   2 +-
 .../stratos/autoscaler/util/AutoscalerUtil.java |  25 +--
 10 files changed, 177 insertions(+), 169 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca3fdf71/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
index 09a8277..9bb5c91 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java
@@ -35,15 +35,15 @@ import java.util.Map;
  */
 public class NetworkPartitionContext implements Serializable{
 
-       private static final long serialVersionUID = -8851073480764734511L;
        private static final Log log = 
LogFactory.getLog(NetworkPartitionContext.class);
+    private static final long serialVersionUID = 572769304374110159L;
     private final String id;
 
-    private String defaultLbClusterId;
-
-    private Map<String, String> serviceNameToLBClusterIdMap;
-
-    private Map<String, String> clusterIdToLBClusterIdMap;
+//    private String defaultLbClusterId;
+//
+//    private Map<String, String> serviceNameToLBClusterIdMap;
+//
+//    private Map<String, String> clusterIdToLBClusterIdMap;
 
     private final String partitionAlgorithm;
 
@@ -79,8 +79,8 @@ public class NetworkPartitionContext implements Serializable{
         this.id = id;
         this.partitionAlgorithm = partitionAlgo;
         this.partitions = partitions;
-        this.setServiceToLBClusterId(new HashMap<String, String>());
-        this.setClusterIdToLBClusterIdMap(new HashMap<String, String>());
+//        this.setServiceToLBClusterId(new HashMap<String, String>());
+//        this.setClusterIdToLBClusterIdMap(new HashMap<String, String>());
 //        partitionToMemberCountMap = new HashMap<String, Integer>();
         partitionCtxts = new HashMap<String, PartitionContext>();
         requestsInFlight = new RequestsInFlight();
@@ -89,86 +89,86 @@ public class NetworkPartitionContext implements 
Serializable{
 
     }
 
-    public String getDefaultLbClusterId() {
-
-        return this.defaultLbClusterId;
-
-    }
-
-    public void setDefaultLbClusterId(final String defaultLbClusterId) {
-
-        this.defaultLbClusterId = defaultLbClusterId;
-
-    }
-
-    public String getLBClusterIdOfService(final String serviceName) {
-
-        return (String) this.serviceNameToLBClusterIdMap.get(serviceName);
-
-    }
-
-    public Map<String, String> getServiceToLBClusterId() {
-
-        return this.serviceNameToLBClusterIdMap;
-
-    }
-
-    public void setServiceToLBClusterId(final Map<String, String> 
serviceToLBClusterId) {
-
-        this.serviceNameToLBClusterIdMap = serviceToLBClusterId;
-
-    }
-    
-    public void addServiceLB(final String serviceName, final String 
lbClusterId) {
-        this.serviceNameToLBClusterIdMap.put(serviceName, lbClusterId);
-    }
-
-    public String getLBClusterIdOfCluster(final String clusterId) {
-
-        return (String) this.clusterIdToLBClusterIdMap.get(clusterId);
-
-    }
-
-    public Map<String, String> getClusterIdToLBClusterIdMap() {
-
-        return this.clusterIdToLBClusterIdMap;
-
-    }
-
-    public void setClusterIdToLBClusterIdMap(final Map<String, String> 
clusterIdToLBClusterIdMap) {
-
-        this.clusterIdToLBClusterIdMap = clusterIdToLBClusterIdMap;
-
-    }
-
-
-    public boolean isLBExist(final String clusterId) {
-
-        return clusterId != null &&
-               (clusterId.equals(this.defaultLbClusterId) ||
-                this.serviceNameToLBClusterIdMap.containsValue(clusterId) || 
this.clusterIdToLBClusterIdMap.containsValue(clusterId));
-
-    }
-
-    public boolean isDefaultLBExist() {
-
-        return defaultLbClusterId != null;
-
-    }
+//    public String getDefaultLbClusterId() {
+//
+//        return this.defaultLbClusterId;
+//
+//    }
+//
+//    public void setDefaultLbClusterId(final String defaultLbClusterId) {
+//
+//        this.defaultLbClusterId = defaultLbClusterId;
+//
+//    }
 
-    public boolean isServiceLBExist(String serviceName) {
+//    public String getLBClusterIdOfService(final String serviceName) {
+//
+//        return (String) this.serviceNameToLBClusterIdMap.get(serviceName);
+//
+//    }
 
-        return this.serviceNameToLBClusterIdMap.containsKey(serviceName) &&
-                this.serviceNameToLBClusterIdMap.get(serviceName) != null;
+//    public Map<String, String> getServiceToLBClusterId() {
+//
+//        return this.serviceNameToLBClusterIdMap;
+//
+//    }
+//
+//    public void setServiceToLBClusterId(final Map<String, String> 
serviceToLBClusterId) {
+//
+//        this.serviceNameToLBClusterIdMap = serviceToLBClusterId;
+//
+//    }
+//
+//    public void addServiceLB(final String serviceName, final String 
lbClusterId) {
+//        this.serviceNameToLBClusterIdMap.put(serviceName, lbClusterId);
+//    }
 
-    }
+//    public String getLBClusterIdOfCluster(final String clusterId) {
+//
+//        return (String) this.clusterIdToLBClusterIdMap.get(clusterId);
+//
+//    }
+//
+//    public Map<String, String> getClusterIdToLBClusterIdMap() {
+//
+//        return this.clusterIdToLBClusterIdMap;
+//
+//    }
+//
+//    public void setClusterIdToLBClusterIdMap(final Map<String, String> 
clusterIdToLBClusterIdMap) {
+//
+//        this.clusterIdToLBClusterIdMap = clusterIdToLBClusterIdMap;
+//
+//    }
 
-    public boolean isClusterLBExist(String clusterId) {
 
-        return this.clusterIdToLBClusterIdMap.containsKey(clusterId) &&
-                this.clusterIdToLBClusterIdMap.get(clusterId) != null;
+//    public boolean isLBExist(final String clusterId) {
+//
+//        return clusterId != null &&
+//               (clusterId.equals(this.defaultLbClusterId) ||
+//                this.serviceNameToLBClusterIdMap.containsValue(clusterId) || 
this.clusterIdToLBClusterIdMap.containsValue(clusterId));
+//
+//    }
+//
+//    public boolean isDefaultLBExist() {
+//
+//        return defaultLbClusterId != null;
+//
+//    }
+//
+//    public boolean isServiceLBExist(String serviceName) {
+//
+//        return this.serviceNameToLBClusterIdMap.containsKey(serviceName) &&
+//                this.serviceNameToLBClusterIdMap.get(serviceName) != null;
+//
+//    }
 
-    }
+//    public boolean isClusterLBExist(String clusterId) {
+//
+//        return this.clusterIdToLBClusterIdMap.containsKey(clusterId) &&
+//                this.clusterIdToLBClusterIdMap.get(clusterId) != null;
+//
+//    }
 
     public int getMinInstanceCount() {
         return minInstanceCount;
@@ -222,8 +222,7 @@ public class NetworkPartitionContext implements 
Serializable{
 
     @Override
     public String toString() {
-        return "NetworkPartitionContext [id=" + id + ", defaultLbClusterId=" + 
defaultLbClusterId +
-               ", partitionAlgorithm=" + partitionAlgorithm + ", 
minInstanceCount=" +
+        return "NetworkPartitionContext [id=" + id + "partitionAlgorithm=" + 
partitionAlgorithm + ", minInstanceCount=" +
                minInstanceCount + ", maxInstanceCount=" + maxInstanceCount + 
"]";
     }
 
@@ -494,7 +493,7 @@ public class NetworkPartitionContext implements 
Serializable{
 //    public void setPartitions(Partition[] partitions) {
 //        this.partitions = partitions;
 //        for (Partition partition: partitions){
-//            partitionToMemberCountMap.put(partition.getId(), 0);
+//            partitionToMemberCountMap.put(partition.getNetworkPartitionId(), 
0);
 //        }
 //    }
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca3fdf71/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
index ae1b436..7a4ff9e 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
@@ -18,11 +18,9 @@
  */
 package org.apache.stratos.autoscaler.api;
 
-import java.util.ArrayList;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.NetworkPartitionContext;
+import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
 import 
org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
 import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
 import org.apache.stratos.autoscaler.exception.InvalidPartitionException;
@@ -36,6 +34,8 @@ import org.apache.stratos.autoscaler.policy.PolicyManager;
 import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
 import org.apache.stratos.cloud.controller.deployment.partition.Partition;
 
+import java.util.ArrayList;
+
 /**
  * Auto Scaler Service API is responsible getting Partitions and Policies.
  */
@@ -143,9 +143,9 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
            boolean exist = false;
         for (PartitionGroup partitionGroup : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getPartitionGroups())
 {
 
-            NetworkPartitionContext nwPartitionCtxt = 
partitionManager.getNetworkPartition(partitionGroup.getId());
+            NetworkPartitionLbHolder nwPartitionLbHolder = 
partitionManager.getNetworkPartitionLbHolder(partitionGroup.getId());
 
-            if (nwPartitionCtxt.isLBExist(lbClusterId)) {
+            if (nwPartitionLbHolder.isLBExist(lbClusterId)) {
                 exist = true;
                 break;
             }
@@ -163,12 +163,12 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
 
         for (PartitionGroup partitionGroup : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getPartitionGroups())
 {
 
-            NetworkPartitionContext nwPartitionCtxt = 
partitionManager.getNetworkPartition(partitionGroup.getId());
+            NetworkPartitionLbHolder nwPartitionLbHolder = 
partitionManager.getNetworkPartitionLbHolder(partitionGroup.getId());
 
-            if (!nwPartitionCtxt.isDefaultLBExist()) {
+            if (!nwPartitionLbHolder.isDefaultLBExist()) {
                 if (log.isDebugEnabled()) {
                     log.debug("Default LB does not exist in [network 
partition] " +
-                              nwPartitionCtxt.getId() + " of [Deployment 
Policy] " +
+                              nwPartitionLbHolder.getNetworkPartitionId() + " 
of [Deployment Policy] " +
                               deploymentPolicyId);
 
                 }
@@ -185,12 +185,12 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
 
         for (PartitionGroup partitionGroup : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getPartitionGroups())
 {
 
-                        NetworkPartitionContext nwPartitionCtxt = 
partitionManager.getNetworkPartition(partitionGroup.getId());
+                        NetworkPartitionLbHolder nwPartitionLbHolder = 
partitionManager.getNetworkPartitionLbHolder(partitionGroup.getId());
 
-                if (!nwPartitionCtxt.isServiceLBExist(serviceName)) {
+                if (!nwPartitionLbHolder.isServiceLBExist(serviceName)) {
                     if (log.isDebugEnabled()) {
                         log.debug("Service LB [service name] "+serviceName+" 
does not exist in [network partition] " +
-                                  nwPartitionCtxt.getId() + " of [Deployment 
Policy] " +
+                                  nwPartitionLbHolder.getNetworkPartitionId() 
+ " of [Deployment Policy] " +
                                   deploymentPolicyId);
 
                     }
@@ -207,12 +207,12 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
 
         for (PartitionGroup partitionGroup : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getPartitionGroups())
 {
 
-                        NetworkPartitionContext nwPartitionCtxt = 
partitionManager.getNetworkPartition(partitionGroup.getId());
+                        NetworkPartitionLbHolder nwPartitionLbHolder = 
partitionManager.getNetworkPartitionLbHolder(partitionGroup.getId());
 
-                if (!nwPartitionCtxt.isClusterLBExist(clusterId)) {
+                if (!nwPartitionLbHolder.isClusterLBExist(clusterId)) {
                     if (log.isDebugEnabled()) {
                         log.debug("Cluster LB [cluster id] "+clusterId+" does 
not exist in [network partition] " +
-                                  nwPartitionCtxt.getId() + " of [Deployment 
Policy] " +
+                                  nwPartitionLbHolder.getNetworkPartitionId() 
+ " of [Deployment Policy] " +
                                   deploymentPolicyId);
 
                     }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca3fdf71/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
index 2a1e5df..f3aad50 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
@@ -20,7 +20,7 @@ package org.apache.stratos.autoscaler.internal;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.NetworkPartitionContext;
+import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
 import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
 import org.apache.stratos.autoscaler.exception.AutoScalerException;
 import 
org.apache.stratos.autoscaler.message.receiver.health.AutoscalerHealthStatReceiver;
@@ -90,11 +90,11 @@ public class AutoscalerServerComponent {
             }
             
             // Adding the network partitions stored in registry to the 
information model
-            List<NetworkPartitionContext> nwPartitionCtxts = 
RegistryManager.getInstance().retrieveNetworkPartitions();
-            Iterator<NetworkPartitionContext> nwPartitionIterator = 
nwPartitionCtxts.iterator();
+            List<NetworkPartitionLbHolder> nwPartitionHolders = 
RegistryManager.getInstance().retrieveNetworkPartitionLbHolders();
+            Iterator<NetworkPartitionLbHolder> nwPartitionIterator = 
nwPartitionHolders.iterator();
             while (nwPartitionIterator.hasNext()) {
-                NetworkPartitionContext nwPartition = 
nwPartitionIterator.next();
-                
PartitionManager.getInstance().addNetworkPartitionContext(nwPartition);
+                NetworkPartitionLbHolder nwPartition = 
nwPartitionIterator.next();
+                
PartitionManager.getInstance().addNetworkPartitionLbHolder(nwPartition);
             }
             
             List<AutoscalePolicy> asPolicies = 
RegistryManager.getInstance().retrieveASPolicies();

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca3fdf71/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatReceiver.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatReceiver.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatReceiver.java
index 7d4ca29..7843088 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatReceiver.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatReceiver.java
@@ -752,7 +752,7 @@ public class AutoscalerHealthStatReceiver implements 
Runnable {
 
             partitionCtxt.removeActiveMemberById(memberId);
 
-            String lbClusterId = 
AutoscalerRuleEvaluator.getLbClusterId(partitionCtxt, nwPartitionCtxt);
+            String lbClusterId = 
AutoscalerRuleEvaluator.getLbClusterId(partitionCtxt, nwPartitionCtxt.getId());
 
             partitionCtxt.addPendingMember(ccClient.spawnAnInstance(partition, 
clusterId, lbClusterId, nwPartitionCtxt.getId()));
             if (log.isInfoEnabled()) {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca3fdf71/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
index dc6bda4..e39e8c2 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
@@ -21,7 +21,7 @@ package org.apache.stratos.autoscaler.partition;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.NetworkPartitionContext;
+import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
 import 
org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
 import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
 import org.apache.stratos.autoscaler.exception.AutoScalerException;
@@ -47,7 +47,7 @@ private static final Log log = 
LogFactory.getLog(PartitionManager.class);
         * Key - network partition id
         * Value - reference to NetworkPartition
         */
-       private Map<String, NetworkPartitionContext> networkPartitionContexts;
+       private Map<String, NetworkPartitionLbHolder> networkPartitionLbHolders;
 
        private static class Holder {
         static final PartitionManager INSTANCE = new PartitionManager();
@@ -58,7 +58,7 @@ private static final Log log = 
LogFactory.getLog(PartitionManager.class);
        }
        
        private PartitionManager(){
-        networkPartitionContexts = new HashMap<String, 
NetworkPartitionContext>();
+        networkPartitionLbHolders = new HashMap<String, 
NetworkPartitionLbHolder>();
        }
        
        
@@ -95,8 +95,8 @@ private static final Log log = 
LogFactory.getLog(PartitionManager.class);
                partitions.put(partition.getId(), partition);
        }
 
-       public NetworkPartitionContext getNetworkPartition(String 
networkPartitionId) {
-           return this.networkPartitionContexts.get(networkPartitionId);
+       public NetworkPartitionLbHolder getNetworkPartitionLbHolder(String 
networkPartitionId) {
+           return this.networkPartitionLbHolders.get(networkPartitionId);
        }
 
     public Partition getPartitionById(String partitionId){
@@ -121,12 +121,11 @@ private static final Log log = 
LogFactory.getLog(PartitionManager.class);
     public void deployNewNetworkPartitions(DeploymentPolicy depPolicy) {
         for(PartitionGroup partitionGroup: depPolicy.getPartitionGroups()){
             String id = partitionGroup.getId();
-            if (!networkPartitionContexts.containsKey(id)) {
-                NetworkPartitionContext networkPartitionContext =
-                        new NetworkPartitionContext(
-                                id, partitionGroup.getPartitionAlgo(), 
partitionGroup.getPartitions());
-                addNetworkPartitionContext(networkPartitionContext);
-                
RegistryManager.getInstance().persistNetworkPartition(networkPartitionContext);
+            if (!networkPartitionLbHolders.containsKey(id)) {
+                NetworkPartitionLbHolder networkPartitionLbHolder =
+                        new NetworkPartitionLbHolder(id);
+                addNetworkPartitionLbHolder(networkPartitionLbHolder);
+                
RegistryManager.getInstance().persistNetworkPartitionIbHolder(networkPartitionLbHolder);
             }
 
         }
@@ -135,12 +134,12 @@ private static final Log log = 
LogFactory.getLog(PartitionManager.class);
     public void undeployNetworkPartitions(DeploymentPolicy depPolicy) {
         for(PartitionGroup partitionGroup: depPolicy.getPartitionGroups()){
             String id = partitionGroup.getId();
-            if (networkPartitionContexts.containsKey(id)) {                
-                NetworkPartitionContext netPartCtx = 
this.getNetworkPartition(id);
+            if (networkPartitionLbHolders.containsKey(id)) {                
+                NetworkPartitionLbHolder netPartCtx = 
this.getNetworkPartitionLbHolder(id);
                 // remove from information model
-                this.removeNetworkPartitionContext(netPartCtx);
+                this.removeNetworkPartitionLbHolder(netPartCtx);
                 //remove from the registry
-                
RegistryManager.getInstance().removeNetworkPartition(this.getNetworkPartition(id).getId());
+                
RegistryManager.getInstance().removeNetworkPartition(this.getNetworkPartitionLbHolder(id).getNetworkPartitionId());
             }else{
                String errMsg = "Network partition context not found for policy 
" + depPolicy;
                log.error(errMsg);
@@ -150,12 +149,12 @@ private static final Log log = 
LogFactory.getLog(PartitionManager.class);
         }
     }
     
-    private void removeNetworkPartitionContext(NetworkPartitionContext 
netPartCtx) {
-        networkPartitionContexts.remove(netPartCtx.getId());           
+    private void removeNetworkPartitionLbHolder(NetworkPartitionLbHolder 
nwPartLbHolder) {
+        
networkPartitionLbHolders.remove(nwPartLbHolder.getNetworkPartitionId());
        }
 
-       public void addNetworkPartitionContext(NetworkPartitionContext ctxt) {
-        networkPartitionContexts.put(ctxt.getId(), ctxt);
+       public void addNetworkPartitionLbHolder(NetworkPartitionLbHolder 
nwPartLbHolder) {
+        networkPartitionLbHolders.put(nwPartLbHolder.getNetworkPartitionId(), 
nwPartLbHolder);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca3fdf71/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
index f886a6c..dd046b3 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
@@ -2,19 +2,19 @@ package org.apache.stratos.autoscaler.registry;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.NetworkPartitionContext;
+import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
 import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
+import org.apache.stratos.autoscaler.exception.AutoScalerException;
 import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
+import org.apache.stratos.autoscaler.util.AutoScalerConstants;
 import org.apache.stratos.autoscaler.util.Deserializer;
+import org.apache.stratos.autoscaler.util.Serializer;
+import org.apache.stratos.autoscaler.util.ServiceReferenceHolder;
 import org.apache.stratos.cloud.controller.deployment.partition.Partition;
 import org.wso2.carbon.registry.core.Registry;
 import org.wso2.carbon.registry.core.Resource;
 import org.wso2.carbon.registry.core.exceptions.RegistryException;
 import org.wso2.carbon.registry.core.exceptions.ResourceNotFoundException;
-import org.apache.stratos.autoscaler.exception.AutoScalerException;
-import org.apache.stratos.autoscaler.util.AutoScalerConstants;
-import org.apache.stratos.autoscaler.util.ServiceReferenceHolder;
-import org.apache.stratos.autoscaler.util.Serializer;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -93,11 +93,12 @@ public class RegistryManager {
         }
     }
     
-    public void persistNetworkPartition(NetworkPartitionContext 
nwPartitionCtxt) {
-        String resourcePath = AutoScalerConstants.AUTOSCALER_RESOURCE + 
AutoScalerConstants.NETWORK_PARTITION_RESOURCE + "/"+nwPartitionCtxt.getId();
-        persist(nwPartitionCtxt, resourcePath);
+    public void persistNetworkPartitionIbHolder(NetworkPartitionLbHolder 
nwPartitionLbHolder) {
+        String resourcePath = AutoScalerConstants.AUTOSCALER_RESOURCE + 
AutoScalerConstants
+                .NETWORK_PARTITION_LB_HOLDER_RESOURCE + 
"/"+nwPartitionLbHolder.getNetworkPartitionId();
+        persist(nwPartitionLbHolder, resourcePath);
         if(log.isDebugEnabled()) {
-            log.debug("NetworkPartitionContext written to registry: 
"+nwPartitionCtxt.toString());
+            log.debug("NetworkPartitionContext written to registry: 
"+nwPartitionLbHolder.toString());
         }
     }
 
@@ -167,37 +168,37 @@ public class RegistryManager {
         return partitionList;
     }
     
-    public List<NetworkPartitionContext> retrieveNetworkPartitions() {
-        List<NetworkPartitionContext> nwPartitionList = new 
ArrayList<NetworkPartitionContext>();
+    public List<NetworkPartitionLbHolder> retrieveNetworkPartitionLbHolders() {
+        List<NetworkPartitionLbHolder> nwPartitionLbHolderList = new 
ArrayList<NetworkPartitionLbHolder>();
         RegistryManager registryManager = RegistryManager.getInstance();
         String[] partitionsResourceList = (String[]) 
registryManager.retrieve(AutoScalerConstants.AUTOSCALER_RESOURCE + 
-                                                                              
AutoScalerConstants.NETWORK_PARTITION_RESOURCE);
+                                                                              
AutoScalerConstants.NETWORK_PARTITION_LB_HOLDER_RESOURCE);
 
         if (partitionsResourceList != null) {
-            NetworkPartitionContext nwPartition;
+            NetworkPartitionLbHolder nwPartitionLbHolder;
             for (String resourcePath : partitionsResourceList) {
                 Object serializedObj = registryManager.retrieve(resourcePath);
                 if (serializedObj != null) {
                     try {
 
                         Object dataObj = 
Deserializer.deserializeFromByteArray((byte[]) serializedObj);
-                        if (dataObj instanceof NetworkPartitionContext) {
-                            nwPartition = (NetworkPartitionContext) dataObj;
+                        if (dataObj instanceof NetworkPartitionLbHolder) {
+                            nwPartitionLbHolder = (NetworkPartitionLbHolder) 
dataObj;
                             if(log.isDebugEnabled()) {
-                                
log.debug(String.format("NetworkPartitionContext read from registry: 
"+nwPartition.toString()));
+                                
log.debug(String.format("NetworkPartitionLbHolder read from registry: " + 
nwPartitionLbHolder.toString()));
                             }
-                            nwPartitionList.add(nwPartition);
+                            nwPartitionLbHolderList.add(nwPartitionLbHolder);
                         } else {
                             return null;
                         }
                     } catch (Exception e) {
-                        String msg = "Unable to retrieve data from Registry. 
Hence, any historical NetworkPartitionContext will not get reflected.";
+                        String msg = "Unable to retrieve data from Registry. 
Hence, any historical NetworkPartitionLbHolder will not get reflected.";
                         log.warn(msg, e);
                     }
                 }
             }
         }
-        return nwPartitionList;
+        return nwPartitionLbHolderList;
     }
 
     public List<AutoscalePolicy> retrieveASPolicies() {
@@ -283,7 +284,7 @@ public class RegistryManager {
        }
        
        public void removeNetworkPartition(String networkPartition){
-               String resourcePath = AutoScalerConstants.AUTOSCALER_RESOURCE + 
AutoScalerConstants.NETWORK_PARTITION_RESOURCE;
+               String resourcePath = AutoScalerConstants.AUTOSCALER_RESOURCE + 
AutoScalerConstants.NETWORK_PARTITION_LB_HOLDER_RESOURCE;
                this.delete(resourcePath);
                if(log.isDebugEnabled()) {
                  log.debug(String.format("Network partition deleted from 
registry: [id] %s" ,

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca3fdf71/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
index 21ab342..bba7051 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
@@ -21,8 +21,9 @@ package org.apache.stratos.autoscaler.rule;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.NetworkPartitionContext;
+import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
 import org.apache.stratos.autoscaler.PartitionContext;
+import org.apache.stratos.autoscaler.partition.PartitionManager;
 import org.drools.KnowledgeBase;
 import org.drools.KnowledgeBaseFactory;
 import org.drools.builder.*;
@@ -145,17 +146,18 @@ public class AutoscalerRuleEvaluator {
         return ksession;
     }
 
-    public static String getLbClusterId(PartitionContext partitionContext, 
NetworkPartitionContext ctxt) {
+    public static String getLbClusterId(PartitionContext partitionContext, 
String nwpartitionId) {
         Properties props = partitionContext.getProperties();
         String value =
                        (String) 
props.get(org.apache.stratos.messaging.util.Constants.LOAD_BALANCER_REF);
         String lbClusterId = null;
 
+        NetworkPartitionLbHolder networkPartitionLbHolder = 
PartitionManager.getInstance().getNetworkPartitionLbHolder(nwpartitionId);
         if 
(value.equals(org.apache.stratos.messaging.util.Constants.DEFAULT_LOAD_BALANCER))
 {
-            lbClusterId = ctxt.getDefaultLbClusterId();
+            lbClusterId = networkPartitionLbHolder.getDefaultLbClusterId();
         } else if 
(value.equals(org.apache.stratos.messaging.util.Constants.SERVICE_AWARE_LOAD_BALANCER))
 {
             String serviceName = partitionContext.getServiceName();
-            lbClusterId = ctxt.getLBClusterIdOfService(serviceName);
+            lbClusterId = 
networkPartitionLbHolder.getLBClusterIdOfService(serviceName);
         }
         return lbClusterId;
     }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca3fdf71/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
index 7ce2de5..823b4d6 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
@@ -3,7 +3,7 @@ package org.apache.stratos.autoscaler.rule;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.Constants;
-import org.apache.stratos.autoscaler.NetworkPartitionContext;
+import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
 import org.apache.stratos.autoscaler.PartitionContext;
 import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm;
 import org.apache.stratos.autoscaler.algorithm.OneAfterAnother;
@@ -58,12 +58,15 @@ public class RuleTasksDelegator {
         try {
 
             String nwPartitionId = partitionContext.getNetworkPartitionId();
-            NetworkPartitionContext ctxt =
+//            NetworkPartitionContext ctxt =
+//                                          PartitionManager.getInstance()
+//                                                          
.getNetworkPartitionLbHolder(nwPartitionId);
+            NetworkPartitionLbHolder lbHolder =
                                           PartitionManager.getInstance()
-                                                          
.getNetworkPartition(nwPartitionId);
+                                                          
.getNetworkPartitionLbHolder(nwPartitionId);
 
             
-            String lbClusterId = getLbClusterId(lbRefType, partitionContext, 
ctxt);
+            String lbClusterId = getLbClusterId(lbRefType, partitionContext, 
lbHolder);
 
             MemberContext memberContext =
                                          CloudControllerClient.getInstance()
@@ -84,18 +87,17 @@ public class RuleTasksDelegator {
 
 
     public static String getLbClusterId(String lbRefType, PartitionContext 
partitionCtxt, 
-        NetworkPartitionContext nwPartitionCtxt) {
+        NetworkPartitionLbHolder networkPartitionLbHolder) {
 
        String lbClusterId = null;
 
         if (lbRefType != null) {
             if 
(lbRefType.equals(org.apache.stratos.messaging.util.Constants.DEFAULT_LOAD_BALANCER))
 {
-                lbClusterId = 
PartitionManager.getInstance().getNetworkPartition(nwPartitionCtxt.getId()).getDefaultLbClusterId();
+                lbClusterId = networkPartitionLbHolder.getDefaultLbClusterId();
 //                lbClusterId = nwPartitionCtxt.getDefaultLbClusterId();
             } else if 
(lbRefType.equals(org.apache.stratos.messaging.util.Constants.SERVICE_AWARE_LOAD_BALANCER))
 {
                 String serviceName = partitionCtxt.getServiceName();
-                lbClusterId = 
PartitionManager.getInstance().getNetworkPartition(serviceName)
-                        .getLBClusterIdOfService(nwPartitionCtxt.getId());
+                lbClusterId = 
networkPartitionLbHolder.getLBClusterIdOfService(serviceName);
 //                lbClusterId = 
nwPartitionCtxt.getLBClusterIdOfService(serviceName);
             } else {
                 log.warn("Invalid LB reference type defined: [value] 
"+lbRefType);
@@ -103,8 +105,8 @@ public class RuleTasksDelegator {
         }
         if (log.isDebugEnabled()){
             log.debug(String.format("Getting LB id for spawning instance [lb 
reference] %s ," +
-                    " [partition] %s [network partition] %s [Lb id] %s " , 
lbRefType, partitionCtxt.getPartitionId(),
-                    nwPartitionCtxt.getId(), lbClusterId));
+                    " [partition] %s [network partition] %s [Lb id] %s ", 
lbRefType, partitionCtxt.getPartitionId(),
+                    networkPartitionLbHolder.getNetworkPartitionId(), 
lbClusterId));
         }
        return lbClusterId;
     }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca3fdf71/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java
index 9702cc8..5395d96 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java
@@ -35,7 +35,7 @@ public final class AutoScalerConstants {
         */
        public static final String AUTOSCALER_RESOURCE = "/autoscaler";
        public static final String PARTITION_RESOURCE = "/partitions";
-       public static final String NETWORK_PARTITION_RESOURCE = 
"/network-partitions";
+       public static final String NETWORK_PARTITION_LB_HOLDER_RESOURCE = 
"/network-partitions";
        public static final String AS_POLICY_RESOURCE = 
"/policies/autoscalingPolicies";
        public static final String DEPLOYMENT_POLICY_RESOURCE = 
"/policies/deploymentPolicies";
        

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca3fdf71/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
index 95ae035..438860c 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
@@ -24,6 +24,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.MemberStatsContext;
 import org.apache.stratos.autoscaler.NetworkPartitionContext;
+import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
 import org.apache.stratos.autoscaler.PartitionContext;
 import 
org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
 import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
@@ -132,13 +133,13 @@ public class AutoscalerUtil {
 
                         if(MemberStatus.Activated.equals(member.getStatus())){
                             partitionContext.addActiveMember(memberContext);
-//                            
networkPartitionContext.increaseMemberCountOfPartition(partition.getId(), 1);
+//                            
networkPartitionContext.increaseMemberCountOfPartition(partition.getNetworkPartitionId(),
 1);
 //                            
partitionContext.incrementCurrentActiveMemberCount(1);
 
                         } else 
if(MemberStatus.Created.equals(member.getStatus()) || 
MemberStatus.Starting.equals(member.getStatus())){
                             partitionContext.addPendingMember(memberContext);
 
-//                            
networkPartitionContext.increaseMemberCountOfPartition(partition.getId(), 1);
+//                            
networkPartitionContext.increaseMemberCountOfPartition(partition.getNetworkPartitionId(),
 1);
                         } else 
if(MemberStatus.Suspended.equals(member.getStatus())){
 //                            partitionContext.addFaultyMember(memberId);
                         }
@@ -215,9 +216,11 @@ public class AutoscalerUtil {
         // partition group = network partition context
         for (PartitionGroup partitionGroup : 
deploymentPolicy.getPartitionGroups()) {
 
-            NetworkPartitionContext networkPartitionContext =
+            NetworkPartitionLbHolder networkPartitionLbHolder =
                                                               
PartitionManager.getInstance()
-                                                                              
.getNetworkPartition(partitionGroup.getId());
+                                                                              
.getNetworkPartitionLbHolder(partitionGroup.getId());
+//                                                              
PartitionManager.getInstance()
+//                                                                             
 .getNetworkPartitionLbHolder(partitionGroup.getId());
             // FIXME pick a random partition
             Partition partition =
                                   partitionGroup.getPartitions()[new 
Random().nextInt(partitionGroup.getPartitions().length)];
@@ -227,6 +230,8 @@ public class AutoscalerUtil {
             partitionContext.setNetworkPartitionId(partitionGroup.getId());
             partitionContext.setMinimumMemberCount(1);//Here it hard codes the 
minimum value as one for LB cartridge partitions
 
+            NetworkPartitionContext networkPartitionContext = new 
NetworkPartitionContext(partitionGroup.getId(),
+                    partitionGroup.getPartitionAlgo(), 
partitionGroup.getPartitions()) ;
             for (Member member : cluster.getMembers()) {
                 String memberId = member.getMemberId();
                 if 
(member.getNetworkPartitionId().equalsIgnoreCase(networkPartitionContext.getId()))
 {
@@ -237,12 +242,12 @@ public class AutoscalerUtil {
 
                     if (MemberStatus.Activated.equals(member.getStatus())) {
                         partitionContext.addActiveMember(memberContext);
-//                        
networkPartitionContext.increaseMemberCountOfPartition(partition.getId(), 1);
+//                        
networkPartitionContext.increaseMemberCountOfPartition(partition.getNetworkPartitionId(),
 1);
 //                        
partitionContext.incrementCurrentActiveMemberCount(1);
                     } else if (MemberStatus.Created.equals(member.getStatus()) 
||
                                
MemberStatus.Starting.equals(member.getStatus())) {
                         partitionContext.addPendingMember(memberContext);
-//                        
networkPartitionContext.increaseMemberCountOfPartition(partition.getId(), 1);
+//                        
networkPartitionContext.increaseMemberCountOfPartition(partition.getNetworkPartitionId(),
 1);
                     } else if 
(MemberStatus.Suspended.equals(member.getStatus())) {
 //                        partitionContext.addFaultyMember(memberId);
                     }
@@ -266,15 +271,15 @@ public class AutoscalerUtil {
                 String value = props.getProperty(Constants.LOAD_BALANCER_REF);
                 
                 if 
(value.equals(org.apache.stratos.messaging.util.Constants.DEFAULT_LOAD_BALANCER))
 {
-                    networkPartitionContext.setDefaultLbClusterId(clusterId);
+                    networkPartitionLbHolder.setDefaultLbClusterId(clusterId);
 
                 } else if 
(value.equals(org.apache.stratos.messaging.util.Constants.SERVICE_AWARE_LOAD_BALANCER))
 {
                     String serviceName = cluster.getServiceName();
                     // TODO: check if this is correct
-                    networkPartitionContext.addServiceLB(serviceName, 
clusterId);
+                    networkPartitionLbHolder.addServiceLB(serviceName, 
clusterId);
 
                     if (loadBalancedServiceType != null && 
!loadBalancedServiceType.isEmpty()) {
-                        
networkPartitionContext.addServiceLB(loadBalancedServiceType, clusterId);
+                        
networkPartitionLbHolder.addServiceLB(loadBalancedServiceType, clusterId);
                         if (log.isDebugEnabled()) {
                             log.debug("Added cluster id " + clusterId + " as 
the LB cluster id for service type " + loadBalancedServiceType);
                         }
@@ -384,7 +389,7 @@ public class AutoscalerUtil {
 //           for (PartitionGroup partitionGroup: 
deploymentPolicy.getPartitionGroups()){
 //
 //               NetworkPartitionContext networkPartitionContext
-//                       = 
PartitionManager.getInstance().getNetworkPartition(partitionGroup.getId());
+//                       = 
PartitionManager.getInstance().getNetworkPartitionLbHolder(partitionGroup.getNetworkPartitionId());
 //               
clusterMonitor.addNetworkPartitionCtxt(networkPartitionContext);
 //           }
 //        return null;

Reply via email to