Suppress Warnings for SQL Alchemy IN operator

The `in_` operator of SQL Alchemy emits a warning when it coerces a
Subquery object into a select() implicitly [1].

This patch suppresses the warnings by explicitly coercing a Subquery
object to select() as shown in [2].

[1] 3d99ee28ed
[2] 605d0d9058/test/sql/test_operators.py (L3295-L3319)

Closes-Bug: #1967700
Change-Id: I90729463613e8d4768e0e466b9636967ccfa48e7
This commit is contained in:
Hiromu Asahina 2022-04-03 23:34:40 +09:00
parent f10ac5fd56
commit 048ba8fc37
1 changed files with 12 additions and 11 deletions

View File

@ -225,20 +225,21 @@ def _destroy_vnf_package(context, package_uuid):
package_uuid=package_uuid)
software_images_query = api.model_query(
context, models.VnfSoftwareImage,
(models.VnfSoftwareImage.id, )).filter(
models.VnfSoftwareImage.flavour_uuid.in_(flavour_query.subquery()))
context, models.VnfSoftwareImage, (models.VnfSoftwareImage.id, )
).filter(models.VnfSoftwareImage.flavour_uuid.in_(
flavour_query.subquery().select()))
api.model_query(
context, models.VnfSoftwareImageMetadata).filter(
models.VnfSoftwareImageMetadata.image_uuid.in_(
software_images_query.subquery())).update(
updated_values, synchronize_session=False)
context, models.VnfSoftwareImageMetadata
).filter(models.VnfSoftwareImageMetadata.image_uuid.in_(
software_images_query.subquery().select())
).update(updated_values, synchronize_session=False)
api.model_query(context, models.VnfSoftwareImage). \
filter(models.VnfSoftwareImage.id.in_(
flavour_query.subquery())).update(
updated_values, synchronize_session=False)
api.model_query(
context, models.VnfSoftwareImage
).filter(models.VnfSoftwareImage.id.in_(
flavour_query.subquery().select())
).update(updated_values, synchronize_session=False)
api.model_query(context, models.VnfPackageUserData). \
filter_by(package_uuid=package_uuid). \