Updated Branches: refs/heads/master d510f3571 -> fb79b0362
Fixing network partition context in memory model and passing network partition id Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/fcd1e9c5 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/fcd1e9c5 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/fcd1e9c5 Branch: refs/heads/master Commit: fcd1e9c5934164862a21ffe0926d0b82a7308e0b Parents: ab50491 Author: Lahiru Sandaruwan <[email protected]> Authored: Thu Dec 12 23:28:21 2013 +0530 Committer: Lahiru Sandaruwan <[email protected]> Committed: Thu Dec 12 23:28:21 2013 +0530 ---------------------------------------------------------------------- .../apache/stratos/autoscaler/ClusterMonitor.java | 1 + .../cloud/controller/CloudControllerClient.java | 7 ++++--- .../health/HealthEventMessageDelegator.java | 2 +- .../autoscaler/rule/AutoscalerRuleEvaluator.java | 9 +++++---- .../autoscaler/rule/RuleTasksDelegator.java | 2 +- .../stratos/autoscaler/util/AutoscalerUtil.java | 3 +-- .../cloud/controller/pojo/MemberContext.java | 17 +++++++++++++---- .../src/main/resources/CloudControllerService.wsdl | 1 + 8 files changed, 27 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/fcd1e9c5/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterMonitor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterMonitor.java index 81a74e3..be29a48 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterMonitor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterMonitor.java @@ -42,6 +42,7 @@ public class ClusterMonitor implements Runnable{ private String serviceId; + //key: network partition id, value: Network partition context private Map<String, NetworkPartitionContext> networkPartitionCtxts; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/fcd1e9c5/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java index a657339..b690f91 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java @@ -26,7 +26,6 @@ import org.apache.stratos.autoscaler.Constants; import org.apache.stratos.autoscaler.exception.PartitionValidationException; import org.apache.stratos.autoscaler.exception.SpawningException; import org.apache.stratos.autoscaler.exception.TerminationException; -import org.apache.stratos.autoscaler.partition.PartitionManager; import org.apache.stratos.autoscaler.util.ConfUtil; import org.apache.stratos.cloud.controller.deployment.partition.Partition; import org.apache.stratos.cloud.controller.stub.*; @@ -119,13 +118,15 @@ public class CloudControllerClient { } - public org.apache.stratos.cloud.controller.pojo.MemberContext spawnAnInstance(Partition partition, String clusterId, String lbClusterId) throws SpawningException { + public org.apache.stratos.cloud.controller.pojo.MemberContext spawnAnInstance(Partition partition, String clusterId, String lbClusterId, String networkPartitionId) throws SpawningException { try { org.apache.stratos.cloud.controller.pojo.MemberContext member = new org.apache.stratos.cloud.controller.pojo.MemberContext(); member.setClusterId(clusterId); member.setPartition(partition); - member.setClusterId(lbClusterId); + member.setLbClusterId(lbClusterId); member.setInitTime(System.currentTimeMillis()); + member.setNetworkPartitionId(networkPartitionId); + log.info("Trying to spawn an instance of [cluster] "+clusterId+" [partition] "+partition.getId()+ " [lb cluster] "+lbClusterId); return stub.startInstance(member); } catch (CloudControllerServiceIllegalArgumentExceptionException e) { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/fcd1e9c5/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 05aa631..9c19e50 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 @@ -291,7 +291,7 @@ public class HealthEventMessageDelegator implements Runnable { PartitionContext partitionCtxt = nwPartitionCtxt.getPartitionCtxt(partitionId); String lbClusterId = AutoscalerRuleEvaluator.getLbClusterId(partitionCtxt, nwPartitionCtxt); - ccClient.spawnAnInstance(partition, clusterId, lbClusterId); + ccClient.spawnAnInstance(partition, clusterId, lbClusterId, nwPartitionCtxt.getId()); if (log.isInfoEnabled()) { log.info(String.format("Instance spawned for fault member: [partition] %s [cluster] %s [lb cluster] %s ", partitionId, clusterId, lbClusterId)); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/fcd1e9c5/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 e96b7c9..789606f 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 @@ -42,8 +42,7 @@ import java.util.Properties; public class AutoscalerRuleEvaluator { private static final Log log = LogFactory.getLog(AutoscalerRuleEvaluator.class); - - private static AutoscalerRuleEvaluator instance = null; + private static final String DRL_FILE_NAME = "mincheck.drl"; private static final String SCALING_DRL_FILE_NAME = "scaling.drl"; @@ -77,7 +76,9 @@ public class AutoscalerRuleEvaluator { ksession.update(handle, obj); } ksession.fireAllRules(); - log.info("fired all rules "+obj); + if(log.isDebugEnabled()){ + log.debug(String.format("Minimum check executed for : %s ", obj)); + } return handle; } @@ -93,7 +94,7 @@ public class AutoscalerRuleEvaluator { } ksession.fireAllRules(); if(log.isDebugEnabled()){ - log.debug(String.format("Rules executed for : %s ", obj)); + log.debug(String.format("Scale check executed for : %s ", obj)); } return handle; } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/fcd1e9c5/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 1a82239..906e002 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 @@ -58,7 +58,7 @@ public class RuleTasksDelegator { CloudControllerClient.getInstance() .spawnAnInstance(partitionContext.getPartition(), clusterId, - lbClusterId); + lbClusterId, partitionContext.getNetworkPartitionId()); if (memberContext != null) { partitionContext.addPendingMember(memberContext); } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/fcd1e9c5/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 44de2a8..4d58b17 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 @@ -25,7 +25,6 @@ import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.*; import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy; -import org.apache.stratos.autoscaler.exception.InvalidPartitionException; import org.apache.stratos.autoscaler.exception.PartitionValidationException; import org.apache.stratos.autoscaler.exception.PolicyValidationException; import org.apache.stratos.autoscaler.partition.PartitionGroup; @@ -42,7 +41,6 @@ import org.apache.stratos.messaging.domain.topology.MemberStatus; import org.apache.stratos.messaging.util.Constants; import javax.xml.namespace.QName; - import java.util.ArrayList; import java.util.Iterator; import java.util.Random; @@ -121,6 +119,7 @@ public class AutoscalerUtil { PartitionContext partitionContext = new PartitionContext(partition); partitionContext.setServiceName(cluster.getServiceName()); partitionContext.setProperties(cluster.getProperties()); + partitionContext.setNetworkPartitionId(partitionGroup.getId()); for (Member member: cluster.getMembers()){ String memberId = member.getMemberId(); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/fcd1e9c5/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java index 8c6cd8e..39c5e85 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java @@ -18,10 +18,10 @@ */ package org.apache.stratos.cloud.controller.pojo; -import java.io.Serializable; - import org.apache.stratos.cloud.controller.deployment.partition.Partition; +import java.io.Serializable; + /** * Holds information about a Member. * @author nirmal @@ -50,6 +50,8 @@ public class MemberContext implements Serializable{ private long initTime; // lb cluster id of this member private String lbClusterId; + //network partition id + private String networkPartitionId; public MemberContext(String id, String clusterId, Partition partition) { this.memberId = id; @@ -131,6 +133,13 @@ public class MemberContext implements Serializable{ public void setLbClusterId(String lbClusterId) { this.lbClusterId = lbClusterId; } - - + + + public String getNetworkPartitionId() { + return networkPartitionId; + } + + public void setNetworkPartitionId(String networkPartitionId) { + this.networkPartitionId = networkPartitionId; + } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/fcd1e9c5/service-stubs/org.apache.stratos.cloud.controller.service.stub/src/main/resources/CloudControllerService.wsdl ---------------------------------------------------------------------- diff --git a/service-stubs/org.apache.stratos.cloud.controller.service.stub/src/main/resources/CloudControllerService.wsdl b/service-stubs/org.apache.stratos.cloud.controller.service.stub/src/main/resources/CloudControllerService.wsdl index b8676f0..205d872 100644 --- a/service-stubs/org.apache.stratos.cloud.controller.service.stub/src/main/resources/CloudControllerService.wsdl +++ b/service-stubs/org.apache.stratos.cloud.controller.service.stub/src/main/resources/CloudControllerService.wsdl @@ -240,6 +240,7 @@ <xs:element minOccurs="0" name="partition" nillable="true" type="ax29:Partition"/> <xs:element minOccurs="0" name="privateIpAddress" nillable="true" type="xs:string"/> <xs:element minOccurs="0" name="publicIpAddress" nillable="true" type="xs:string"/> + <xs:element minOccurs="0" name="networkPartitionId" nillable="true" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="Registrant">
