Updated Branches: refs/heads/master da3cd1dcf -> 6029d2bb4
Adding partition id to to the Member spawned event of CC Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/98ac81d7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/98ac81d7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/98ac81d7 Branch: refs/heads/master Commit: 98ac81d771f5e612ef5da5478c5a65f2aa55d5ff Parents: d387d64 Author: Udara Liyanage <[email protected]> Authored: Tue Dec 3 12:22:34 2013 -0500 Committer: Udara Liyanage <[email protected]> Committed: Tue Dec 3 12:22:34 2013 -0500 ---------------------------------------------------------------------- .../apache/stratos/autoscaler/Constants.java | 2 ++ .../health/HealthEventMessageDelegator.java | 29 ++------------------ .../processors/AutoscalerTopologyReceiver.java | 22 ++++++++------- .../controller/topology/TopologyBuilder.java | 3 ++ .../event/topology/MemberActivatedEvent.java | 10 +++++++ .../topology/InstanceSpawnedEventProcessor.java | 1 + 6 files changed, 30 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/98ac81d7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/Constants.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/Constants.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/Constants.java index c600f1e..32e69e5 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/Constants.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/Constants.java @@ -11,6 +11,8 @@ public class Constants { public static String GRADIENT_OF_REQUESTS_IN_FLIGHT = "gradient_of_requests_in_flight"; public static String AVERAGE_REQUESTS_IN_FLIGHT = "average_requests_in_flight"; public static String SECOND_DERIVATIVE_OF_REQUESTS_IN_FLIGHT = "second_derivative_of_requests_in_flight"; + + public static String MEMBER_FAULT_EVENT_NAME = "member_fault"; //scheduler public static final int SCHEDULE_DEFAULT_INITIAL_DELAY = 30; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/98ac81d7/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 da18a41..55d3018 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 @@ -61,32 +61,7 @@ public class HealthEventMessageDelegator implements Runnable { messageProperties = setEventValues(messageText); this.clusterId = messageProperties.get("cluster_id"); log.info("Received event " + eventName); -// for (Service service : TopologyManager.getTopology().getServices()){ -// -// if(service.clusterExists(clusterId)){ -// -// if(!AutoscalerContext.getInstance().clusterExists(clusterId)){ -// -// Cluster cluster = service.getCluster(clusterId); -// AutoscalePolicy autoscalePolicy = PolicyManager.getInstance().getAutoscalePolicy(cluster.getAutoscalePolicyName()); -// DeploymentPolicy deploymentPolicy = PolicyManager.getInstance().getDeploymentPolicy(cluster.getDeploymentPolicyName()); -// -// ClusterContext clusterContext = new ClusterContext(clusterId, service.getServiceName(), deploymentPolicy.getAllPartitions()); -// -// LoadThresholds loadThresholds = autoscalePolicy.getLoadThresholds(); -// float averageLimit = loadThresholds.getRequestsInFlight().getAverage(); -// float gradientLimit = loadThresholds.getRequestsInFlight().getGradient(); -// float secondDerivative = loadThresholds.getRequestsInFlight().getSecondDerivative(); -// -// clusterContext.setAverageRequestsInFlight(averageLimit); -// clusterContext.setRequestsInFlightGradient(gradientLimit); -// clusterContext.setRequestsInFlightSecondDerivative(secondDerivative); -// -// AutoscalerContext.getInstance().addClusterContext(clusterContext); -// } -// break; -// } -// } + if(Constants.AVERAGE_REQUESTS_IN_FLIGHT.equals(eventName)){ Float messageValue = Float.parseFloat(messageProperties.get("value")); AutoscalerContext.getInstance().getClusterContext(clusterId).setAverageRequestsInFlight(messageValue); @@ -99,7 +74,7 @@ public class HealthEventMessageDelegator implements Runnable { Float messageValue = Float.parseFloat(messageProperties.get("value")); AutoscalerContext.getInstance().getClusterContext(clusterId).setRequestsInFlightSecondDerivative(messageValue); - }else if ("member_fault".equals(eventName)){ + }else if (Constants.MEMBER_FAULT_EVENT_NAME.equals(eventName)){ String memberId = messageProperties.get("member_id"); if(memberId != null && !memberId.isEmpty()) log.error("MemberId is not included in the received message"); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/98ac81d7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/AutoscalerTopologyReceiver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/AutoscalerTopologyReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/AutoscalerTopologyReceiver.java index 96fb3af..6b64514 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/AutoscalerTopologyReceiver.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/AutoscalerTopologyReceiver.java @@ -146,16 +146,7 @@ public class AutoscalerTopologyReceiver implements Runnable { processorChain.addEventListener(new MemberStartedEventListener() { @Override protected void onEvent(Event event) { - try { - TopologyManager.acquireReadLock(); - - MemberStartedEvent e = (MemberStartedEvent) event; - ClusterContext clusCtx = AutoscalerContext.getInstance().getClusterContext(e.getClusterId()); - clusCtx.addMemberpartition(e.getMemberId(), e.getPartitionId()); - } - finally{ - TopologyManager.releaseReadLock(); - } + } }); @@ -196,6 +187,17 @@ public class AutoscalerTopologyReceiver implements Runnable { // finally { // TopologyManager.releaseReadLock(); // } + + try { + TopologyManager.acquireReadLock(); + + MemberActivatedEvent e = (MemberActivatedEvent)event; + ClusterContext clusCtx = AutoscalerContext.getInstance().getClusterContext(e.getClusterId()); + clusCtx.addMemberpartition(e.getMemberId(), e.getPartitionId()); + } + finally{ + TopologyManager.releaseReadLock(); + } } }); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/98ac81d7/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java index 7b21c10..634f49b 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java @@ -278,6 +278,7 @@ public class TopologyBuilder { } finally { TopologyManager.getInstance().releaseWriteLock(); } + //memberStartedEvent. TopologyEventSender.sendMemberStartedEvent(memberStartedEvent); } @@ -322,6 +323,8 @@ public class TopologyBuilder { member.addPort(port); memberActivatedEventTopology.addPort(port); } + + memberActivatedEventTopology.setPartitionId(member.getPartitionId()); memberActivatedEventTopology.setMemberIp(member.getMemberIp()); TopologyManager.getInstance().updateTopology(topology); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/98ac81d7/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java index eda4b0b..4a73dea 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java @@ -37,6 +37,7 @@ public class MemberActivatedEvent extends TopologyEvent implements Serializable private String memberId; private Map<String, Port> portMap; private String memberIp; + private String partitionId; public MemberActivatedEvent(String serviceName, String clusterId, String memberId) { this.serviceName = serviceName; @@ -88,4 +89,13 @@ public class MemberActivatedEvent extends TopologyEvent implements Serializable public void setMemberIp(String memberIp) { this.memberIp = memberIp; } + + public void setPartitionId(String partitionId) { + this.partitionId = partitionId; + + } + + public String getPartitionId(){ + return this.partitionId; + } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/98ac81d7/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedEventProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedEventProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedEventProcessor.java index cae031f..0d2f0e2 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedEventProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedEventProcessor.java @@ -88,6 +88,7 @@ public class InstanceSpawnedEventProcessor extends MessageProcessor { // Apply changes to the topology Member member = new Member(event.getServiceName(), event.getClusterId(), event.getMemberId()); member.setStatus(MemberStatus.Created); + member.setPartitionId(event.getPartitionId()); cluster.addMember(member); if (log.isInfoEnabled()) {
