From 2325c4d10fe4654413905530f1873c6a80d1c47a Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 20 Jan 2023 18:10:09 +0000 Subject: [PATCH] Context component: - corrected slice_unset query filters --- src/context/service/database/Slice.py | 33 +++++++++++++++------------ 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/context/service/database/Slice.py b/src/context/service/database/Slice.py index 4c65886ab..84bfff343 100644 --- a/src/context/service/database/Slice.py +++ b/src/context/service/database/Slice.py @@ -202,21 +202,24 @@ def slice_unset(db_engine : Engine, request : Slice) -> Tuple[Dict, bool]: def callback(session : Session) -> bool: num_deletes = 0 - num_deletes += session.query(SliceServiceModel)\ - .filter(and_( - SliceServiceModel.slice_uuid == slice_uuid, - SliceServiceModel.service_uuid.in_(slice_service_uuids) - )).delete() - num_deletes += session.query(SliceSubSliceModel)\ - .filter_by(and_( - SliceSubSliceModel.slice_uuid == slice_uuid, - SliceSubSliceModel.subslice_uuid.in_(slice_subslice_uuids) - )).delete() - num_deletes += session.query(SliceEndPointModel)\ - .filter_by(and_( - SliceEndPointModel.slice_uuid == slice_uuid, - SliceEndPointModel.endpoint_uuid.in_(slice_endpoint_uuids) - )).delete() + if len(slice_service_uuids) > 0: + num_deletes += session.query(SliceServiceModel)\ + .filter(and_( + SliceServiceModel.slice_uuid == slice_uuid, + SliceServiceModel.service_uuid.in_(slice_service_uuids) + )).delete() + if len(slice_subslice_uuids) > 0: + num_deletes += session.query(SliceSubSliceModel)\ + .filter_by(and_( + SliceSubSliceModel.slice_uuid == slice_uuid, + SliceSubSliceModel.subslice_uuid.in_(slice_subslice_uuids) + )).delete() + if len(slice_endpoint_uuids) > 0: + num_deletes += session.query(SliceEndPointModel)\ + .filter_by(and_( + SliceEndPointModel.slice_uuid == slice_uuid, + SliceEndPointModel.endpoint_uuid.in_(slice_endpoint_uuids) + )).delete() return num_deletes > 0 updated = run_transaction(sessionmaker(bind=db_engine), callback) -- GitLab