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:
2025-06-20 13:43:58 +02:00
parent 806490322e
commit 3d907bd11c

View File

@ -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):