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(-)
----------------------------------------------------------------------