This patch fixes a database migration for SQLAlchemy 1.4.
In tacker repository following issues are encounter:
1. Replace deprecated SQLAlchemy "with_lockmode" method.
The method was deprecated in SQLAlchemy 0.9 [1][2]
and finally removed in version 1.4.
This patch replaces "with_lockmode" with new method
"with_for_update", which has no end-user impact.
2. The clause column IN, in the new version it requires parameters
passed to operator either be a list of literal value
or a tuple, or an empty list [3].
3. Observe an argument error in 'update' query.
Error: sqlalchemy.exc.ArgumentError: subject table for an INSERT,
UPDATE or DELETE expected, got Column('id', Uuid(length=36),
table=<vnf_software_images>, primary_key=True, nullable=False,
default=ColumnDefault(<function generate_uuid at 0x7fb5be371d30>))
4. The INSERT statement requires values to add in table as a list,
tuple or dictionary [4].
Error: sqlalchemy.exc.ArgumentError: mapping or sequence expected
for parameters
This patch creates a dictionary of fields to be insert in
VnfLcmOpOccs table.
5. Query fails on applying filters.
When applying query to list vnf package or vnf instance using
apply_filters() method exported from sqlalchemy_filters,
it failed.
AttributeError: 'Query' object has no attribute '_join_entities'
In SQLAlchemy 1.4 unification of "query" and "select" construct
took place [5][6].
The issue observe in tacker is an open bug of SQLAlchemy [7].
This patch drops "sqlalchemy_filters" and add customize method
to apply filters in query.
Note: This patch address sqlalchemy errors, SAWarnings will be resolve
in future patches.
[1] https://docs.sqlalchemy.org/en/13/changelog/migration_09.html?highlight=with_lockmode#new-for-update-support-on-select-query
[2] https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_lockmode
[3] https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.in_
[4] https://docs.sqlalchemy.org/en/14/core/dml.html#dml-class-documentation-constructors
[5] https://github.com/sqlalchemy/sqlalchemy/issues/5159
[6] https://gerrit.sqlalchemy.org/c/sqlalchemy/sqlalchemy/+/1599/
[7] https://github.com/juliotrigo/sqlalchemy-filters/issues/61
Co-Authored-By: Ayumu Ueha <ueha.ayumu@fujitsu.com>
Change-Id: Ifd1ae2753c639f22fc1afa020222416fe79469ef
64 lines
2.3 KiB
Plaintext
64 lines
2.3 KiB
Plaintext
# The order of packages is significant, because pip processes them in the order
|
|
# of appearance. Changing the order has an impact on the overall integration
|
|
# process, which may cause wedges in the gate later.
|
|
pbr!=2.1.0,>=2.0.0 # Apache-2.0
|
|
|
|
Paste>=2.0.2 # MIT
|
|
PasteDeploy>=1.5.0 # MIT
|
|
Routes>=2.3.1 # MIT
|
|
amqp>=2.4.0
|
|
anyjson>=0.3.3 # BSD
|
|
eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT
|
|
requests>=2.20.0 # Apache-2.0
|
|
jsonschema>=3.2.0 # MIT
|
|
keystonemiddleware>=4.17.0 # Apache-2.0
|
|
kombu>=4.3.0 # BSD
|
|
netaddr>=0.7.18 # BSD
|
|
SQLAlchemy>=1.3.11 # MIT
|
|
WebOb>=1.7.1 # MIT
|
|
python-heatclient>=1.10.0 # Apache-2.0
|
|
python-keystoneclient>=3.8.0 # Apache-2.0
|
|
alembic>=0.9.6 # MIT
|
|
stevedore>=1.20.0 # Apache-2.0
|
|
oslo.concurrency>=3.26.0 # Apache-2.0
|
|
oslo.config>=6.8.0 # Apache-2.0
|
|
oslo.context>=2.22.0 # Apache-2.0
|
|
oslo.db>=5.0.0 # Apache-2.0
|
|
oslo.log>=3.36.0 # Apache-2.0
|
|
oslo.messaging>=9.3.0 # Apache-2.0
|
|
oslo.middleware>=3.31.0 # Apache-2.0
|
|
oslo.policy>=3.6.0 # Apache-2.0
|
|
oslo.reports>=1.18.0 # Apache-2.0
|
|
oslo.rootwrap>=5.8.0 # Apache-2.0
|
|
oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0
|
|
oslo.service!=1.28.1,>=1.24.0 # Apache-2.0
|
|
oslo.upgradecheck>=1.3.0 # Apache-2.0
|
|
oslo.utils>=4.5.0 # Apache-2.0
|
|
oslo.versionedobjects>=1.33.3 # Apache-2.0
|
|
openstacksdk>=0.44.0 # Apache-2.0
|
|
python-neutronclient>=6.7.0 # Apache-2.0
|
|
python-novaclient>=9.1.0 # Apache-2.0
|
|
rfc3986>=1.2.0 # Apache-2.0
|
|
cryptography>=2.7 # BSD/Apache-2.0
|
|
paramiko>=2.7.1 # LGPLv2.1+
|
|
pyroute2>=0.4.21;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2)
|
|
python-mistralclient>=4.2.0 # Apache-2.0
|
|
python-barbicanclient>=4.5.2 # Apache-2.0
|
|
castellan>=0.16.0 # Apache-2.0
|
|
kubernetes>=11.0.0 # Apache-2.0
|
|
setuptools!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0,>=21.0.0 # PSF/ZPL
|
|
tooz>=1.58.0 # Apache-2.0
|
|
PyYAML>=5.1 # MIT
|
|
PyMySQL>=0.10.1 # MIT
|
|
|
|
# Glance Store
|
|
glance-store>=2.4.0 # Apache-2.0
|
|
|
|
# TODO(yasufum) Remove following comments after those two packages have devstack script.
|
|
# NOTE(yasufum) We don't install tosca-parser and heat-translator of stable,
|
|
# but the latest revision from git repo for development.
|
|
# If you install packages, comment out two lines of `install_package_gitrepo` in
|
|
# `devstack/plugin.sh` in addition to activate following lines.
|
|
heat-translator>=2.3.0 # Apache-2.0
|
|
tosca-parser>=2.3.0 # Apache-2.0
|