diff --git a/src/context/service/database/Device.py b/src/context/service/database/Device.py index c51a88368d27a02d73fa85fa3ee0689108056f4c..3e106bc158ab804c7eada7284e9d1b883eb66264 100644 --- a/src/context/service/database/Device.py +++ b/src/context/service/database/Device.py @@ -171,7 +171,9 @@ def device_set(db_engine : Engine, request : Device) -> Tuple[Dict, bool]: endpoint_updates = session.execute(stmt).fetchall() updated_endpoints = any([(updated_at > created_at) for created_at,updated_at in endpoint_updates]) - if len(related_topologies) > 0: + if not updated or len(related_topologies) > 1: + # Only update topology-device relations when device is created (not updated) or when endpoints are + # modified (len(related_topologies) > 1). session.execute(insert(TopologyDeviceModel).values(related_topologies).on_conflict_do_nothing( index_elements=[TopologyDeviceModel.topology_uuid, TopologyDeviceModel.device_uuid] ))