fix envlist calculation
+ fix pathed loggers mechanism
This commit is contained in:
20
devices.py
20
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
|
||||
|
||||
|
Reference in New Issue
Block a user