fix envlist calculation

+ fix pathed loggers mechanism
This commit is contained in:
2024-05-29 14:55:49 +02:00
parent 0776b7575f
commit 6e4c53c881

View File

@ -172,7 +172,8 @@ class FrappyConfig(Device):
if not busy and self._back_to_normal: if not busy and self._back_to_normal:
session.log.info(' %s', 75*'_') session.log.info(' %s', 75*'_')
session.log.info(' ') session.log.info(' ')
session.log.info(all_info(self._current_cfgs, ' servers match configuration: ')) session.log.info(' sample environment servers match configuration:')
session.log.info(all_info(self._current_cfgs, ' '))
session.log.info(' %s', 75*'_') session.log.info(' %s', 75*'_')
self._back_to_normal = None self._back_to_normal = None
cnt = 0 cnt = 0
@ -328,7 +329,7 @@ class FrappyConfig(Device):
cleanup_defunct() cleanup_defunct()
CreateAllDevices() CreateAllDevices()
for service, secnode in secnodes.items(): for service, secnode in secnodes.items():
if services.get(service): if services.get(service) and secnode:
secnode._secnode.connect() secnode._secnode.connect()
self.set_envalias() self.set_envalias()
for secnode in remove_cfg: for secnode in remove_cfg:
@ -573,11 +574,11 @@ class FrappyConfig(Device):
else: else:
needed_aliases[aliasname] = None needed_aliases[aliasname] = None
# build new env list # build new env list. keep order as before
prevenv = session.experiment.envlist addedenv = [v for v in newenv.values()]
addedenv = [v for v in newenv.values() if v not in to_remove]
to_remove = to_remove.difference(addedenv) to_remove = to_remove.difference(addedenv)
envlist = [k for k in prevenv if k not in to_remove] + addedenv prevenv = [k for k in session.experiment.envlist if k not in to_remove]
envlist = prevenv + [k for k in addedenv if k not in prevenv]
if set(envlist) == set(prevenv): if set(envlist) == set(prevenv):
envlist = None envlist = None
@ -705,7 +706,6 @@ class FrappyNode(SecNodeDevice, Moveable):
return self._cfgvalue or '' return self._cfgvalue or ''
def createDevices(self): def createDevices(self):
cfg = self.read()
super().createDevices() super().createDevices()
if self.param_category: if self.param_category:
for devname, (_, devcfg) in self.setup_info.items(): for devname, (_, devcfg) in self.setup_info.items():
@ -717,13 +717,13 @@ class FrappyNode(SecNodeDevice, Moveable):
pinfo.category = self.param_category pinfo.category = self.param_category
def makeDynamicDevices(self, setup_info): def makeDynamicDevices(self, setup_info):
patched_loggers = [] patched_loggers = {}
if self.quiet_init: if self.quiet_init:
for devname, (_, devcfg) in setup_info.items(): for devname, (_, devcfg) in setup_info.items():
log = session.getLogger(devname) log = session.getLogger(devname)
if log not in patched_loggers: if log not in patched_loggers:
result = [loggers.INFO] # default level result = [loggers.INFO] # default level
patched_loggers.append((log, result)) patched_loggers[log] = result
log.setLevel(loggers.ERROR) log.setLevel(loggers.ERROR)
# avoid level change when the loglevel parameter is treated # avoid level change when the loglevel parameter is treated
# store level instead in result # store level instead in result
@ -731,7 +731,7 @@ class FrappyNode(SecNodeDevice, Moveable):
try: try:
super().makeDynamicDevices(setup_info) super().makeDynamicDevices(setup_info)
finally: finally:
for log, result in patched_loggers: for log, result in patched_loggers.items():
log.__dict__.pop('setLevel', None) # re-enable setLevel log.__dict__.pop('setLevel', None) # re-enable setLevel
log.setLevel(result[-1]) # set to stored or default value log.setLevel(result[-1]) # set to stored or default value