Updated Branches:
  refs/heads/master 7732f1350 -> 7d0d1e9e5

setting lb cluster id correctly in health event delegator and refactoring


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

Branch: refs/heads/master
Commit: 7d0d1e9e58f253a879bd968cd43bb778563c82d3
Parents: 7732f13
Author: Nirmal Fernando <[email protected]>
Authored: Wed Dec 11 23:53:55 2013 +0530
Committer: Nirmal Fernando <[email protected]>
Committed: Wed Dec 11 23:53:55 2013 +0530

----------------------------------------------------------------------
 .../cloud/controller/CloudControllerClient.java |  1 +
 .../health/HealthEventMessageDelegator.java     | 14 ++++++++--
 .../rule/AutoscalerRuleEvaluator.java           | 29 ++++++++++++--------
 3 files changed, 31 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7d0d1e9e/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 b131abc..a657339 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
@@ -126,6 +126,7 @@ public class CloudControllerClient {
             member.setPartition(partition);
             member.setClusterId(lbClusterId);
             member.setInitTime(System.currentTimeMillis());
+            log.info("Trying to spawn an instance of [cluster] "+clusterId+" 
[partition] "+partition.getId()+ " [lb cluster] "+lbClusterId);
             return stub.startInstance(member);
         } catch (CloudControllerServiceIllegalArgumentExceptionException e) {
             log.error(e.getMessage());

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7d0d1e9e/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 76dac5d..05aa631 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
@@ -19,17 +19,21 @@
 package org.apache.stratos.autoscaler.message.receiver.health;
 
 import com.google.gson.stream.JsonReader;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.AutoscalerContext;
 import org.apache.stratos.autoscaler.ClusterMonitor;
 import org.apache.stratos.autoscaler.Constants;
+import org.apache.stratos.autoscaler.NetworkPartitionContext;
+import org.apache.stratos.autoscaler.PartitionContext;
 import 
org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
 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.policy.model.LoadAverage;
 import org.apache.stratos.autoscaler.policy.model.MemoryConsumption;
+import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
 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;
@@ -37,6 +41,7 @@ import org.apache.stratos.messaging.domain.topology.Service;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 
 import javax.jms.TextMessage;
+
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.StringReader;
@@ -282,9 +287,14 @@ public class HealthEventMessageDelegator implements 
Runnable {
             // start a new member in the same Partition
             String partitionId = monitor.getPartitonOfMember(memberId);
             Partition partition = 
monitor.getDeploymentPolicy().getPartitionById(partitionId);
-            ccClient.spawnAnInstance(partition, clusterId, null);
+            NetworkPartitionContext nwPartitionCtxt = 
PartitionManager.getInstance().getNetworkPartitionOfPartition(partitionId);
+            PartitionContext partitionCtxt = 
nwPartitionCtxt.getPartitionCtxt(partitionId);
+            
+            String lbClusterId = 
AutoscalerRuleEvaluator.getLbClusterId(partitionCtxt, nwPartitionCtxt);
+            ccClient.spawnAnInstance(partition, clusterId, lbClusterId);
             if (log.isInfoEnabled()) {
-                log.info(String.format("Instance spawned for fault member: 
[partition] %s [cluster] %s", partitionId, clusterId));
+                log.info(String.format("Instance spawned for fault member: 
[partition] %s [cluster] %s [lb cluster] %s ", 
+                                       partitionId, clusterId, lbClusterId));
             }
 
         } catch (TerminationException e) {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7d0d1e9e/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 3ec7adb..4589efa 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
@@ -132,17 +132,7 @@ public class AutoscalerRuleEvaluator {
                                            PartitionManager.getInstance()
                                                            
.getNetworkPartition(nwPartitionId);
 
-            Properties props = partitionContext.getProperties();
-            String value =
-                           (String) 
props.get(org.apache.stratos.messaging.util.Constants.LOAD_BALANCER_REF);
-            String lbClusterId = null;
-
-            if 
(value.equals(org.apache.stratos.messaging.util.Constants.DEFAULT_LOAD_BALANCER))
 {
-                lbClusterId = ctxt.getDefaultLbClusterId();
-            } else if 
(value.equals(org.apache.stratos.messaging.util.Constants.SERVICE_AWARE_LOAD_BALANCER))
 {
-                String serviceName = partitionContext.getServiceName();
-                lbClusterId = ctxt.getLBClusterIdOfService(serviceName);
-            }
+            String lbClusterId = getLbClusterId(partitionContext, ctxt);
 
             MemberContext memberContext =
                                           CloudControllerClient.getInstance()
@@ -160,6 +150,23 @@ public class AutoscalerRuleEvaluator {
                }
        }
 
+
+
+    public static String getLbClusterId(PartitionContext partitionContext, 
NetworkPartitionContext ctxt) {
+        Properties props = partitionContext.getProperties();
+        String value =
+                       (String) 
props.get(org.apache.stratos.messaging.util.Constants.LOAD_BALANCER_REF);
+        String lbClusterId = null;
+
+        if 
(value.equals(org.apache.stratos.messaging.util.Constants.DEFAULT_LOAD_BALANCER))
 {
+            lbClusterId = ctxt.getDefaultLbClusterId();
+        } else if 
(value.equals(org.apache.stratos.messaging.util.Constants.SERVICE_AWARE_LOAD_BALANCER))
 {
+            String serviceName = partitionContext.getServiceName();
+            lbClusterId = ctxt.getLBClusterIdOfService(serviceName);
+        }
+        return lbClusterId;
+    }
+
     public void delegateTerminate(Partition partition, String clusterId) {
                log.info("terminate from partition " + partition.getId() + " 
cluster " + clusterId );
        }

Reply via email to