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