Updated Branches:
  refs/heads/master 9cb5bcb9c -> 403813c2a

Improving member exists method of cluster monitor


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

Branch: refs/heads/master
Commit: b6a70577049394e17ab30e8354b828cae3294325
Parents: 148aa4e
Author: Lahiru Sandaruwan <[email protected]>
Authored: Wed Dec 18 16:24:52 2013 +0530
Committer: Lahiru Sandaruwan <[email protected]>
Committed: Wed Dec 18 16:24:52 2013 +0530

----------------------------------------------------------------------
 .../health/HealthEventMessageDelegator.java     |  2 +-
 .../autoscaler/monitor/AbstractMonitor.java     |  3 +-
 .../autoscaler/monitor/ClusterMonitor.java      | 35 +++++++++++++-----
 .../autoscaler/monitor/LbClusterMonitor.java    | 39 ++++++++++++--------
 4 files changed, 52 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b6a70577/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
index e32c4ad..1c5eba5 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
@@ -339,7 +339,7 @@ public class HealthEventMessageDelegator implements 
Runnable {
             ccClient.terminate(memberId);
 
             // start a new member in the same Partition
-            String partitionId = monitor.getPartitonOfMember(memberId);
+            String partitionId = monitor.getPartitionOfMember(memberId);
             Partition partition = 
monitor.getDeploymentPolicy().getPartitionById(partitionId);
             NetworkPartitionContext nwPartitionCtxt = 
monitor.findNetworkPartition(memberId);
             PartitionContext partitionCtxt = 
nwPartitionCtxt.getPartitionCtxt(partitionId);

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b6a70577/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractMonitor.java
index 763f7e9..c02cc68 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractMonitor.java
@@ -35,9 +35,10 @@ import 
org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
                
        }
        
-       public abstract String getPartitonOfMember(String memberId);
+       public abstract String getPartitionOfMember(String memberId);
        public abstract DeploymentPolicy getDeploymentPolicy();
        public abstract boolean memberExist(String memberId);
        public abstract NetworkPartitionContext findNetworkPartition(String 
memberId);
+
        
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b6a70577/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitor.java
index 7afdba7..21738a5 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ClusterMonitor.java
@@ -20,7 +20,6 @@ package org.apache.stratos.autoscaler.monitor;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.AutoscalerContext;
 import org.apache.stratos.autoscaler.NetworkPartitionContext;
 import org.apache.stratos.autoscaler.PartitionContext;
 import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
@@ -60,7 +59,7 @@ public class ClusterMonitor extends AbstractMonitor{
     private AutoscalePolicy autoscalePolicy;
 
         // Key- MemberId Value- partitionId
-    private Map<String, String> memberPartitionMap;
+//    private Map<String, String> memberPartitionMap;
 
     private FactHandle minCheckFactHandle;
     private FactHandle scaleCheckFactHandle;
@@ -239,12 +238,27 @@ public class ClusterMonitor extends AbstractMonitor{
         this.autoscalePolicy = autoscalePolicy;
     }
 
-    public String getPartitonOfMember(String memberId){
-               return this.memberPartitionMap.get(memberId);
+    public String getPartitionOfMember(String memberId){
+        for(Service service: TopologyManager.getTopology().getServices()){
+            for(Cluster cluster: service.getClusters()){
+                if(cluster.memberExists(memberId)){
+                    cluster.getMember(memberId).getPartitionId();
+                }
+            }
+        }
+        return null;
        }
 
-       public boolean memberExist(String memberId){
-               return this.memberPartitionMap.containsKey(memberId);
+       @Override
+    public boolean memberExist(String memberId){
+        for(Service service: TopologyManager.getTopology().getServices()){
+            for(Cluster cluster: service.getClusters()){
+                if(cluster.memberExists(memberId)){
+                    return true;
+                }
+            }
+        }
+        return false;
        }
 
     public String getLbReferenceType() {
@@ -259,10 +273,11 @@ public class ClusterMonitor extends AbstractMonitor{
        public NetworkPartitionContext findNetworkPartition(String memberId) {
                 for(Service service: 
TopologyManager.getTopology().getServices()){
                    for(Cluster cluster: service.getClusters()){
-                       NetworkPartitionContext netCtx = 
AutoscalerContext.getInstance().getMonitor(cluster.getClusterId())
-                               
.getNetworkPartitionCtxt(cluster.getMember(memberId).getNetworkPartitionId());
-                       if(null !=netCtx)
-                               return netCtx;
+
+                    String networkPartitionId = 
cluster.getMember(memberId).getNetworkPartitionId();
+                       
if(networkPartitionCtxts.containsKey(networkPartitionId)) {
+                        networkPartitionCtxts.get(networkPartitionId);
+                    }
                    }
              }
              return null;

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b6a70577/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/LbClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/LbClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/LbClusterMonitor.java
index 1b24a42..2cf794a 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/LbClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/LbClusterMonitor.java
@@ -217,29 +217,38 @@ public class LbClusterMonitor extends AbstractMonitor{
         this.autoscalePolicy = autoscalePolicy;
     }
 
-    public String getPartitonOfMember(String memberId){
+    public String getPartitionOfMember(String memberId){
                return this.memberPartitionMap.get(memberId);
        }
 
-       public boolean memberExist(String memberId){
-               return this.memberPartitionMap.containsKey(memberId);
+    @Override
+    public boolean memberExist(String memberId){
+        for(Service service: TopologyManager.getTopology().getServices()){
+            for(Cluster cluster: service.getClusters()){
+                if(cluster.memberExists(memberId)){
+                    return true;
+                }
+            }
+        }
+        return false;
        }
 
     @Override
     public String toString() {
         return "LbClusterMonitor [clusterId=" + clusterId + ", serviceId=" + 
serviceId + "]";
     }
-    
+
     @Override
-       public NetworkPartitionContext findNetworkPartition(String memberId) {
-                for(Service service: 
TopologyManager.getTopology().getServices()){
-                   for(Cluster cluster: service.getClusters()){
-                       NetworkPartitionContext netCtx = 
AutoscalerContext.getInstance().getLBMonitor(cluster.getClusterId())
-                               
.getNetworkPartitionCtxt(cluster.getMember(memberId).getNetworkPartitionId());
-                       if(null != netCtx)
-                               return netCtx;
-                   }
-             }
-             return null;
-       }
+       public NetworkPartitionContext findNetworkPartition(String memberId) {
+                for(Service service: 
TopologyManager.getTopology().getServices()){
+                   for(Cluster cluster: service.getClusters()){
+
+                       String networkPartitionId = 
cluster.getMember(memberId).getNetworkPartitionId();
+                       
if(networkPartitionCtxts.containsKey(networkPartitionId)) {
+                           networkPartitionCtxts.get(networkPartitionId);
+                       }
+                   }
+             }
+             return null;
+       }
 }

Reply via email to