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:
|
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
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user