- To distinguish synchronous request or not. - Event src is needed for asynchronous request too.
Signed-off-by: YAMADA Hideki <yamada.hid...@po.ntts.co.jp> --- ryu/base/app_manager.py | 7 ++++++- ryu/controller/event.py | 6 ++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ryu/base/app_manager.py b/ryu/base/app_manager.py index a3abc85..f09ea4a 100644 --- a/ryu/base/app_manager.py +++ b/ryu/base/app_manager.py @@ -24,6 +24,7 @@ from gevent.queue import Queue from ryu import utils from ryu.controller.handler import register_instance from ryu.controller.controller import Datapath +from ryu.controller.event import EventRequestBase, EventReplyBase LOG = logging.getLogger('ryu.base.app_manager') @@ -87,10 +88,12 @@ class RyuApp(object): return observers def send_reply(self, rep): + assert isinstance(rep, EventReplyBase) SERVICE_BRICKS[rep.dst].replies.put(rep) def send_request(self, req): - req.src = self.name + assert isinstance(req, EventRequestBase) + req.sync = True self.send_event(req.dst, req) # going to sleep for the reply return self.replies.get() @@ -107,6 +110,8 @@ class RyuApp(object): def send_event(self, name, ev): if name in SERVICE_BRICKS: + if isinstance(ev, EventRequestBase): + ev.src = self.name LOG.debug("EVENT %s->%s %s" % (self.name, name, ev.__class__.__name__)) SERVICE_BRICKS[name]._send_event(ev) diff --git a/ryu/controller/event.py b/ryu/controller/event.py index 4d583d9..8191710 100644 --- a/ryu/controller/event.py +++ b/ryu/controller/event.py @@ -21,9 +21,11 @@ class EventBase(object): class EventRequestBase(EventBase): - def __init__(self, dst): + def __init__(self): super(EventRequestBase, self).__init__() - self.dst = dst + self.dst = None # app.name of provide the event. + self.src = None + self.sync = False class EventReplyBase(EventBase): -- 1.7.9.5 ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar _______________________________________________ Ryu-devel mailing list Ryu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel