modify arguments of Dispatcher.announce_update
- 'pname' argument is not needed - change 'modulename' argument to 'moduleobj' (needed for further change) Change-Id: Ib21f8ad06d9b2be4005ff3513088a85e29785c94 Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/32744 Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de> Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de> Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
@@ -348,7 +348,7 @@ class Module(HasAccessibles):
|
||||
self.attachedModules = {}
|
||||
self.errors = []
|
||||
self._isinitialized = False
|
||||
self.updateCallback = srv.dispatcher.announce_update
|
||||
self.updateCallback = srv.dispatcher.announce_update
|
||||
|
||||
# handle module properties
|
||||
# 1) make local copies of properties
|
||||
@@ -549,7 +549,7 @@ class Module(HasAccessibles):
|
||||
arg = value
|
||||
pobj.readerror = None
|
||||
if pobj.export:
|
||||
self.updateCallback(self.name, pname, pobj)
|
||||
self.updateCallback(self, pobj)
|
||||
cblist = callbacks[pname]
|
||||
for cb in cblist:
|
||||
try:
|
||||
|
||||
@@ -133,6 +133,9 @@ class Attached(Property):
|
||||
if not modulename:
|
||||
return None # happens when mandatory=False and modulename is not given
|
||||
modobj = obj.secNode.get_module(modulename)
|
||||
if not modobj:
|
||||
raise ConfigError(f'attached module {self.name}={modulename!r} '
|
||||
f'does not exist')
|
||||
if not isinstance(modobj, self.basecls):
|
||||
raise ConfigError(f'attached module {self.name}={modobj.name!r} '
|
||||
f'must inherit from {self.basecls.__qualname__!r}')
|
||||
|
||||
@@ -81,14 +81,14 @@ class Dispatcher(dispatcher.Dispatcher):
|
||||
super().__init__(name, log, options, srv)
|
||||
self.log = srv.log # overwrite child logger
|
||||
|
||||
def announce_update(self, modulename, pname, pobj):
|
||||
def announce_update(self, moduleobj, pobj):
|
||||
if pobj.readerror:
|
||||
value = repr(pobj.readerror)
|
||||
else:
|
||||
value = pobj.value
|
||||
logobj = self._modules.get(modulename, self)
|
||||
logobj = self._modules.get(moduleobj.name, self)
|
||||
# self.log.info('%s:%s %r', modulename, pname, value)
|
||||
logobj.log.info('%s %r', pname, value)
|
||||
logobj.log.info('%s %r', pobj.name, value)
|
||||
|
||||
def register_module(self, moduleobj, modulename, export=True):
|
||||
self.log.info('registering %s', modulename)
|
||||
|
||||
@@ -93,10 +93,10 @@ class Dispatcher:
|
||||
for conn in listeners:
|
||||
conn.send_reply(msg)
|
||||
|
||||
def announce_update(self, modulename, pname, pobj):
|
||||
def announce_update(self, moduleobj, pobj):
|
||||
"""called by modules param setters to notify subscribers of new values
|
||||
"""
|
||||
self.broadcast_event(make_update(modulename, pobj))
|
||||
self.broadcast_event(make_update(moduleobj.name, pobj))
|
||||
|
||||
def subscribe(self, conn, eventname):
|
||||
self._subscriptions.setdefault(eventname, set()).add(conn)
|
||||
|
||||
@@ -94,6 +94,7 @@ class SecNode:
|
||||
if modulename in list(self.modules.values()):
|
||||
# it's actually already the module object
|
||||
return modulename
|
||||
|
||||
# create module from srv.module_cfg, store and return
|
||||
self.log.debug('attempting to create module %r', modulename)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user