Updated Branches: refs/heads/master e94dcfad2 -> 52d9282ea
AS npe exception when getting partition context for a member Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/6aac43bc Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/6aac43bc Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/6aac43bc Branch: refs/heads/master Commit: 6aac43bc405dd50887d2935f0c0bc6958b03ec61 Parents: ede69d5 Author: Udara Liyanage <[email protected]> Authored: Thu Dec 19 14:44:03 2013 -0500 Committer: Udara Liyanage <[email protected]> Committed: Thu Dec 19 14:44:03 2013 -0500 ---------------------------------------------------------------------- .../stratos/autoscaler/AutoscalerContext.java | 3 + .../health/HealthEventMessageDelegator.java | 30 ++-- .../autoscaler/monitor/AbstractMonitor.java | 157 +++++++++++++++++- .../autoscaler/monitor/ClusterMonitor.java | 160 +------------------ .../autoscaler/monitor/LbClusterMonitor.java | 156 +----------------- .../topology/AutoscalerTopologyReceiver.java | 4 +- 6 files changed, 181 insertions(+), 329 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6aac43bc/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java index 5f59dcc..e809db9 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java @@ -24,7 +24,10 @@ public class AutoscalerContext { log.error("Rule evaluateMinCheck error", e); } } + + // Map<ClusterId, ClusterMonitor> private Map<String, ClusterMonitor> monitors; + // Map<LBClusterId, LBClusterMonitor> private Map<String, LbClusterMonitor> lbMonitors; public static AutoscalerContext getInstance() { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6aac43bc/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 1c5eba5..d8171e7 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 @@ -37,6 +37,7 @@ import org.apache.stratos.cloud.controller.deployment.partition.Partition; import org.apache.stratos.messaging.domain.topology.Cluster; import org.apache.stratos.messaging.domain.topology.Member; import org.apache.stratos.messaging.domain.topology.Service; +import org.apache.stratos.messaging.domain.topology.Topology; import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; import javax.jms.TextMessage; @@ -319,21 +320,29 @@ public class HealthEventMessageDelegator implements Runnable { AutoscalerContext asCtx = AutoscalerContext.getInstance(); AbstractMonitor monitor = null; - if(asCtx.moniterExist(clusterId)){ - monitor = asCtx.getMonitor(clusterId); - }else if(asCtx.lbMoniterExist(clusterId)){ - monitor = asCtx.getLBMonitor(clusterId); + if(asCtx.moniterExist(clusterId)){ + monitor = asCtx.getMonitor(clusterId); + }else if(asCtx.lbMoniterExist(clusterId)){ + monitor = asCtx.getLBMonitor(clusterId); }else{ String errMsg = "A monitor is not found for this custer"; log.error(errMsg); throw new RuntimeException(errMsg); - } - - if (!monitor.memberExist(memberId)) { - // member has already terminated. So no action required - return; + } + + NetworkPartitionContext nwPartitionCtxt; + try{ + TopologyManager.acquireReadLock(); + Member member = monitor.getMember(memberId); + if (null == member) { + // member has already terminated. So no action required + return; + } else{ + nwPartitionCtxt = monitor.getNetworkPartitionCtxt(member); + } + }finally{ + TopologyManager.releaseReadLock(); } - // terminate the faulty member CloudControllerClient ccClient = CloudControllerClient.getInstance(); ccClient.terminate(memberId); @@ -341,7 +350,6 @@ public class HealthEventMessageDelegator implements Runnable { // start a new member in the same Partition String partitionId = monitor.getPartitionOfMember(memberId); Partition partition = monitor.getDeploymentPolicy().getPartitionById(partitionId); - NetworkPartitionContext nwPartitionCtxt = monitor.findNetworkPartition(memberId); PartitionContext partitionCtxt = nwPartitionCtxt.getPartitionCtxt(partitionId); String lbClusterId = AutoscalerRuleEvaluator.getLbClusterId(partitionCtxt, nwPartitionCtxt); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6aac43bc/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 740db07..aa2bb8c 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 @@ -18,8 +18,20 @@ */ package org.apache.stratos.autoscaler.monitor; +import java.util.Map; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.NetworkPartitionContext; import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy; +import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy; +import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator; +import org.apache.stratos.messaging.domain.topology.Cluster; +import org.apache.stratos.messaging.domain.topology.Member; +import org.apache.stratos.messaging.domain.topology.Service; +import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; +import org.drools.runtime.StatefulKnowledgeSession; +import org.drools.runtime.rule.FactHandle; /** * Is responsible for monitoring a service cluster. This runs periodically @@ -29,19 +41,152 @@ import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy; */ abstract public class AbstractMonitor implements Runnable{ + private static final Log log = LogFactory.getLog(AbstractMonitor.class); + // Map<NetworkpartitionId, Network Partition Context> + protected Map<String, NetworkPartitionContext> networkPartitionCtxts; + protected DeploymentPolicy deploymentPolicy; + protected AutoscalePolicy autoscalePolicy; + + + protected FactHandle minCheckFactHandle; + protected FactHandle scaleCheckFactHandle; + + protected StatefulKnowledgeSession minCheckKnowledgeSession; + protected StatefulKnowledgeSession scaleCheckKnowledgeSession; + protected boolean isDestroyed; + + protected String clusterId; + protected String serviceId; + + protected AutoscalerRuleEvaluator autoscalerRuleEvaluator; + @Override public void run() { // TODO Auto-generated method stub } - public abstract String getPartitionOfMember(String memberId); - public abstract DeploymentPolicy getDeploymentPolicy(); - public abstract boolean memberExist(String memberId); - public abstract NetworkPartitionContext findNetworkPartition(String memberId); + + public NetworkPartitionContext getNetworkPartitionCtxt(Member member) { + log.info("***** getNetworkPartitionCtxt " + member.getNetworkPartitionId()); + String networkPartitionId = member.getNetworkPartitionId(); + if(networkPartitionCtxts.containsKey(networkPartitionId)) { + log.info("returnnig network partition context " + networkPartitionCtxts.get(networkPartitionId)); + return networkPartitionCtxts.get(networkPartitionId); + } + log.info("returning null getNetworkPartitionCtxt"); + return null; + } + + public String getPartitionOfMember(String memberId){ + for(Service service: TopologyManager.getTopology().getServices()){ + for(Cluster cluster: service.getClusters()){ + if(cluster.memberExists(memberId)){ + return cluster.getMember(memberId).getPartitionId(); + } + } + } + return null; + } + + public Member getMember(String memberId){ + + for(Service service: TopologyManager.getTopology().getServices()){ + for(Cluster cluster: service.getClusters()){ + if(cluster.memberExists(memberId)){ + return cluster.getMember(memberId); + } + } + } + return null; + } + + public void destroy() { + minCheckKnowledgeSession.dispose(); + scaleCheckKnowledgeSession.dispose(); + setDestroyed(true); + if(log.isDebugEnabled()) { + log.debug("Cluster Monitor Drools session has been disposed. "+this.toString()); + } + } + + public boolean isDestroyed() { + return isDestroyed; + } + + public void setDestroyed(boolean isDestroyed) { + this.isDestroyed = isDestroyed; + } + + public String getServiceId() { + return serviceId; + } + + public void setServiceId(String serviceId) { + this.serviceId = serviceId; + } + + public DeploymentPolicy getDeploymentPolicy() { + return deploymentPolicy; + } + + public void setDeploymentPolicy(DeploymentPolicy deploymentPolicy) { + this.deploymentPolicy = deploymentPolicy; + } + + public AutoscalePolicy getAutoscalePolicy() { + return autoscalePolicy; + } + + public void setAutoscalePolicy(AutoscalePolicy autoscalePolicy) { + this.autoscalePolicy = autoscalePolicy; + } + + public String getClusterId() { + return clusterId; + } + + public void setClusterId(String clusterId) { + this.clusterId = clusterId; + } + + public Map<String, NetworkPartitionContext> getNetworkPartitionCtxts() { + return networkPartitionCtxts; + } + + public NetworkPartitionContext getNetworkPartitionCtxt(String networkPartitionId) { + return networkPartitionCtxts.get(networkPartitionId); + } + + public void setPartitionCtxt(Map<String, NetworkPartitionContext> partitionCtxt) { + this.networkPartitionCtxts = partitionCtxt; + } + + public boolean partitionCtxtAvailable(String partitionId) { + return networkPartitionCtxts.containsKey(partitionId); + } + + public void addNetworkPartitionCtxt(NetworkPartitionContext ctxt) { + this.networkPartitionCtxts.put(ctxt.getId(), ctxt); + } + + public NetworkPartitionContext getPartitionCtxt(String id) { + return this.networkPartitionCtxts.get(id); + } + + public StatefulKnowledgeSession getMinCheckKnowledgeSession() { + return minCheckKnowledgeSession; + } + public void setMinCheckKnowledgeSession(StatefulKnowledgeSession minCheckKnowledgeSession) { + this.minCheckKnowledgeSession = minCheckKnowledgeSession; + } - public abstract NetworkPartitionContext getNetworkPartitionCtxt(String networkPartitionId); + public FactHandle getMinCheckFactHandle() { + return minCheckFactHandle; + } - public abstract void destroy(); + public void setMinCheckFactHandle(FactHandle minCheckFactHandle) { + this.minCheckFactHandle = minCheckFactHandle; + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6aac43bc/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 21738a5..1d0bad4 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 @@ -18,6 +18,8 @@ */ package org.apache.stratos.autoscaler.monitor; +import java.util.concurrent.ConcurrentHashMap; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.NetworkPartitionContext; @@ -25,14 +27,6 @@ import org.apache.stratos.autoscaler.PartitionContext; import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy; import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy; import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator; -import org.apache.stratos.messaging.domain.topology.Cluster; -import org.apache.stratos.messaging.domain.topology.Service; -import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; -import org.drools.runtime.StatefulKnowledgeSession; -import org.drools.runtime.rule.FactHandle; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; /** * Is responsible for monitoring a service cluster. This runs periodically @@ -42,30 +36,7 @@ import java.util.concurrent.ConcurrentHashMap; */ public class ClusterMonitor extends AbstractMonitor{ - private static final Log log = LogFactory.getLog(ClusterMonitor.class); - private String clusterId; - - private String serviceId; - - //key: network partition id, value: Network partition context - private Map<String, NetworkPartitionContext> networkPartitionCtxts; - - - private StatefulKnowledgeSession minCheckKnowledgeSession; - private StatefulKnowledgeSession scaleCheckKnowledgeSession; - private boolean isDestroyed; - - private DeploymentPolicy deploymentPolicy; - private AutoscalePolicy autoscalePolicy; - - // Key- MemberId Value- partitionId -// private Map<String, String> memberPartitionMap; - - private FactHandle minCheckFactHandle; - private FactHandle scaleCheckFactHandle; - - private AutoscalerRuleEvaluator autoscalerRuleEvaluator; - + private static final Log log = LogFactory.getLog(ClusterMonitor.class); private String lbReferenceType; public ClusterMonitor(String clusterId, String serviceId, DeploymentPolicy deploymentPolicy, @@ -82,53 +53,7 @@ public class ClusterMonitor extends AbstractMonitor{ networkPartitionCtxts = new ConcurrentHashMap<String, NetworkPartitionContext>(); } - public String getClusterId() { - return clusterId; - } - public void setClusterId(String clusterId) { - this.clusterId = clusterId; - } - - public Map<String, NetworkPartitionContext> getNetworkPartitionCtxts() { - return networkPartitionCtxts; - } - - public NetworkPartitionContext getNetworkPartitionCtxt(String networkPartitionId) { - return networkPartitionCtxts.get(networkPartitionId); - } - - public void setPartitionCtxt(Map<String, NetworkPartitionContext> partitionCtxt) { - this.networkPartitionCtxts = partitionCtxt; - } - - public boolean partitionCtxtAvailable(String partitionId) { - return networkPartitionCtxts.containsKey(partitionId); - } - - public void addNetworkPartitionCtxt(NetworkPartitionContext ctxt) { - this.networkPartitionCtxts.put(ctxt.getId(), ctxt); - } - - public NetworkPartitionContext getPartitionCtxt(String id) { - return this.networkPartitionCtxts.get(id); - } - - public StatefulKnowledgeSession getMinCheckKnowledgeSession() { - return minCheckKnowledgeSession; - } - - public void setMinCheckKnowledgeSession(StatefulKnowledgeSession minCheckKnowledgeSession) { - this.minCheckKnowledgeSession = minCheckKnowledgeSession; - } - - public FactHandle getMinCheckFactHandle() { - return minCheckFactHandle; - } - - public void setMinCheckFactHandle(FactHandle minCheckFactHandle) { - this.minCheckFactHandle = minCheckFactHandle; - } @Override public void run() { @@ -189,44 +114,6 @@ public class ClusterMonitor extends AbstractMonitor{ } } - - public void destroy() { - minCheckKnowledgeSession.dispose(); - scaleCheckKnowledgeSession.dispose(); - setDestroyed(true); - if(log.isDebugEnabled()) { - log.debug("Cluster Monitor Drools session has been disposed. "+this.toString()); - } - } - - public boolean isDestroyed() { - return isDestroyed; - } - - public void setDestroyed(boolean isDestroyed) { - this.isDestroyed = isDestroyed; - } - - public String getServiceId() { - return serviceId; - } - - public void setServiceId(String serviceId) { - this.serviceId = serviceId; - } - - public DeploymentPolicy getDeploymentPolicy() { - return deploymentPolicy; - } - - public void setDeploymentPolicy(DeploymentPolicy deploymentPolicy) { - this.deploymentPolicy = deploymentPolicy; - } - - public AutoscalePolicy getAutoscalePolicy() { - return autoscalePolicy; - } - @Override public String toString() { return "ClusterMonitor [clusterId=" + clusterId + ", serviceId=" + serviceId + @@ -234,33 +121,6 @@ public class ClusterMonitor extends AbstractMonitor{ ", lbReferenceType=" + lbReferenceType + "]"; } - public void setAutoscalePolicy(AutoscalePolicy autoscalePolicy) { - this.autoscalePolicy = autoscalePolicy; - } - - 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; - } - - @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() { return lbReferenceType; } @@ -268,18 +128,4 @@ public class ClusterMonitor extends AbstractMonitor{ public void setLbReferenceType(String lbReferenceType) { this.lbReferenceType = lbReferenceType; } - - @Override - 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; - } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6aac43bc/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 f180999..d5c1c92 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 @@ -18,6 +18,8 @@ */ package org.apache.stratos.autoscaler.monitor; +import java.util.concurrent.ConcurrentHashMap; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.NetworkPartitionContext; @@ -25,14 +27,6 @@ import org.apache.stratos.autoscaler.PartitionContext; import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy; import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy; import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator; -import org.apache.stratos.messaging.domain.topology.Cluster; -import org.apache.stratos.messaging.domain.topology.Service; -import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; -import org.drools.runtime.StatefulKnowledgeSession; -import org.drools.runtime.rule.FactHandle; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; /** * Is responsible for monitoring a service cluster. This runs periodically @@ -43,25 +37,6 @@ import java.util.concurrent.ConcurrentHashMap; public class LbClusterMonitor extends AbstractMonitor{ private static final Log log = LogFactory.getLog(LbClusterMonitor.class); - private String clusterId; - private String serviceId; - - private Map<String, NetworkPartitionContext> networkPartitionCtxts; - - private StatefulKnowledgeSession minCheckKnowledgeSession; - private StatefulKnowledgeSession scaleCheckKnowledgeSession; - private boolean isDestroyed; - - private DeploymentPolicy deploymentPolicy; - private AutoscalePolicy autoscalePolicy; - - // Key- MemberId Value- partitionId -// private Map<String, String> memberPartitionMap; - - private FactHandle minCheckFactHandle; - private FactHandle scaleCheckFactHandle; - - private AutoscalerRuleEvaluator autoscalerRuleEvaluator; public LbClusterMonitor(String clusterId, String serviceId, DeploymentPolicy deploymentPolicy, AutoscalePolicy autoscalePolicy) { @@ -77,54 +52,6 @@ public class LbClusterMonitor extends AbstractMonitor{ networkPartitionCtxts = new ConcurrentHashMap<String, NetworkPartitionContext>(); } - public String getClusterId() { - return clusterId; - } - - public void setClusterId(String clusterId) { - this.clusterId = clusterId; - } - - public Map<String, NetworkPartitionContext> getNetworkPartitionCtxts() { - return networkPartitionCtxts; - } - - public NetworkPartitionContext getNetworkPartitionCtxt(String networkPartitionId) { - return networkPartitionCtxts.get(networkPartitionId); - } - - public void setPartitionCtxt(Map<String, NetworkPartitionContext> partitionCtxt) { - this.networkPartitionCtxts = partitionCtxt; - } - - public boolean partitionCtxtAvailable(String partitionId) { - return networkPartitionCtxts.containsKey(partitionId); - } - - public void addNetworkPartitionCtxt(NetworkPartitionContext ctxt) { - this.networkPartitionCtxts.put(ctxt.getId(), ctxt); - } - - public NetworkPartitionContext getPartitionCtxt(String id) { - return this.networkPartitionCtxts.get(id); - } - - public StatefulKnowledgeSession getMinCheckKnowledgeSession() { - return minCheckKnowledgeSession; - } - - public void setMinCheckKnowledgeSession(StatefulKnowledgeSession minCheckKnowledgeSession) { - this.minCheckKnowledgeSession = minCheckKnowledgeSession; - } - - public FactHandle getMinCheckFactHandle() { - return minCheckFactHandle; - } - - public void setMinCheckFactHandle(FactHandle minCheckFactHandle) { - this.minCheckFactHandle = minCheckFactHandle; - } - @Override public void run() { @@ -172,89 +99,12 @@ public class LbClusterMonitor extends AbstractMonitor{ } } - } - - - public void destroy() { - minCheckKnowledgeSession.dispose(); - scaleCheckKnowledgeSession.dispose(); - setDestroyed(true); - if(log.isDebugEnabled()) { - log.debug("Cluster Monitor Drools session has been disposed. "+this.toString()); - } - } - - public boolean isDestroyed() { - return isDestroyed; - } - - public void setDestroyed(boolean isDestroyed) { - this.isDestroyed = isDestroyed; - } - - public String getServiceId() { - return serviceId; - } - - public void setServiceId(String serviceId) { - this.serviceId = serviceId; - } - - public DeploymentPolicy getDeploymentPolicy() { - return deploymentPolicy; - } - - public void setDeploymentPolicy(DeploymentPolicy deploymentPolicy) { - this.deploymentPolicy = deploymentPolicy; - } - - public AutoscalePolicy getAutoscalePolicy() { - return autoscalePolicy; - } - - public void setAutoscalePolicy(AutoscalePolicy autoscalePolicy) { - this.autoscalePolicy = autoscalePolicy; - } - - public String getPartitionOfMember(String memberId){ - for(Service service: TopologyManager.getTopology().getServices()){ - for(Cluster cluster: service.getClusters()){ - if(cluster.memberExists(memberId)){ - return cluster.getMember(memberId).getPartitionId(); - } - } - } - return null; - } - - @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()){ - String networkPartitionId = cluster.getMember(memberId).getNetworkPartitionId(); - if(networkPartitionCtxts.containsKey(networkPartitionId)) { - return networkPartitionCtxts.get(networkPartitionId); - } - } - } - return null; - } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6aac43bc/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 cdf6dd5..5ecfad9 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 @@ -231,7 +231,7 @@ public class AutoscalerTopologyReceiver implements Runnable { if(AutoscalerContext.getInstance().moniterExist(clusterId)) { monitor = AutoscalerContext.getInstance().getMonitor(clusterId); - partitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId).getPartitionCtxt(partitionId); + partitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId).getPartitionCtxt(partitionId); } else { monitor = AutoscalerContext.getInstance().getLBMonitor(clusterId); partitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId).getPartitionCtxt(partitionId); @@ -239,7 +239,7 @@ public class AutoscalerTopologyReceiver implements Runnable { // ClusterContext clusCtx = monitor.getClusterCtxt(); // monitor.getNetworkPartitionCtxt(e.getId()).getPartitionCtxt(partitionId); // .addMemberStatsContext(new MemberStatsContext(e.getMemberId())); - partitionContext.addMemberStatsContext(new MemberStatsContext(e.getMemberId())); + partitionContext.addMemberStatsContext(new MemberStatsContext(memberId)); // PartitionContext partCtxt = monitor.getNetworkPartitionCtxt(e.getId()) // .getPartitionCtxt(partitionId); partitionContext.incrementCurrentMemberCount(1);
