You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ud...@apache.org on 2013/12/02 17:39:28 UTC

[1/6] git commit: Accept fault member event messages

Updated Branches:
  refs/heads/master 7ce95692f -> a6f454914


Accept fault member event messages


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

Branch: refs/heads/master
Commit: 0859610c124ce27265cdfd8f53c366d338d0da5b
Parents: 41f4e81
Author: Udara Liyanage <ud...@wso2.com>
Authored: Sat Nov 30 21:50:53 2013 -0500
Committer: Udara Liyanage <ud...@wso2.com>
Committed: Sat Nov 30 22:30:01 2013 -0500

----------------------------------------------------------------------
 .../health/HealthEventMessageDelegator.java     | 82 ++++++++++----------
 1 file changed, 39 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0859610c/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 e7a03bd..61a1706 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
@@ -24,10 +24,14 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.AutoscalerContext;
 import org.apache.stratos.autoscaler.Constants;
+
 import javax.jms.TextMessage;
 
 import java.io.BufferedReader;
+import java.io.IOException;
 import java.io.StringReader;
+import java.util.HashMap;
+import java.util.Map;
 
 
 /**
@@ -37,9 +41,7 @@ public class HealthEventMessageDelegator implements Runnable {
 
     private static final Log log = LogFactory.getLog(HealthEventMessageDelegator.class);
     private String eventName;
-    private float value;
-    private String clusterId;
-    
+    private Map<String, String> messageProperties;
     @Override
     public void run() {
 		log.info("Health stat event message processor started");
@@ -50,11 +52,8 @@ public class HealthEventMessageDelegator implements Runnable {
 
 				String messageText = message.getText();
 
-                setEventValues(messageText);
-
-                log.info(clusterId);
-                log.info(value);
-                log.info(eventName);
+                messageProperties = setEventValues(messageText);
+                log.info("Received event " + eventName);
 //                for (Service service :  TopologyManager.getTopology().getServices()){
 //
 //                    if(service.clusterExists(clusterId)){
@@ -82,16 +81,27 @@ public class HealthEventMessageDelegator implements Runnable {
 //                    }
 //                }
                 if(Constants.AVERAGE_REQUESTS_IN_FLIGHT.equals(eventName)){
-                    AutoscalerContext.getInstance().getClusterContext(clusterId).setAverageRequestsInFlight(value);
+                	String clusterId = messageProperties.get("cluster_id");
+                	Float messageValue = Float.parseFloat(messageProperties.get("value"));
+                    AutoscalerContext.getInstance().getClusterContext(clusterId).setAverageRequestsInFlight(messageValue);
 
                 }  else if(Constants.GRADIENT_OF_REQUESTS_IN_FLIGHT.equals(eventName)){
-                    AutoscalerContext.getInstance().getClusterContext(clusterId).setRequestsInFlightGradient(value);
+                	String clusterId = messageProperties.get("cluster_id");
+                	Float messageValue = Float.parseFloat(messageProperties.get("value"));
+                    AutoscalerContext.getInstance().getClusterContext(clusterId).setRequestsInFlightGradient(messageValue);
 
                 }  else if(Constants.SECOND_DERIVATIVE_OF_REQUESTS_IN_FLIGHT.equals(eventName)){
-                    AutoscalerContext.getInstance().getClusterContext(clusterId).setRequestsInFlightSecondDerivative(value);
+                	String clusterId = messageProperties.get("cluster_id");
+                	Float messageValue = Float.parseFloat(messageProperties.get("value"));
+                    AutoscalerContext.getInstance().getClusterContext(clusterId).setRequestsInFlightSecondDerivative(messageValue);
 
+                }else if ("member_fault".equals(eventName)){
+                	// member with 
                 }
-
+                
+                // clear the message properties after handling the message.
+                messageProperties.clear();
+                
 			} catch (Exception e) {
                 String error = "Failed to retrieve the health stat event message.";
             	log.error(error);
@@ -99,48 +109,34 @@ public class HealthEventMessageDelegator implements Runnable {
         }
     }
 
-    public void setEventValues(String json) {
-
+    public Map<String, String> setEventValues(String json) {
+    	
+    	Map<String, String> properties = new HashMap<String, String>();
+    	BufferedReader bufferedReader = new BufferedReader(new StringReader(json));
+        JsonReader reader = new JsonReader(bufferedReader);
         try {
 
-            BufferedReader bufferedReader = new BufferedReader(new StringReader(json));
-            JsonReader reader = new JsonReader(bufferedReader);
+           
             reader.beginObject();
 
             if(reader.hasNext()) {
-
                 eventName = reader.nextName();
-                reader.beginObject();
-                if("cluster_id".equals(reader.nextName())) {
-                    
-                    if(reader.hasNext()){
-                        
-                        clusterId = reader.nextString();
-                    }
-                }
-                if(reader.hasNext()) {
-
-                    if ("value".equals(reader.nextName())) {
-
-                        if(reader.hasNext()){
-
-                            String stringValue = reader.nextString();
-                            try {
-
-                                value = Float.parseFloat(stringValue);
-                            } catch (NumberFormatException ex) {
-                            	log.error("Error while converting health stat message value to float", ex);
-                            }
-                        }
-                    }
+                
+                reader.beginObject();                
+                while(reader.hasNext()){
+                	String name = reader.nextName();
+                	String value = reader.nextString();
+                	properties.put(name, value);
                 }
+                               
             }
-            reader.close();
-
-        } catch (Exception e) {
+            reader.close(); 
+            return properties;
+        }catch(IOException e) {
             log.error( "Could not extract message header");
 //            throw new RuntimeException("Could not extract message header", e);
         }
+		return null;
     }
     
 }


[4/6] git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-stratos

Posted by ud...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-stratos


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

Branch: refs/heads/master
Commit: 7ea5cd9ecd6e5a3374e254796e9678b71d726aa5
Parents: b340348 cb38cc9
Author: Udara Liyanage <ud...@wso2.com>
Authored: Mon Dec 2 15:21:49 2013 -0500
Committer: Udara Liyanage <ud...@wso2.com>
Committed: Mon Dec 2 15:21:49 2013 -0500

----------------------------------------------------------------------
 .../service/RepositoryInformationService.java   |  71 -------
 .../src/main/resources/META-INF/services.xml    |  19 --
 .../src/main/bin/event-subscriber.sh            |   2 +-
 .../event/subscriber/ArtifactListener.java      |  15 +-
 .../subscriber/CartridgeAgentConstants.java     |  33 ++++
 .../cartridge/agent/event/subscriber/Main.java  |   7 +-
 .../pom.xml                                     | 119 ------------
 .../resources/RepositoryInformationService.wsdl | 193 -------------------
 service-stubs/pom.xml                           |   1 -
 9 files changed, 44 insertions(+), 416 deletions(-)
----------------------------------------------------------------------



[6/6] git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-stratos

Posted by ud...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-stratos


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

Branch: refs/heads/master
Commit: a6f4549145de7771a37f2964f434eb87efad89d2
Parents: a754a64 7ce9569
Author: Udara Liyanage <ud...@wso2.com>
Authored: Mon Dec 2 22:09:04 2013 -0500
Committer: Udara Liyanage <ud...@wso2.com>
Committed: Mon Dec 2 22:09:04 2013 -0500

----------------------------------------------------------------------
 .../statistics/WSO2CEPStatsPublisher.java       |   3 +-
 .../conf/LoadBalancerConfiguration.java         |  93 ++++++----
 .../load/balancer/conf/SynapseConfigurator.java | 184 ------------------
 .../conf/configurator/CEPConfigurator.java      |  35 ++++
 .../conf/configurator/JndiConfigurator.java     |  76 ++++++++
 .../conf/configurator/SynapseConfigurator.java  | 185 +++++++++++++++++++
 .../TopologyFilterConfigurator.java             |  34 ++++
 .../load/balancer/conf/util/Constants.java      |   2 +
 .../internal/LoadBalancerServiceComponent.java  |  12 +-
 .../sample/configuration/loadbalancer1.conf     |  16 +-
 .../sample/configuration/loadbalancer2.conf     |  18 +-
 .../sample/configuration/loadbalancer3.conf     |  16 +-
 .../FaultMessageEventFormatter.xml              |   2 +-
 .../executionplans/AverageHeathRequest.xml      |   2 +-
 .../executionplans/GradientOfHealthRequest.xml  |   2 +-
 .../src/main/bin/haproxy-extension.sh           |   5 +-
 .../cartridge-agent/ec2/php/cartridge-agent.sh  |   2 +-
 .../src/main/bin/health-publisher.sh            |   2 +-
 .../agent/health/publisher/HealthPublisher.java |   6 +-
 .../distribution/src/main/assembly/bin.xml      |  11 +-
 .../distribution/src/main/bin/stratos.bat       |   2 +-
 .../distribution/src/main/bin/stratos.sh        |   5 -
 .../distribution/src/main/conf/jndi.properties  |   4 -
 .../src/main/conf/loadbalancer.conf             |  22 ++-
 .../conf/templates/jndi.properties.template     |  26 +++
 tools/stratos-installer/conf/setup.conf         |   7 +-
 tools/stratos-installer/setup.sh                |  65 +++++--
 tools/stratos-installer/start-servers.sh        |  27 +--
 28 files changed, 576 insertions(+), 288 deletions(-)
----------------------------------------------------------------------



[2/6] git commit: Removing unused imports and adding serialVersionUID.

Posted by ud...@apache.org.
Removing unused imports and adding serialVersionUID.


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

Branch: refs/heads/master
Commit: 2d1758600c6c5f7e78ffd76e67b25afbb1189cb1
Parents: efc3bab
Author: Udara Liyanage <ud...@wso2.com>
Authored: Mon Dec 2 14:04:28 2013 -0500
Committer: Udara Liyanage <ud...@wso2.com>
Committed: Mon Dec 2 14:04:28 2013 -0500

----------------------------------------------------------------------
 .../client/cloud/controller/CloudControllerClient.java  |  1 -
 .../autoscaler/event/AverageRequestsInFlightEvent.java  |  4 ++--
 .../event/GradientOfRequestsInFlightEvent.java          |  4 ++--
 .../event/SecondDerivativeOfRequestsInFlightEvent.java  |  6 +++---
 .../autoscaler/internal/AutoscalerServerComponent.java  |  3 ---
 .../message/receiver/health/HealthEventQueue.java       |  4 +++-
 .../stratos/autoscaler/rule/ExecutorTaskScheduler.java  | 12 ++++--------
 .../topology/processors/AutoscalerTopologyReceiver.java |  1 -
 .../topology/processors/TopologyReceiver.java           |  1 -
 .../org/apache/stratos/autoscaler/util/ConfUtil.java    | 11 ++---------
 10 files changed, 16 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2d175860/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 1fb9a45..6eed713 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
@@ -24,7 +24,6 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.Constants;
 import org.apache.stratos.autoscaler.exception.PartitionValidationException;
-import org.apache.stratos.autoscaler.exception.PolicyValidationException;
 import org.apache.stratos.autoscaler.exception.SpawningException;
 import org.apache.stratos.autoscaler.exception.TerminationException;
 import org.apache.stratos.autoscaler.util.ConfUtil;

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2d175860/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/AverageRequestsInFlightEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/AverageRequestsInFlightEvent.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/AverageRequestsInFlightEvent.java
index 1f03f76..37edcf6 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/AverageRequestsInFlightEvent.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/AverageRequestsInFlightEvent.java
@@ -26,8 +26,8 @@ import java.io.Serializable;
  */
 public class AverageRequestsInFlightEvent implements Serializable {
 
-
-    private String clusterId;
+	private static final long serialVersionUID = 7178667274015434275L;
+	private String clusterId;
     private float value;
 
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2d175860/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/GradientOfRequestsInFlightEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/GradientOfRequestsInFlightEvent.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/GradientOfRequestsInFlightEvent.java
index a198a1d..ad55619 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/GradientOfRequestsInFlightEvent.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/GradientOfRequestsInFlightEvent.java
@@ -26,8 +26,8 @@ import java.io.Serializable;
  */
 public class GradientOfRequestsInFlightEvent implements Serializable {
 
-
-    private String clusterId;
+	private static final long serialVersionUID = 6140723469565274572L;
+	private String clusterId;
     private float value;
 
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2d175860/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/SecondDerivativeOfRequestsInFlightEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/SecondDerivativeOfRequestsInFlightEvent.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/SecondDerivativeOfRequestsInFlightEvent.java
index c9881f9..ae4ca7a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/SecondDerivativeOfRequestsInFlightEvent.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/SecondDerivativeOfRequestsInFlightEvent.java
@@ -25,9 +25,9 @@ import java.io.Serializable;
  *  This event is fired by Event processing engine to send second derivative of requests in flight
  */
 public class SecondDerivativeOfRequestsInFlightEvent implements Serializable {
-
-
-    private String clusterId;
+	
+	private static final long serialVersionUID = 8857808689466762084L;
+	private String clusterId;
     private float value;
 
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2d175860/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
index 4969670..a02411d 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServerComponent.java
@@ -24,10 +24,7 @@ import org.apache.stratos.autoscaler.message.receiver.health.HealthEventMessageD
 import org.apache.stratos.autoscaler.message.receiver.health.HealthEventMessageReceiver;
 import org.apache.stratos.autoscaler.rule.ExecutorTaskScheduler;
 import org.apache.stratos.autoscaler.topology.processors.AutoscalerTopologyReceiver;
-import org.apache.stratos.autoscaler.topology.processors.TopologyReceiver;
 import org.apache.stratos.messaging.broker.subscribe.TopicSubscriber;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageDelegator;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageReceiver;
 import org.apache.stratos.messaging.util.Constants;
 import org.osgi.service.component.ComponentContext;
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2d175860/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventQueue.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventQueue.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventQueue.java
index 6544d4f..f26efd5 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventQueue.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventQueue.java
@@ -26,7 +26,9 @@ import java.util.concurrent.LinkedBlockingQueue;
  * Implements topology event queue.
  */
 public class HealthEventQueue extends LinkedBlockingQueue<TextMessage>{
-    private static volatile HealthEventQueue instance;
+
+	private static final long serialVersionUID = 2556240855574421561L;
+	private static volatile HealthEventQueue instance;
 
     private HealthEventQueue(){
     }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2d175860/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/ExecutorTaskScheduler.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/ExecutorTaskScheduler.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/ExecutorTaskScheduler.java
index fe79a59..869058e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/ExecutorTaskScheduler.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/ExecutorTaskScheduler.java
@@ -19,19 +19,15 @@
 
 package org.apache.stratos.autoscaler.rule;
 
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.commons.configuration.XMLConfiguration;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.AutoscalerContext;
 import org.apache.stratos.autoscaler.Constants;
 import org.apache.stratos.autoscaler.util.ConfUtil;
-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 java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
 
 /**
  * This class is responsible for scheduling the task of evaluating the current details of topology, statistics, and health

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2d175860/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 221daa6..9c91cf3 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
@@ -28,7 +28,6 @@ import org.apache.stratos.autoscaler.exception.PolicyValidationException;
 import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
 import org.apache.stratos.autoscaler.util.AutoscalerUtil;
 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.event.Event;
 import org.apache.stratos.messaging.listener.topology.ClusterCreatedEventListener;

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2d175860/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/TopologyReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/TopologyReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/TopologyReceiver.java
index 09c4a30..4809208 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/TopologyReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/topology/processors/TopologyReceiver.java
@@ -22,7 +22,6 @@ package org.apache.stratos.autoscaler.topology.processors;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.messaging.broker.subscribe.TopicSubscriber;
-import org.apache.stratos.messaging.message.processor.MessageProcessorChain;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageDelegator;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageReceiver;
 import org.apache.stratos.messaging.util.Constants;

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2d175860/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ConfUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ConfUtil.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ConfUtil.java
index ddc3cb5..8a5c597 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ConfUtil.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ConfUtil.java
@@ -19,22 +19,15 @@
 
 package org.apache.stratos.autoscaler.util;
 
-import org.apache.axiom.om.OMElement;
+import java.io.File;
+
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.XMLConfiguration;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.Constants;
-import org.apache.stratos.cloud.controller.pojo.Properties;
-import org.apache.stratos.cloud.controller.pojo.Property;
 import org.wso2.carbon.utils.CarbonUtils;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import javax.xml.namespace.QName;
-
 /**
  * This class contains utility methods for read Autoscaler configuration file.
  */


[5/6] git commit: Adding faulty member event handlers

Posted by ud...@apache.org.
Adding faulty member event handlers


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

Branch: refs/heads/master
Commit: a754a642622fb914ae9b6f84a85bb0b3a975a2e1
Parents: 7ea5cd9
Author: Udara Liyanage <ud...@wso2.com>
Authored: Mon Dec 2 19:46:57 2013 -0500
Committer: Udara Liyanage <ud...@wso2.com>
Committed: Mon Dec 2 22:08:02 2013 -0500

----------------------------------------------------------------------
 .../stratos/autoscaler/ClusterContext.java      | 29 ++++++++++++++
 .../deployment/policy/DeploymentPolicy.java     |  9 ++++-
 .../health/HealthEventMessageDelegator.java     | 40 ++++++++++++++++----
 .../processors/AutoscalerTopologyReceiver.java  | 39 +++++++++++++++++++
 .../event/topology/MemberStartedEvent.java      | 15 ++++++++
 5 files changed, 124 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/a754a642/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java
index 82d9d0c..8f6da21 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java
@@ -61,6 +61,8 @@ public class ClusterContext {
     private Properties properties;
 
     private Map<String, MemberStatsContext> memberContextMap;
+    // Key- MemberId Value- partitionId
+    private Map<String, String> memberPartitionMap;
     private DeploymentPolicy deploymentPolicy;
 
     public ClusterContext(String clusterId, String serviceId, DeploymentPolicy deploymentPolicy, List<Partition> partitions) {
@@ -70,6 +72,7 @@ public class ClusterContext {
         this.setDeploymentPolicy(deploymentPolicy);
         partitionsOfThisCluster = new ArrayList<Partition>();
         memberContextMap = new HashMap<String, MemberStatsContext>();
+        setMemberPartitionMap(new HashMap<String, String>());
         partitionCountMap = new HashMap<String, Integer>();
         
         for (Partition partition : partitions) {
@@ -245,4 +248,30 @@ public class ClusterContext {
     public void setDeploymentPolicy(DeploymentPolicy deploymentPolicy) {
         this.deploymentPolicy = deploymentPolicy;
     }
+
+	/**
+	 * @return the memberPartitionMap
+	 */
+	public Map<String, String> getMemberPartitionMap() {
+		return memberPartitionMap;
+	}
+
+	/**
+	 * @param memberPartitionMap the memberPartitionMap to set
+	 */
+	public void setMemberPartitionMap(Map<String, String> memberPartitionMap) {
+		this.memberPartitionMap = memberPartitionMap;
+	}
+	
+	public void addMemberpartition(String memberId, String partitionId){
+		this.memberPartitionMap.put(memberId, partitionId);
+	}
+	
+	public void removeMemberPartition(String memberId){
+		this.memberPartitionMap.remove(memberId);
+	}
+	
+	public String getPartitonOfMember(String memberId){
+		return this.memberPartitionMap.get(memberId);
+	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/a754a642/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/deployment/policy/DeploymentPolicy.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/deployment/policy/DeploymentPolicy.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/deployment/policy/DeploymentPolicy.java
index 815fbd7..c253d9a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/deployment/policy/DeploymentPolicy.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/deployment/policy/DeploymentPolicy.java
@@ -79,7 +79,14 @@ public class DeploymentPolicy implements Serializable{
     public List<Partition> getAllPartitions() {
         return allPartitions;
     }
-
+    
+    public Partition getPartitionById(String id){
+    	for(Partition p : this.getAllPartitions()){
+    		if(p.getId().equalsIgnoreCase(id))
+    			return p;
+    	}
+    	 return null;
+    }
     /**
      * Gets the value of the partition-groups.
      */

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/a754a642/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 61a1706..da18a41 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
@@ -23,7 +23,12 @@ 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.ClusterContext;
 import org.apache.stratos.autoscaler.Constants;
+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.cloud.controller.deployment.partition.Partition;
 
 import javax.jms.TextMessage;
 
@@ -41,6 +46,7 @@ public class HealthEventMessageDelegator implements Runnable {
 
     private static final Log log = LogFactory.getLog(HealthEventMessageDelegator.class);
     private String eventName;
+    private String clusterId;
     private Map<String, String> messageProperties;
     @Override
     public void run() {
@@ -53,6 +59,7 @@ public class HealthEventMessageDelegator implements Runnable {
 				String messageText = message.getText();
 
                 messageProperties = setEventValues(messageText);
+                this.clusterId = messageProperties.get("cluster_id");
                 log.info("Received event " + eventName);
 //                for (Service service :  TopologyManager.getTopology().getServices()){
 //
@@ -80,23 +87,23 @@ public class HealthEventMessageDelegator implements Runnable {
 //                        break;
 //                    }
 //                }
-                if(Constants.AVERAGE_REQUESTS_IN_FLIGHT.equals(eventName)){
-                	String clusterId = messageProperties.get("cluster_id");
+                if(Constants.AVERAGE_REQUESTS_IN_FLIGHT.equals(eventName)){                	
                 	Float messageValue = Float.parseFloat(messageProperties.get("value"));
                     AutoscalerContext.getInstance().getClusterContext(clusterId).setAverageRequestsInFlight(messageValue);
 
-                }  else if(Constants.GRADIENT_OF_REQUESTS_IN_FLIGHT.equals(eventName)){
-                	String clusterId = messageProperties.get("cluster_id");
+                }  else if(Constants.GRADIENT_OF_REQUESTS_IN_FLIGHT.equals(eventName)){                	
                 	Float messageValue = Float.parseFloat(messageProperties.get("value"));
                     AutoscalerContext.getInstance().getClusterContext(clusterId).setRequestsInFlightGradient(messageValue);
 
                 }  else if(Constants.SECOND_DERIVATIVE_OF_REQUESTS_IN_FLIGHT.equals(eventName)){
-                	String clusterId = messageProperties.get("cluster_id");
                 	Float messageValue = Float.parseFloat(messageProperties.get("value"));
                     AutoscalerContext.getInstance().getClusterContext(clusterId).setRequestsInFlightSecondDerivative(messageValue);
 
                 }else if ("member_fault".equals(eventName)){
-                	// member with 
+                	String memberId = messageProperties.get("member_id");
+                	if(memberId != null && !memberId.isEmpty())
+                		log.error("MemberId is not included in the received message");
+                	handleMemberfaultEvent(memberId);                	
                 }
                 
                 // clear the message properties after handling the message.
@@ -109,7 +116,26 @@ public class HealthEventMessageDelegator implements Runnable {
         }
     }
 
-    public Map<String, String> setEventValues(String json) {
+    private void handleMemberfaultEvent(String memberId) {
+		try {
+			// terminate the faulty member
+			CloudControllerClient ccClient = CloudControllerClient.getInstance();
+			ccClient.terminate(memberId);
+			
+			// start a new member in the same Partition
+			ClusterContext clsCtx = AutoscalerContext.getInstance().getClusterContext(clusterId);
+			String partitionId = clsCtx.getPartitonOfMember(memberId);
+			Partition partition = clsCtx.getDeploymentPolicy().getPartitionById(partitionId);
+			ccClient.spawnAnInstance(partition, clusterId);
+			
+		} catch (TerminationException e) {
+			log.error(e);
+		}catch(SpawningException e){
+			log.error(e);
+		}		
+	}
+
+	public Map<String, String> setEventValues(String json) {
     	
     	Map<String, String> properties = new HashMap<String, String>();
     	BufferedReader bufferedReader = new BufferedReader(new StringReader(json));

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/a754a642/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 9c91cf3..96fb3af 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
@@ -21,6 +21,7 @@ package org.apache.stratos.autoscaler.topology.processors;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.autoscaler.AutoscalerContext;
 import org.apache.stratos.autoscaler.ClusterContext;
 import org.apache.stratos.autoscaler.ClusterMonitor;
 import org.apache.stratos.autoscaler.exception.PartitionValidationException;
@@ -34,11 +35,14 @@ import org.apache.stratos.messaging.listener.topology.ClusterCreatedEventListene
 import org.apache.stratos.messaging.listener.topology.ClusterRemovedEventListener;
 import org.apache.stratos.messaging.listener.topology.CompleteTopologyEventListener;
 import org.apache.stratos.messaging.listener.topology.MemberActivatedEventListener;
+import org.apache.stratos.messaging.listener.topology.MemberStartedEventListener;
+import org.apache.stratos.messaging.listener.topology.MemberTerminatedEventListener;
 import org.apache.stratos.messaging.listener.topology.ServiceRemovedEventListener;
 import org.apache.stratos.messaging.event.topology.*;
 import org.apache.stratos.messaging.message.processor.topology.TopologyEventProcessorChain;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageDelegator;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.event.topology.MemberStartedEvent;
 
 import java.util.Collection;
 
@@ -139,6 +143,40 @@ 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();
+                    }
+            }
+
+        });
+        
+        processorChain.addEventListener(new MemberTerminatedEventListener() {
+            @Override
+            protected void onEvent(Event event) {
+             
+            	try {
+            		TopologyManager.acquireReadLock();
+					MemberTerminatedEvent e = (MemberTerminatedEvent) event;
+					ClusterContext clusCtx = AutoscalerContext.getInstance()
+							.getClusterContext(e.getClusterId());
+					clusCtx.removeMemberPartition(e.getMemberId());
+				} finally {
+					TopologyManager.releaseReadLock();
+				}
+            }
+
+        });
+        
         processorChain.addEventListener(new MemberActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -160,6 +198,7 @@ public class AutoscalerTopologyReceiver implements Runnable {
 //                }
             }
         });
+        
         processorChain.addEventListener(new ServiceRemovedEventListener() {
             @Override
             protected void onEvent(Event event) {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/a754a642/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberStartedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberStartedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberStartedEvent.java
index ce45e52..b2e2e61 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberStartedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberStartedEvent.java
@@ -33,6 +33,7 @@ public class MemberStartedEvent extends TopologyEvent implements Serializable {
     private String memberId;
     private MemberStatus status;
     private Properties properties;
+    private String partitionId;
 
     public MemberStartedEvent(String serviceName, String clusterId, String memberId) {
         this.serviceName = serviceName;
@@ -67,4 +68,18 @@ public class MemberStartedEvent extends TopologyEvent implements Serializable {
     public void setProperties(Properties properties) {
         this.properties = properties;
     }
+
+	/**
+	 * @return the partitionId
+	 */
+	public String getPartitionId() {
+		return partitionId;
+	}
+
+	/**
+	 * @param partitionId the partitionId to set
+	 */
+	public void setPartitionId(String partitionId) {
+		this.partitionId = partitionId;
+	}
 }


[3/6] git commit: Merge branch 'fault'

Posted by ud...@apache.org.
Merge branch 'fault'


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

Branch: refs/heads/master
Commit: b340348cd53c2db41195e8c1869c67389bce5790
Parents: 2d17586 0859610
Author: Udara Liyanage <ud...@wso2.com>
Authored: Mon Dec 2 15:10:49 2013 -0500
Committer: Udara Liyanage <ud...@wso2.com>
Committed: Mon Dec 2 15:10:49 2013 -0500

----------------------------------------------------------------------
 .../health/HealthEventMessageDelegator.java     | 82 ++++++++++----------
 1 file changed, 39 insertions(+), 43 deletions(-)
----------------------------------------------------------------------