Updated Branches:
  refs/heads/master 6baf7daaf -> 0e2aaba49

Fixes needed for correct Network partition - Partition relation


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

Branch: refs/heads/master
Commit: 0e2aaba4920401eb436aaf25d2a44050dd0c9582
Parents: 6baf7da
Author: Lahiru Sandaruwan <[email protected]>
Authored: Fri Dec 13 18:11:43 2013 +0530
Committer: Lahiru Sandaruwan <[email protected]>
Committed: Fri Dec 13 18:11:43 2013 +0530

----------------------------------------------------------------------
 .../autoscaler/api/AutoScalerServiceImpl.java   | 76 +++++++++-----------
 .../autoscaler/partition/PartitionManager.java  | 22 +++---
 .../partition/deployers/PartitionDeployer.java  |  2 +-
 .../topology/AutoscalerTopologyReceiver.java    | 12 +---
 4 files changed, 50 insertions(+), 62 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0e2aaba4/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 eb179a1..f590364 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
@@ -42,9 +42,9 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
 
        private static final Log log = 
LogFactory.getLog(AutoScalerServiceImpl.class);
        PartitionManager partitionManager = PartitionManager.getInstance();
-       
+
        public Partition[] getAllAvailablePartitions(){
-               return PartitionManager.getInstance().getAllPartitions();
+               return partitionManager.getAllPartitions();
        }
        
        public DeploymentPolicy[] getAllDeploymentPolicies(){
@@ -70,7 +70,7 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
 
        @Override
        public boolean addPartition(Partition partition) {
-        return PartitionManager.getInstance().deployNewPartiotion(partition);
+        return partitionManager.addNewPartition(partition);
        }
 
        @Override
@@ -85,7 +85,7 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
 
        @Override
        public Partition getPartition(String partitionId) {
-               return 
PartitionManager.getInstance().getPartitionById(partitionId);            
+               return partitionManager.getPartitionById(partitionId);
        }
 
        @Override
@@ -131,16 +131,13 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
        public void checkLBExistenceAgainstPolicy(String lbClusterId, String 
deploymentPolicyId) throws NonExistingLBException {
            
            boolean exist = false;
-           Partition[] partitions = 
getPartitionsOfDeploymentPolicy(deploymentPolicyId);
-        
-        for (Partition partition : partitions) {
-            if (partition != null) {
-                NetworkPartitionContext nwPartitionCtxt =
-                                                          
partitionManager.getNetworkPartitionOfPartition(partition.getId());
-                if (nwPartitionCtxt.isLBExist(lbClusterId)) {
-                    exist = true;
-                    break;
-                }
+        for (PartitionGroup partitionGroup : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getPartitionGroups())
 {
+
+            NetworkPartitionContext nwPartitionCtxt = 
partitionManager.getNetworkPartition(partitionGroup.getId());
+
+            if (nwPartitionCtxt.isLBExist(lbClusterId)) {
+                exist = true;
+                break;
             }
         }
            
@@ -153,22 +150,21 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
        }
        
        public boolean checkDefaultLBExistenceAgainstPolicy(String 
deploymentPolicyId) {
-           Partition[] partitions = 
getPartitionsOfDeploymentPolicy(deploymentPolicyId);
-           
-        for (Partition partition : partitions) {
-            if (partition != null) {
-                NetworkPartitionContext nwPartitionCtxt =
-                                                          
partitionManager.getNetworkPartitionOfPartition(partition.getId());
-                if (!nwPartitionCtxt.isDefaultLBExist()) {
-                    if (log.isDebugEnabled()) {
-                        log.debug("Default LB does not exist in [network 
partition] " +
-                                  nwPartitionCtxt.getId() + " of [Deployment 
Policy] " +
-                                  deploymentPolicyId);
 
-                    }
-                    return false;
+        for (PartitionGroup partitionGroup : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getPartitionGroups())
 {
+
+            NetworkPartitionContext nwPartitionCtxt = 
partitionManager.getNetworkPartition(partitionGroup.getId());
+
+            if (!nwPartitionCtxt.isDefaultLBExist()) {
+                if (log.isDebugEnabled()) {
+                    log.debug("Default LB does not exist in [network 
partition] " +
+                              nwPartitionCtxt.getId() + " of [Deployment 
Policy] " +
+                              deploymentPolicyId);
+
                 }
+                return false;
             }
+
         }
         
         return true;
@@ -176,12 +172,11 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
     }
        
        public boolean checkServiceLBExistenceAgainstPolicy(String serviceName, 
String deploymentPolicyId) {
-        Partition[] partitions = 
getPartitionsOfDeploymentPolicy(deploymentPolicyId);
-        
-        for (Partition partition : partitions) {
-            if (partition != null) {
-                NetworkPartitionContext nwPartitionCtxt =
-                                                          
partitionManager.getNetworkPartitionOfPartition(partition.getId());
+
+        for (PartitionGroup partitionGroup : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getPartitionGroups())
 {
+
+                        NetworkPartitionContext nwPartitionCtxt = 
partitionManager.getNetworkPartition(partitionGroup.getId());
+
                 if (!nwPartitionCtxt.isServiceLBExist(serviceName)) {
                     if (log.isDebugEnabled()) {
                         log.debug("Service LB [service name] "+serviceName+" 
does not exist in [network partition] " +
@@ -191,7 +186,7 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
                     }
                     return false;
                 }
-            }
+
         }
         
         return true;
@@ -199,12 +194,11 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
     }
        
        public boolean checkClusterLBExistenceAgainstPolicy(String clusterId, 
String deploymentPolicyId) {
-        Partition[] partitions = 
getPartitionsOfDeploymentPolicy(deploymentPolicyId);
-        
-        for (Partition partition : partitions) {
-            if (partition != null) {
-                NetworkPartitionContext nwPartitionCtxt =
-                                                          
partitionManager.getNetworkPartitionOfPartition(partition.getId());
+
+        for (PartitionGroup partitionGroup : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getPartitionGroups())
 {
+
+                        NetworkPartitionContext nwPartitionCtxt = 
partitionManager.getNetworkPartition(partitionGroup.getId());
+
                 if (!nwPartitionCtxt.isClusterLBExist(clusterId)) {
                     if (log.isDebugEnabled()) {
                         log.debug("Cluster LB [cluster id] "+clusterId+" does 
not exist in [network partition] " +
@@ -214,7 +208,7 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface{
                     }
                     return false;
                 }
-            }
+
         }
         
         return true;

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0e2aaba4/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 e73b6db..a199715 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
@@ -43,7 +43,7 @@ public class PartitionManager {
 private static final Log log = LogFactory.getLog(PartitionManager.class);
        
        // Partitions against partitionID
-       private static Map<String,Partition> partitionListMap = new 
HashMap<String, Partition>();
+       private static Map<String,Partition> partitions = new HashMap<String, 
Partition>();
        
        private List<NetworkPartitionContext> networkPartitions;
        
@@ -51,7 +51,7 @@ private static final Log log = 
LogFactory.getLog(PartitionManager.class);
         * Key - partition id
         * Value - reference to NetworkPartition 
         */
-       private Map<String, NetworkPartitionContext> 
partitionIdToNetworkPartition;
+//     private Map<String, NetworkPartitionContext> 
partitionIdToNetworkPartition;
 
 
        /*
@@ -79,13 +79,13 @@ private static final Log log = 
LogFactory.getLog(PartitionManager.class);
        }
        
        public boolean partitionExist(String partitionId){
-               return partitionListMap.containsKey(partitionId);
+               return partitions.containsKey(partitionId);
        }
        
        /*
         * Deploy a new partition to Auto Scaler.
         */
-       public boolean deployNewPartiotion(Partition partition) throws 
AutoScalerException{
+       public boolean addNewPartition(Partition partition) throws 
AutoScalerException{
                String partitionId = partition.getId();
                if(this.partitionExist(partition.getId()))
                        throw new AutoScalerException("A parition with the ID " 
+  partitionId + " already exist.");
@@ -118,12 +118,12 @@ private static final Log log = 
LogFactory.getLog(PartitionManager.class);
        
        
        public void addPartitionToInformationModel(Partition partition) {
-               partitionListMap.put(partition.getId(), partition);
+               partitions.put(partition.getId(), partition);
        }
 
-       public NetworkPartitionContext getNetworkPartitionOfPartition(String 
partitionId) {
-           return this.partitionIdToNetworkPartition.get(partitionId);
-       }
+//     public NetworkPartitionContext getNetworkPartitionOfPartition(String 
partitionId) {
+//         return this.partitionIdToNetworkPartition.get(partitionId);
+//     }
        
        public NetworkPartitionContext getNetworkPartition(String 
networkPartitionId) {
            return this.networkPartitionContexts.get(networkPartitionId);
@@ -166,14 +166,14 @@ private static final Log log = 
LogFactory.getLog(PartitionManager.class);
 
     public Partition getPartitionById(String partitionId){
                if(partitionExist(partitionId))
-                       return partitionListMap.get(partitionId);
+                       return partitions.get(partitionId);
                else
                        return null;
        }
        
        public Partition[] getAllPartitions(){
-               //return Collections.unmodifiableList(new 
ArrayList<Partition>(partitionListMap.values()));
-               return partitionListMap.values().toArray(new Partition[0]);
+               //return Collections.unmodifiableList(new 
ArrayList<Partition>(partitions.values()));
+               return partitions.values().toArray(new Partition[0]);
                
        }
        

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0e2aaba4/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
index 53d7f6d..c8dced0 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
@@ -84,7 +84,7 @@ public class PartitionDeployer extends AbstractDeployer {
             while (it.hasNext()) {
                 Partition partition = it.next();
                 try {
-                    
PartitionManager.getInstance().deployNewPartiotion(partition);
+                    PartitionManager.getInstance().addNewPartition(partition);
                 } catch (Exception e) {
                     String msg =
                                  "Invalid partition: " + partition.getId() + " 
in file: " +

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0e2aaba4/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/AutoscalerTopologyReceiver.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/AutoscalerTopologyReceiver.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/AutoscalerTopologyReceiver.java
index 7609718..be0e7af 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/AutoscalerTopologyReceiver.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/AutoscalerTopologyReceiver.java
@@ -21,14 +21,9 @@ package org.apache.stratos.autoscaler.topology;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.AutoscalerContext;
-import org.apache.stratos.autoscaler.ClusterMonitor;
-import org.apache.stratos.autoscaler.LbClusterMonitor;
-import org.apache.stratos.autoscaler.MemberStatsContext;
-import org.apache.stratos.autoscaler.PartitionContext;
+import org.apache.stratos.autoscaler.*;
 import org.apache.stratos.autoscaler.exception.PartitionValidationException;
 import org.apache.stratos.autoscaler.exception.PolicyValidationException;
-import org.apache.stratos.autoscaler.partition.PartitionManager;
 import org.apache.stratos.autoscaler.util.AutoscalerUtil;
 import org.apache.stratos.messaging.domain.topology.Cluster;
 import org.apache.stratos.messaging.domain.topology.Service;
@@ -160,7 +155,7 @@ public class AutoscalerTopologyReceiver implements Runnable 
{
                try {
                        TopologyManager.acquireReadLock();
                                        MemberTerminatedEvent e = 
(MemberTerminatedEvent) event;
-                    String networkPartitionId = 
PartitionManager.getInstance().getNetworkPartitionOfPartition(e.getPartitionId()).getId()
 ;
+                    String networkPartitionId = e.getNetworkPartitionId();
                                        
AutoscalerContext.getInstance().getMonitor(e.getClusterId())
                             
.getNetworkPartitionCtxt(networkPartitionId).getPartitionCtxt(e.getPartitionId())
                             .removeMemberStatsContext(e.getMemberId());
@@ -188,9 +183,8 @@ public class AutoscalerTopologyReceiver implements Runnable 
{
                                        MemberActivatedEvent e = 
(MemberActivatedEvent)event;
                     String memberId = e.getMemberId();
                     String partitionId = e.getPartitionId();
+                    String networkPartitionId = e.getNetworkPartitionId();
 
-                    String networkPartitionId = 
PartitionManager.getInstance().getNetworkPartitionOfPartition(e.getPartitionId()).getId()
 ;
-                    
                     PartitionContext partitionContext;
                                        String clusterId = e.getClusterId();
                     ClusterMonitor monitor = 
AutoscalerContext.getInstance().getMonitor(clusterId);

Reply via email to