change to secop.client.ProxyClient.register_callback

the code for calling register_callback is more readable and more
explicit now

Change-Id: I7a6a236d7f50b1ad391c1d49e3fb48f2580aa875
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22564
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
2020-03-02 10:59:56 +01:00
parent 199ff0419a
commit 4ed8cf5901
4 changed files with 18 additions and 16 deletions

View File

@ -70,10 +70,9 @@ class SecopClient(secop.client.SecopClient):
self.updateEvent(*key, *self.cache[key])
def descriptiveDataChange(self, module, data):
print('CHANGE', self.nodename)
if module is None:
self.log.error('descriptive data for node %r has changed', self.nodename)
self.dispatcher.restart()
#if module is None:
# self.log.error('descriptive data for node %r has changed', self.nodename)
class Router(secop.protocol.dispatcher.Dispatcher):
@ -99,7 +98,7 @@ class Router(secop.protocol.dispatcher.Dispatcher):
self.nodes = [SecopClient(uri, logger.getChild('routed%d' % i), self) for i, uri in enumerate(uris)]
# register callbacks
for node in self.nodes:
node.register(None, node)
node.register_callback(None, node.updateEvent, node.descriptiveDataChange, node.nodeStateChange)
self.node_by_module = {}
multievent = MultiEvent()
for node in self.nodes:
@ -113,7 +112,7 @@ class Router(secop.protocol.dispatcher.Dispatcher):
nodes.append(node)
else:
def check_new_node(online, state, self=self, node=node):
def nodeStateChange(online, state, self=self, node=node):
if online:
for module in node.modules:
self.node_by_module[module] = node
@ -122,7 +121,7 @@ class Router(secop.protocol.dispatcher.Dispatcher):
return secop.client.UNREGISTER
return None
node.register(None, nodeStateChange=check_new_node)
node.register_callback(None, nodeStateChange)
logger.warning('can not connect to node %r', node.nodename)
def handle_describe(self, conn, specifier, data):