Implemented for the Python agent, the fix done on 5e41897

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

Branch: refs/heads/master
Commit: 535ea0cd9baf6111230ce0f99a92134e23cf83ab
Parents: 4139b16
Author: Chamila de Alwis <[email protected]>
Authored: Sat Oct 11 19:29:11 2014 +0530
Committer: Chamila de Alwis <[email protected]>
Committed: Sat Oct 11 19:29:11 2014 +0530

----------------------------------------------------------------------
 .../cartridge-agent/agent.py                    |  5 ++++
 .../config/cartridgeagentconfiguration.py       |  3 +++
 .../extensions/abstractextensionhandler.py      |  3 +++
 .../extensions/defaultextensionhandler.py       | 27 +++++++++++++++++++-
 4 files changed, 37 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/535ea0cd/tools/python-cartridge-agent/cartridge-agent/agent.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/agent.py 
b/tools/python-cartridge-agent/cartridge-agent/agent.py
index c2976a8..5a2337c 100644
--- a/tools/python-cartridge-agent/cartridge-agent/agent.py
+++ b/tools/python-cartridge-agent/cartridge-agent/agent.py
@@ -79,6 +79,11 @@ class CartridgeAgent(threading.Thread):
         #Start tenant event receiver thread
         self.register_tenant_event_listeners()
 
+        #wait for intance spawned event
+        while not self.cartridge_agent_config.initialized:
+            self.log.debug("Waiting for Cartridge Agent to be initialized...")
+            time.sleep(1)
+
         #Execute instance started shell script
         CartridgeAgent.extension_handler.on_instance_started_event()
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/535ea0cd/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.py
----------------------------------------------------------------------
diff --git 
a/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.py
 
b/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.py
index 6a0525e..15871ba 100644
--- 
a/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.py
+++ 
b/tools/python-cartridge-agent/cartridge-agent/modules/config/cartridgeagentconfiguration.py
@@ -97,6 +97,9 @@ class CartridgeAgentConfiguration:
             self.__read_conf_file()
             self.__read_parameter_file()
 
+            self.initialized = False
+            """ :type : bool """
+
             try:
                 self.service_group = 
self.payload_params[cartridgeagentconstants.SERVICE_GROUP] \
                     if cartridgeagentconstants.SERVICE_GROUP in 
self.payload_params \

http://git-wip-us.apache.org/repos/asf/stratos/blob/535ea0cd/tools/python-cartridge-agent/cartridge-agent/modules/extensions/abstractextensionhandler.py
----------------------------------------------------------------------
diff --git 
a/tools/python-cartridge-agent/cartridge-agent/modules/extensions/abstractextensionhandler.py
 
b/tools/python-cartridge-agent/cartridge-agent/modules/extensions/abstractextensionhandler.py
index 3202341..1f2df10 100644
--- 
a/tools/python-cartridge-agent/cartridge-agent/modules/extensions/abstractextensionhandler.py
+++ 
b/tools/python-cartridge-agent/cartridge-agent/modules/extensions/abstractextensionhandler.py
@@ -41,6 +41,9 @@ class AbstractExtensionHandler:
     def on_complete_topology_event(self, complete_topology_event):
         raise NotImplementedError
 
+    def on_instance_spawned_event(self, instance_spawned_event):
+        raise NotImplementedError
+
     def on_complete_tenant_event(self, complete_tenant_event):
         raise NotImplementedError
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/535ea0cd/tools/python-cartridge-agent/cartridge-agent/modules/extensions/defaultextensionhandler.py
----------------------------------------------------------------------
diff --git 
a/tools/python-cartridge-agent/cartridge-agent/modules/extensions/defaultextensionhandler.py
 
b/tools/python-cartridge-agent/cartridge-agent/modules/extensions/defaultextensionhandler.py
index 4c36e55..48ef81f 100644
--- 
a/tools/python-cartridge-agent/cartridge-agent/modules/extensions/defaultextensionhandler.py
+++ 
b/tools/python-cartridge-agent/cartridge-agent/modules/extensions/defaultextensionhandler.py
@@ -213,7 +213,15 @@ class DefaultExtensionHandler(AbstractExtensionHandler):
         cluster_id_in_payload = self.cartridge_agent_config.cluster_id
         member_id_in_payload = self.cartridge_agent_config.member_id
 
-        extensionutils.check_topology_consistency(service_name_in_payload, 
cluster_id_in_payload, member_id_in_payload)
+        consistant = extensionutils.check_topology_consistency(
+            service_name_in_payload,
+            cluster_id_in_payload,
+            member_id_in_payload)
+
+        if not consistant:
+            return
+        else:
+            self.cartridge_agent_config.initialized = True
 
         topology = complete_topology_event.get_topology()
         service = topology.get_service(service_name_in_payload)
@@ -223,6 +231,23 @@ class DefaultExtensionHandler(AbstractExtensionHandler):
 
         extensionutils.execute_complete_topology_extension(env_params)
 
+    def on_instance_spawned_event(self, instance_spawned_event):
+        self.log.debug("Instance Spawned event received")
+
+        service_name_in_payload = self.cartridge_agent_config.service_name
+        cluster_id_in_payload = self.cartridge_agent_config.cluster_id
+        member_id_in_payload = self.cartridge_agent_config.member_id
+
+        consistant = extensionutils.check_topology_consistency(
+            service_name_in_payload,
+            cluster_id_in_payload,
+            member_id_in_payload)
+
+        if not consistant:
+            return
+        else:
+            self.cartridge_agent_config.initialized = True
+
     def on_complete_tenant_event(self, complete_tenant_event):
         self.log.debug("Complete tenant event received")
 

Reply via email to