do not remove aliases with targets not inheriting frm SecopDevice

This commit is contained in:
2025-07-14 11:47:17 +02:00
parent 3d907bd11c
commit d4adaff40d

View File

@@ -32,7 +32,7 @@ import json
from nicos import config, session
from nicos.core import Override, Param, Moveable, status, POLLER, SIMULATION, DeviceAlias, \
Device, anytype, listof, MASTER
from nicos.devices.secop.devices import SecNodeDevice
from nicos.devices.secop.devices import SecNodeDevice, SecopDevice, DefunctDevice
from nicos.core.utils import createThread
from nicos.utils.comparestrings import compare
from nicos.devices.secop.devices import get_attaching_devices
@@ -662,9 +662,15 @@ class FrappyConfig(Device):
if new_aliases or predef_aliases:
for aliasname, devname in new_aliases.items():
if devname is None:
session.destroyDevice(aliasname)
session.configured_devices.pop(aliasname, None)
session.dynamic_devices.pop(aliasname, None)
aliasdev = session.devices.get(aliasname)
if aliasdev:
aliastarget = session.devices.get(aliasdev.alias)
if isinstance(aliastarget, (SecopDevice, DefunctDevice)):
session.destroyDevice(aliasname)
session.configured_devices.pop(aliasname, None)
session.dynamic_devices.pop(aliasname, None)
elif aliastarget:
session.log.info('frappy_setup does not remove %s', aliasname)
else:
dev = session.devices.get(devname)
devcfg = ('nicos.core.DeviceAlias', {})