issue #155: parent: propagate context name too.
This allows context_by_id() in the master to succeed in returning a Context with a .name matching the context's name, needed for correct logging. Previously this would have logged the empty string, because the master had no mechanism to know the name of a context created by a child.
This commit is contained in:
parent
5579ac936b
commit
1155de85af
|
@ -540,15 +540,20 @@ class RouteMonitor(object):
|
|||
persist=True,
|
||||
)
|
||||
|
||||
def propagate(self, handle, target_id):
|
||||
def propagate(self, handle, target_id, name=None):
|
||||
# self.parent is None in the master.
|
||||
if self.parent:
|
||||
self.parent.send(
|
||||
mitogen.core.Message(
|
||||
handle=handle,
|
||||
data=str(target_id),
|
||||
)
|
||||
if not self.parent:
|
||||
return
|
||||
|
||||
data = str(target_id)
|
||||
if name:
|
||||
data = '%s:%s' % (target_id, name)
|
||||
self.parent.send(
|
||||
mitogen.core.Message(
|
||||
handle=handle,
|
||||
data=data,
|
||||
)
|
||||
)
|
||||
|
||||
def notice_stream(self, stream):
|
||||
"""
|
||||
|
@ -556,7 +561,7 @@ class RouteMonitor(object):
|
|||
stream, we're also responsible for broadcasting DEL_ROUTE upstream
|
||||
if/when that child disconnects.
|
||||
"""
|
||||
self.propagate(mitogen.core.ADD_ROUTE, stream.remote_id)
|
||||
self.propagate(mitogen.core.ADD_ROUTE, stream.remote_id, stream.name)
|
||||
mitogen.core.listen(
|
||||
obj=stream,
|
||||
name='disconnect',
|
||||
|
@ -581,7 +586,9 @@ class RouteMonitor(object):
|
|||
if msg == mitogen.core._DEAD:
|
||||
return
|
||||
|
||||
target_id = int(msg.data)
|
||||
target_id_s, _, target_name = msg.data.partition(':')
|
||||
target_id = int(target_id_s)
|
||||
self.router.context_by_id(target_id).name = target_name
|
||||
stream = self.router.stream_by_id(msg.auth_id)
|
||||
current = self.router.stream_by_id(target_id)
|
||||
if current and current.remote_id != mitogen.parent_id:
|
||||
|
@ -593,7 +600,7 @@ class RouteMonitor(object):
|
|||
LOG.debug('Adding route to %d via %r', target_id, stream)
|
||||
stream.routes.add(target_id)
|
||||
self.router.add_route(target_id, stream)
|
||||
self.propagate(mitogen.core.ADD_ROUTE, target_id)
|
||||
self.propagate(mitogen.core.ADD_ROUTE, target_id, target_name)
|
||||
|
||||
def _on_del_route(self, msg):
|
||||
if msg == mitogen.core._DEAD:
|
||||
|
|
Loading…
Reference in New Issue