You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2015/03/01 19:35:28 UTC

[07/50] [abbrv] stratos git commit: PCA - Check ports activity when publishing instance activated event. If ports activation times out, no InstanceActivatedEvent is published

PCA - Check ports activity when publishing instance activated event. If ports activation times out, no InstanceActivatedEvent is published


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

Branch: refs/heads/docker-grouping-merge
Commit: a4fc8ef232e6e94ca314c10c33fa6c15334913a0
Parents: 6d408dd
Author: Chamila de Alwis <ch...@wso2.com>
Authored: Fri Feb 27 00:31:59 2015 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Fri Feb 27 19:42:44 2015 +0530

----------------------------------------------------------------------
 .../publisher/CartridgeAgentEventPublisher.java |  4 +-
 .../cartridge.agent/cartridge.agent/agent.py    |  7 --
 .../publisher/cartridgeagentpublisher.py        | 77 ++++++++++++--------
 .../modules/util/cartridgeagentutils.py         |  4 +-
 4 files changed, 50 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/a4fc8ef2/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/event/publisher/CartridgeAgentEventPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/event/publisher/CartridgeAgentEventPublisher.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/event/publisher/CartridgeAgentEventPublisher.java
index 9a4e0c2..c3b3f14 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/event/publisher/CartridgeAgentEventPublisher.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/event/publisher/CartridgeAgentEventPublisher.java
@@ -149,8 +149,8 @@ public class CartridgeAgentEventPublisher {
 					for (Integer port: ports){
 						portsStr += port + ", ";
 					}
-					log.info(String.format(
-							"Ports activation timed out. Aborting InstanceActivatedEvent publishing. [IPAdress] %s [Ports] %s",
+					log.error(String.format(
+							"Ports activation timed out. Aborting InstanceActivatedEvent publishing. [IPAddress] %s [Ports] %s",
 							listenAddress,
 							portsStr));
 				}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a4fc8ef2/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.py
index 4d09b78..1efb0c6 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.py
@@ -88,13 +88,6 @@ class CartridgeAgent(threading.Thread):
         except Exception as e:
             self.__log.exception("Error processing start servers event: %s" % e)
 
-        # Wait for all ports to be active
-        cartridgeagentutils.wait_until_ports_active(
-            self.__config.listen_address,
-            self.__config.ports,
-            int(self.__config.read_property("port.check.timeout", critical=False))
-        )
-
         # check if artifact management is required before publishing instance activated event
         repo_url = self.__config.repo_url
         if repo_url is None or str(repo_url).strip() == "":

http://git-wip-us.apache.org/repos/asf/stratos/blob/a4fc8ef2/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/publisher/cartridgeagentpublisher.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/publisher/cartridgeagentpublisher.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/publisher/cartridgeagentpublisher.py
index 875332a..aea0e58 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/publisher/cartridgeagentpublisher.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/publisher/cartridgeagentpublisher.py
@@ -61,44 +61,57 @@ def publish_instance_started_event():
 def publish_instance_activated_event():
     global activated, log
     if not activated:
+        # Wait for all ports to be active
+
+        listen_address = CartridgeAgentConfiguration().listen_address
+        configuration__ports = CartridgeAgentConfiguration().ports
+        ports_active = cartridgeagentutils.wait_until_ports_active(
+            listen_address,
+            configuration__ports,
+            int(CartridgeAgentConfiguration().read_property("port.check.timeout", critical=False))
+        )
         log.info("Publishing instance activated event")
 
-        service_name = CartridgeAgentConfiguration().service_name
-        cluster_id = CartridgeAgentConfiguration().cluster_id
-        member_id = CartridgeAgentConfiguration().member_id
-        instance_id = CartridgeAgentConfiguration().instance_id
-        cluster_instance_id = CartridgeAgentConfiguration().cluster_instance_id
-        network_partition_id = CartridgeAgentConfiguration().network_partition_id
-        partition_id = CartridgeAgentConfiguration().partition_id
-
-        instance_activated_event = InstanceActivatedEvent(service_name, cluster_id, cluster_instance_id, member_id,
-                                                          instance_id, network_partition_id, partition_id)
-
-        publisher = get_publisher(constants.INSTANCE_STATUS_TOPIC + constants.INSTANCE_ACTIVATED_EVENT)
-        publisher.publish(instance_activated_event)
-
-        log.info("Instance activated event published")
-        log.info("Starting health statistics notifier")
-
-        if CEPPublisherConfiguration.get_instance().enabled:
-            interval_default = 15  # seconds
-            interval = CartridgeAgentConfiguration().read_property("stats.notifier.interval", False)
-            if interval is not None and len(interval) > 0:
-                try:
-                    interval = int(interval)
-                except ValueError:
+        if ports_active:
+            service_name = CartridgeAgentConfiguration().service_name
+            cluster_id = CartridgeAgentConfiguration().cluster_id
+            member_id = CartridgeAgentConfiguration().member_id
+            instance_id = CartridgeAgentConfiguration().instance_id
+            cluster_instance_id = CartridgeAgentConfiguration().cluster_instance_id
+            network_partition_id = CartridgeAgentConfiguration().network_partition_id
+            partition_id = CartridgeAgentConfiguration().partition_id
+
+            instance_activated_event = InstanceActivatedEvent(service_name, cluster_id, cluster_instance_id, member_id,
+                                                              instance_id, network_partition_id, partition_id)
+
+            publisher = get_publisher(constants.INSTANCE_STATUS_TOPIC + constants.INSTANCE_ACTIVATED_EVENT)
+            publisher.publish(instance_activated_event)
+
+            log.info("Instance activated event published")
+            log.info("Starting health statistics notifier")
+
+            if CEPPublisherConfiguration.get_instance().enabled:
+                interval_default = 15  # seconds
+                interval = CartridgeAgentConfiguration().read_property("stats.notifier.interval", False)
+                if interval is not None and len(interval) > 0:
+                    try:
+                        interval = int(interval)
+                    except ValueError:
+                        interval = interval_default
+                else:
                     interval = interval_default
+
+                health_stats_publisher = HealthStatisticsPublisherManager(interval)
+                log.info("Starting Health statistics publisher with interval %r" % interval)
+                health_stats_publisher.start()
             else:
-                interval = interval_default
+                log.warn("Statistics publisher is disabled")
 
-            health_stats_publisher = HealthStatisticsPublisherManager(interval)
-            log.info("Starting Health statistics publisher with interval %r" % interval)
-            health_stats_publisher.start()
+            activated = True
+            log.info("Health statistics notifier started")
         else:
-            log.warn("Statistics publisher is disabled")
-
-        activated = True
-        log.info("Health statistics notifier started")
+            log.error("Ports activation timed out. Aborting InstanceActivatedEvent publishing. [IPAddress] %s [Ports] %s"
+                      % (listen_address, configuration__ports))
     else:
         log.warn("Instance already activated")
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/a4fc8ef2/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py
index f8a4078..0f825bf 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py
@@ -84,10 +84,12 @@ def wait_until_ports_active(ip_address, ports, ports_check_timeout=600000):
 
         if duration > ports_check_timeout:
             log.info("Port check timeout reached: [ip] %r [ports] %r [timeout] %r" % (ip_address, ports, ports_check_timeout))
-            return
+            return False
 
         time.sleep(5)
+
     log.info("Ports activated: [ip] %r [ports] %r" % (ip_address, ports))
+    return True
 
 
 def check_ports_active(ip_address, ports):