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; + } }
