diff --git a/src/context/service/database/Slice.py b/src/context/service/database/Slice.py index 717cac9cf17c3d2dccadb90f1b58f81d48302ffa..4c65886abe1a51addbd2309e07c02c21e2329f69 100644 --- a/src/context/service/database/Slice.py +++ b/src/context/service/database/Slice.py @@ -13,6 +13,7 @@ # limitations under the License. import datetime, logging +from sqlalchemy import and_ from sqlalchemy.dialects.postgresql import insert from sqlalchemy.engine import Engine from sqlalchemy.orm import Session, sessionmaker @@ -202,20 +203,20 @@ 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_by( + .filter(and_( SliceServiceModel.slice_uuid == slice_uuid, SliceServiceModel.service_uuid.in_(slice_service_uuids) - ).delete() + )).delete() num_deletes += session.query(SliceSubSliceModel)\ - .filter_by( + .filter_by(and_( SliceSubSliceModel.slice_uuid == slice_uuid, SliceSubSliceModel.subslice_uuid.in_(slice_subslice_uuids) - ).delete() + )).delete() num_deletes += session.query(SliceEndPointModel)\ - .filter_by( + .filter_by(and_( SliceEndPointModel.slice_uuid == slice_uuid, SliceEndPointModel.endpoint_uuid.in_(slice_endpoint_uuids) - ).delete() + )).delete() return num_deletes > 0 updated = run_transaction(sessionmaker(bind=db_engine), callback)