resolve problem with DefuncDevice
renew envlist even when not changed if not, devices in envlist are not exchanged by new instances.
This commit is contained in:
26
devices.py
26
devices.py
@ -632,8 +632,6 @@ class FrappyConfig(Device):
|
||||
to_remove = to_remove.difference(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
|
||||
|
||||
predef_changes = []
|
||||
for aliasname, cfg in predef_aliases:
|
||||
@ -644,7 +642,7 @@ class FrappyConfig(Device):
|
||||
|
||||
def check_envalias(self):
|
||||
envlist, new_aliases, predef_aliases = self.needed_envalias()
|
||||
if envlist:
|
||||
if set(envlist) != set(session.experiment.envlist):
|
||||
return f"envlist should be {', '.join(envlist)}"
|
||||
anew = [k for k, v in new_aliases.items() if v is not None]
|
||||
removed = set(new_aliases).difference(anew)
|
||||
@ -695,15 +693,19 @@ class FrappyConfig(Device):
|
||||
|
||||
applyAliasConfig() # for other aliases
|
||||
|
||||
if envlist is not None:
|
||||
prev = session.experiment.envlist
|
||||
removed = set(prev).difference(envlist)
|
||||
session.experiment.setEnvironment(envlist)
|
||||
if removed:
|
||||
session.log.info('removed %s from environment', ', '.join(removed))
|
||||
added = set(envlist).difference(prev)
|
||||
if added:
|
||||
session.log.info('added %s to environment', ', '.join(added))
|
||||
prev = set(session.experiment.envlist)
|
||||
remove = ', '.join(prev.difference(envlist))
|
||||
session.experiment.setEnvironment(envlist)
|
||||
show = []
|
||||
keep = ', '.join(d for d in envlist if d in prev)
|
||||
if keep:
|
||||
show.append(f'keep {keep}')
|
||||
add = ', '.join(d for d in envlist if d not in prev)
|
||||
if add:
|
||||
show.append(f'add {add}')
|
||||
if remove:
|
||||
show.append(f'remove {remove}')
|
||||
session.log.info('environment: %s', '; '.join(show))
|
||||
|
||||
|
||||
class FrappyNode(SecNodeDevice, Moveable):
|
||||
|
Reference in New Issue
Block a user