From 6e4c53c88120e491f7be964aff4d32372738bf6c Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Wed, 29 May 2024 14:55:49 +0200 Subject: [PATCH] fix envlist calculation + fix pathed loggers mechanism --- devices.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/devices.py b/devices.py index e31aac4..aba3d4d 100644 --- a/devices.py +++ b/devices.py @@ -172,7 +172,8 @@ class FrappyConfig(Device): if not busy and self._back_to_normal: session.log.info(' %s', 75*'_') 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*'_') self._back_to_normal = None cnt = 0 @@ -328,7 +329,7 @@ class FrappyConfig(Device): cleanup_defunct() CreateAllDevices() for service, secnode in secnodes.items(): - if services.get(service): + if services.get(service) and secnode: secnode._secnode.connect() self.set_envalias() for secnode in remove_cfg: @@ -573,11 +574,11 @@ class FrappyConfig(Device): else: needed_aliases[aliasname] = None - # build new env list - prevenv = session.experiment.envlist - addedenv = [v for v in newenv.values() if v not in to_remove] + # build new env list. keep order as before + addedenv = [v for v in newenv.values()] 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): envlist = None @@ -705,7 +706,6 @@ class FrappyNode(SecNodeDevice, Moveable): return self._cfgvalue or '' def createDevices(self): - cfg = self.read() super().createDevices() if self.param_category: for devname, (_, devcfg) in self.setup_info.items(): @@ -717,13 +717,13 @@ class FrappyNode(SecNodeDevice, Moveable): pinfo.category = self.param_category def makeDynamicDevices(self, setup_info): - patched_loggers = [] + patched_loggers = {} if self.quiet_init: for devname, (_, devcfg) in setup_info.items(): log = session.getLogger(devname) if log not in patched_loggers: result = [loggers.INFO] # default level - patched_loggers.append((log, result)) + patched_loggers[log] = result log.setLevel(loggers.ERROR) # avoid level change when the loglevel parameter is treated # store level instead in result @@ -731,7 +731,7 @@ class FrappyNode(SecNodeDevice, Moveable): try: super().makeDynamicDevices(setup_info) finally: - for log, result in patched_loggers: + for log, result in patched_loggers.items(): log.__dict__.pop('setLevel', None) # re-enable setLevel log.setLevel(result[-1]) # set to stored or default value