From 32fbafb5a21ebe415117a727bd93ff45e064357b Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 6 Sep 2023 17:16:17 +0000 Subject: [PATCH] Context component: - Corrected viewonly relations in TopologyDeviceModel and TopologyLinkModel - Corrected parsing of topologydevicemodel relations in Device --- src/context/service/database/Device.py | 5 ++++- src/context/service/database/models/TopologyModel.py | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/context/service/database/Device.py b/src/context/service/database/Device.py index d816d3c5f..9897aa0af 100644 --- a/src/context/service/database/Device.py +++ b/src/context/service/database/Device.py @@ -195,12 +195,15 @@ def device_set(db_engine : Engine, messagebroker : MessageBroker, request : Devi stmt = stmt.returning(TopologyDeviceModel.topology_uuid) topology_uuids = session.execute(stmt).fetchall() - LOGGER.warning('topology_uuids={:s}'.format(str(topology_uuids))) + LOGGER.warning('RAW topology_uuids={:s}'.format(str(topology_uuids))) if len(topology_uuids) > 0: + topology_uuids = [topology_uuid[0] for topology_uuid in topology_uuids] + LOGGER.warning('NEW topology_uuids={:s}'.format(str(topology_uuids))) query = session.query(TopologyModel) query = query.filter(TopologyModel.topology_uuid.in_(topology_uuids)) device_topologies : List[TopologyModel] = query.all() device_topology_ids = [obj.dump_id() for obj in device_topologies] + LOGGER.warning('device_topology_ids={:s}'.format(str(device_topology_ids))) else: device_topology_ids = [] diff --git a/src/context/service/database/models/TopologyModel.py b/src/context/service/database/models/TopologyModel.py index 01bb14f4d..68d97edf3 100644 --- a/src/context/service/database/models/TopologyModel.py +++ b/src/context/service/database/models/TopologyModel.py @@ -67,7 +67,7 @@ class TopologyDeviceModel(_Base): topology_uuid = Column(ForeignKey('topology.topology_uuid', ondelete='RESTRICT'), primary_key=True, index=True) device_uuid = Column(ForeignKey('device.device_uuid', ondelete='CASCADE' ), primary_key=True, index=True) - topology = relationship('TopologyModel', lazy='selectin') # back_populates='topology_devices' + topology = relationship('TopologyModel', lazy='selectin', viewonly=True) # back_populates='topology_devices' device = relationship('DeviceModel', lazy='selectin') # back_populates='topology_devices' class TopologyLinkModel(_Base): @@ -76,5 +76,5 @@ class TopologyLinkModel(_Base): topology_uuid = Column(ForeignKey('topology.topology_uuid', ondelete='RESTRICT'), primary_key=True, index=True) link_uuid = Column(ForeignKey('link.link_uuid', ondelete='CASCADE' ), primary_key=True, index=True) - topology = relationship('TopologyModel', lazy='selectin') # back_populates='topology_links' + topology = relationship('TopologyModel', lazy='selectin', viewonly=True) # back_populates='topology_links' link = relationship('LinkModel', lazy='selectin') # back_populates='topology_links' -- GitLab