From 10d7ebdf5226b74c54850d205a807cc650843efe Mon Sep 17 00:00:00 2001 From: drebs Date: Fri, 26 Jun 2015 14:45:19 -0300 Subject: [bug] run callback from thread in events client --- src/leap/common/events/txclient.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/leap/common/events/txclient.py') diff --git a/src/leap/common/events/txclient.py b/src/leap/common/events/txclient.py index 8206ed5..0dcfc08 100644 --- a/src/leap/common/events/txclient.py +++ b/src/leap/common/events/txclient.py @@ -112,6 +112,19 @@ class EventsTxClient(TxZmqClientComponent, EventsClient): """ self._push.send(data) + def _run_callback(self, callback, event, content): + """ + Run a callback. + + :param callback: The callback to be run. + :type callback: callable(event, *content) + :param event: The event to be sent. + :type event: Event + :param content: The content of the event. + :type content: list + """ + callback(event, *content) + def shutdown(self): TxZmqClientComponent.shutdown(self) EventsClient.shutdown(self) -- cgit v1.2.3 From 467b14fa2e29ecd6f41d4834b00593d8c86cddc5 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Mon, 13 Jul 2015 11:48:47 -0400 Subject: [feature] add global flag for disabling the events framework this will be used to allow the unittests to disable the events framework. this way, emit() will become a passthrough. note that, until now, the basetest class is making use of the threaded version of the client, which launches a zmq tornado-based ioloop. this is wrong, and will have to be addressed in a future commit. we'll have to make use of the global EVENTS_ENABLED flag in the txclient version when those changes are made. Related: #7259 Relases: 0.4.2 --- src/leap/common/events/txclient.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'src/leap/common/events/txclient.py') diff --git a/src/leap/common/events/txclient.py b/src/leap/common/events/txclient.py index 0dcfc08..dfd0533 100644 --- a/src/leap/common/events/txclient.py +++ b/src/leap/common/events/txclient.py @@ -14,8 +14,6 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . - - """ The client end point of the events mechanism, implemented using txzmq. @@ -27,8 +25,6 @@ When a client registers a callback for a given event, it also tells the server that it wants to be notified whenever events of that type are sent by some other client. """ - - import logging import pickle @@ -62,7 +58,7 @@ class EventsTxClient(TxZmqClientComponent, EventsClient): """ def __init__(self, emit_addr=EMIT_ADDR, reg_addr=REG_ADDR, - path_prefix=None): + path_prefix=None): """ Initialize the events server. """ -- cgit v1.2.3 From d4e4d3dc8ff88d98477e1fcd1104d7cd8b9e6612 Mon Sep 17 00:00:00 2001 From: Folker Bernitt Date: Wed, 16 Sep 2015 11:21:01 +0200 Subject: [tests] Make txclient honor flags.EVENTS_ENABLED - Breaks tests in dependent repos like soledad otherwise, because server.key could not be found --- src/leap/common/events/txclient.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/leap/common/events/txclient.py') diff --git a/src/leap/common/events/txclient.py b/src/leap/common/events/txclient.py index dfd0533..be4b3ef 100644 --- a/src/leap/common/events/txclient.py +++ b/src/leap/common/events/txclient.py @@ -35,7 +35,7 @@ from leap.common.events.client import EventsClient from leap.common.events.client import configure_client from leap.common.events.server import EMIT_ADDR from leap.common.events.server import REG_ADDR -from leap.common.events import catalog +from leap.common.events import catalog, flags logger = logging.getLogger(__name__) @@ -146,8 +146,9 @@ def register(event, callback, uid=None, replace=False): :raises CallbackAlreadyRegisteredError: when there's already a callback identified by the given uid and replace is False. """ - return EventsTxClient.instance().register( - event, callback, uid=uid, replace=replace) + if flags.EVENTS_ENABLED: + return EventsTxClient.instance().register( + event, callback, uid=uid, replace=replace) def unregister(event, uid=None): @@ -162,7 +163,8 @@ def unregister(event, uid=None): :param uid: The callback uid. :type uid: str """ - return EventsTxClient.instance().unregister(event, uid=uid) + if flags.EVENTS_ENABLED: + return EventsTxClient.instance().unregister(event, uid=uid) def emit(event, *content): @@ -174,7 +176,8 @@ def emit(event, *content): :param content: The content of the event. :type content: list """ - return EventsTxClient.instance().emit(event, *content) + if flags.EVENTS_ENABLED: + return EventsTxClient.instance().emit(event, *content) def shutdown(): -- cgit v1.2.3 From 967763e8d0cc5f70f0760994d87500e30ad724a7 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 16 Sep 2015 12:20:22 -0400 Subject: [refactor] move checking flag to main module --- src/leap/common/events/txclient.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'src/leap/common/events/txclient.py') diff --git a/src/leap/common/events/txclient.py b/src/leap/common/events/txclient.py index be4b3ef..f3c183e 100644 --- a/src/leap/common/events/txclient.py +++ b/src/leap/common/events/txclient.py @@ -146,9 +146,8 @@ def register(event, callback, uid=None, replace=False): :raises CallbackAlreadyRegisteredError: when there's already a callback identified by the given uid and replace is False. """ - if flags.EVENTS_ENABLED: - return EventsTxClient.instance().register( - event, callback, uid=uid, replace=replace) + return EventsTxClient.instance().register( + event, callback, uid=uid, replace=replace) def unregister(event, uid=None): @@ -163,8 +162,7 @@ def unregister(event, uid=None): :param uid: The callback uid. :type uid: str """ - if flags.EVENTS_ENABLED: - return EventsTxClient.instance().unregister(event, uid=uid) + return EventsTxClient.instance().unregister(event, uid=uid) def emit(event, *content): @@ -176,8 +174,7 @@ def emit(event, *content): :param content: The content of the event. :type content: list """ - if flags.EVENTS_ENABLED: - return EventsTxClient.instance().emit(event, *content) + return EventsTxClient.instance().emit(event, *content) def shutdown(): -- cgit v1.2.3 From 459024de9e36aea0813aa01a570b68db7e9c1a26 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Tue, 6 Oct 2015 14:41:18 -0300 Subject: [bug] consider STANDALONE for the paths Since we need to write a file we have to consider whether we are running in 'standalone' mode or not to use the right path prefix. - Related: #7512 --- src/leap/common/events/txclient.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/leap/common/events/txclient.py') diff --git a/src/leap/common/events/txclient.py b/src/leap/common/events/txclient.py index f3c183e..dfd0533 100644 --- a/src/leap/common/events/txclient.py +++ b/src/leap/common/events/txclient.py @@ -35,7 +35,7 @@ from leap.common.events.client import EventsClient from leap.common.events.client import configure_client from leap.common.events.server import EMIT_ADDR from leap.common.events.server import REG_ADDR -from leap.common.events import catalog, flags +from leap.common.events import catalog logger = logging.getLogger(__name__) -- cgit v1.2.3