You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2013/12/18 17:40:19 UTC
[1/2] git commit: Added logic to wait until ports active before
sending the instance activated event in cartridge agent
Updated Branches:
refs/heads/master af57d4824 -> 8ee2fb1f1
Added logic to wait until ports active before sending the instance activated event in cartridge agent
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/dfd9743e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/dfd9743e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/dfd9743e
Branch: refs/heads/master
Commit: dfd9743e65d8e8f82ba2a4e4a99823b662622ec6
Parents: 94a940d
Author: Imesh Gunaratne <im...@apache.org>
Authored: Wed Dec 18 22:09:56 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Wed Dec 18 22:09:56 2013 +0530
----------------------------------------------------------------------
.../subscriber/CartridgeAgentConstants.java | 1 +
.../cartridge/agent/event/subscriber/Main.java | 165 +++++++++++++------
2 files changed, 116 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dfd9743e/products/cartridge-agent/modules/event-subscriber/src/main/java/org/apache/stratos/cartridge/agent/event/subscriber/CartridgeAgentConstants.java
----------------------------------------------------------------------
diff --git a/products/cartridge-agent/modules/event-subscriber/src/main/java/org/apache/stratos/cartridge/agent/event/subscriber/CartridgeAgentConstants.java b/products/cartridge-agent/modules/event-subscriber/src/main/java/org/apache/stratos/cartridge/agent/event/subscriber/CartridgeAgentConstants.java
index 610ddcf..383fcc7 100644
--- a/products/cartridge-agent/modules/event-subscriber/src/main/java/org/apache/stratos/cartridge/agent/event/subscriber/CartridgeAgentConstants.java
+++ b/products/cartridge-agent/modules/event-subscriber/src/main/java/org/apache/stratos/cartridge/agent/event/subscriber/CartridgeAgentConstants.java
@@ -33,4 +33,5 @@ public class CartridgeAgentConstants implements Serializable{
public static final String NETWORK_PARTITION_ID = "NETWORK_PARTITION_ID";
public static final String PARTITION_ID = "PARTITION_ID";
public static final String MEMBER_ID = "MEMBER_ID";
+ public static final String PORTS = "PORTS";
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dfd9743e/products/cartridge-agent/modules/event-subscriber/src/main/java/org/apache/stratos/cartridge/agent/event/subscriber/Main.java
----------------------------------------------------------------------
diff --git a/products/cartridge-agent/modules/event-subscriber/src/main/java/org/apache/stratos/cartridge/agent/event/subscriber/Main.java b/products/cartridge-agent/modules/event-subscriber/src/main/java/org/apache/stratos/cartridge/agent/event/subscriber/Main.java
index 188e77b..2914eec 100644
--- a/products/cartridge-agent/modules/event-subscriber/src/main/java/org/apache/stratos/cartridge/agent/event/subscriber/Main.java
+++ b/products/cartridge-agent/modules/event-subscriber/src/main/java/org/apache/stratos/cartridge/agent/event/subscriber/Main.java
@@ -19,10 +19,15 @@
package org.apache.stratos.cartridge.agent.event.subscriber;
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.SocketAddress;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.messaging.broker.publish.EventPublisher;
@@ -35,68 +40,128 @@ import org.apache.stratos.messaging.util.Constants;
* Event publisher main class.
*/
public class Main {
-
- private static final Log log = LogFactory.getLog(Main.class);
+
+ private static final Log log = LogFactory.getLog(Main.class);
public static void main(String[] args) {
-
- log.info("Strating cartridge agent event subscriber");
-
- System.setProperty(CartridgeAgentConstants.JNDI_PROPERTIES_DIR, args[0]);
- System.setProperty(CartridgeAgentConstants.PARAM_FILE_PATH, args[1]);
-
+
+ log.info("Strating cartridge agent event subscriber");
+
+ System.setProperty(CartridgeAgentConstants.JNDI_PROPERTIES_DIR, args[0]);
+ System.setProperty(CartridgeAgentConstants.PARAM_FILE_PATH, args[1]);
+
//initialting the subscriber
TopicSubscriber subscriber = new TopicSubscriber(Constants.ARTIFACT_SYNCHRONIZATION_TOPIC);
subscriber.setMessageListener(new ArtifactListener());
Thread tsubscriber = new Thread(subscriber);
- tsubscriber.start();
-
- //
- try {
- Thread.sleep(10000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
-
- log.info("Sending member started event");
- // Send member activated event
- InstanceStartedEvent event = new InstanceStartedEvent(
+ tsubscriber.start();
+
+ //
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ log.info("Sending member started event");
+ // Send member activated event
+ InstanceStartedEvent event = new InstanceStartedEvent(
LaunchParamsUtil.readParamValueFromPayload(CartridgeAgentConstants.SERVICE_NAME),
LaunchParamsUtil.readParamValueFromPayload(CartridgeAgentConstants.CLUSTER_ID),
LaunchParamsUtil.readParamValueFromPayload(CartridgeAgentConstants.NETWORK_PARTITION_ID),
LaunchParamsUtil.readParamValueFromPayload(CartridgeAgentConstants.PARTITION_ID),
LaunchParamsUtil.readParamValueFromPayload(CartridgeAgentConstants.MEMBER_ID));
EventPublisher publisher = new EventPublisher(Constants.INSTANCE_STATUS_TOPIC);
- publisher.publish(event);
- log.info("Member started event is sent");
-
- String repoURL = LaunchParamsUtil
- .readParamValueFromPayload("GIT_REPO");
-
- if ("null".equals(repoURL) || repoURL == null) {
- log.info(" No git repo for this cartridge ");
- InstanceActivatedEvent instanceActivatedEvent = new InstanceActivatedEvent(
- LaunchParamsUtil
- .readParamValueFromPayload(CartridgeAgentConstants.SERVICE_NAME),
- LaunchParamsUtil
- .readParamValueFromPayload(CartridgeAgentConstants.CLUSTER_ID),
- LaunchParamsUtil
- .readParamValueFromPayload(CartridgeAgentConstants.NETWORK_PARTITION_ID),
- LaunchParamsUtil
- .readParamValueFromPayload(CartridgeAgentConstants.PARTITION_ID),
- LaunchParamsUtil
- .readParamValueFromPayload(CartridgeAgentConstants.MEMBER_ID));
- EventPublisher instanceStatusPublisher = new EventPublisher(
- Constants.INSTANCE_STATUS_TOPIC);
- instanceStatusPublisher.publish(instanceActivatedEvent);
- log.info(" Instance status published. No git repo ");
- }
-
- // Start periodical file checker task
- // TODO -- start this thread only if this node configured as a commit true node
- ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
+ publisher.publish(event);
+ log.info("Member started event is sent");
+
+ String repoURL = LaunchParamsUtil
+ .readParamValueFromPayload("GIT_REPO");
+
+ if ("null".equals(repoURL) || repoURL == null) {
+ log.info(" No git repo for this cartridge");
+ waitForPortsTobeActive();
+ InstanceActivatedEvent instanceActivatedEvent = new InstanceActivatedEvent(
+ LaunchParamsUtil
+ .readParamValueFromPayload(CartridgeAgentConstants.SERVICE_NAME),
+ LaunchParamsUtil
+ .readParamValueFromPayload(CartridgeAgentConstants.CLUSTER_ID),
+ LaunchParamsUtil
+ .readParamValueFromPayload(CartridgeAgentConstants.NETWORK_PARTITION_ID),
+ LaunchParamsUtil
+ .readParamValueFromPayload(CartridgeAgentConstants.PARTITION_ID),
+ LaunchParamsUtil
+ .readParamValueFromPayload(CartridgeAgentConstants.MEMBER_ID));
+ EventPublisher instanceStatusPublisher = new EventPublisher(
+ Constants.INSTANCE_STATUS_TOPIC);
+ instanceStatusPublisher.publish(instanceActivatedEvent);
+ log.info(" Instance status published. No git repo ");
+ }
+
+ // Start periodical file checker task
+ // TODO -- start this thread only if this node configured as a commit true node
+ ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.scheduleWithFixedDelay(new RepositoryFileListener(), 0, 10, TimeUnit.SECONDS);
-
+
}
-
+
+ private static void waitForPortsTobeActive() {
+ long portCheckTimeOut = 1000 * 60 * 10;
+ String portCheckTimeOutStr = System.getProperty("port.check.timeout");
+ if (StringUtils.isNotBlank(portCheckTimeOutStr)) {
+ portCheckTimeOut = Integer.parseInt(portCheckTimeOutStr);
+ }
+ if (log.isInfoEnabled()) {
+ log.info("Port check timeout: " + portCheckTimeOut);
+ }
+
+ String ports = LaunchParamsUtil.readParamValueFromPayload(CartridgeAgentConstants.PORTS);
+ if (StringUtils.isBlank(ports)) {
+ throw new RuntimeException("No ports found");
+ }
+ String[] portsArray = ports.split(",");
+
+ long startTime = System.currentTimeMillis();
+ boolean active = false;
+ while (!active) {
+ for (String port : portsArray) {
+ Socket socket = null;
+ try {
+ if (log.isInfoEnabled()) {
+ log.info("Checking port " + port);
+ }
+ SocketAddress httpSockaddr = new InetSocketAddress("localhost", Integer.parseInt(port));
+ socket = new Socket();
+ socket.connect(httpSockaddr, 5000);
+ active = true;
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Port %s is active", port));
+ }
+ } catch (Exception e) {
+ active = false;
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Port %s is not active", port));
+ }
+ break;
+ } finally {
+ if (socket != null) {
+ try {
+ socket.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+ }
+ long endTime = System.currentTimeMillis();
+ long duration = endTime - startTime;
+ if (duration > portCheckTimeOut) {
+ return;
+ }
+ try {
+ Thread.sleep(5000);
+ } catch (InterruptedException e) {
+ }
+ }
+ }
+
}
[2/2] git commit: Merge remote-tracking branch 'origin/master'
Posted by im...@apache.org.
Merge remote-tracking branch 'origin/master'
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/8ee2fb1f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/8ee2fb1f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/8ee2fb1f
Branch: refs/heads/master
Commit: 8ee2fb1f135d06191e0fd10bb273af53789782c3
Parents: dfd9743 af57d48
Author: Imesh Gunaratne <im...@apache.org>
Authored: Wed Dec 18 22:10:12 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Wed Dec 18 22:10:12 2013 +0530
----------------------------------------------------------------------
.../adc/mgt/listener/InstanceStatusListener.java | 19 +++++++++++++------
.../java/org/apache/stratos/cli/RestClient.java | 7 +++++++
.../stratos/cli/RestCommandLineService.java | 11 +++++++++--
.../extension/FaultHandlingWindowProcessor.java | 4 +++-
4 files changed, 32 insertions(+), 9 deletions(-)
----------------------------------------------------------------------