Tacker: ETSI MANO NFV Orchestrator / VNF Manager. See https://wiki.openstack.org/wiki/Tacker
Go to file
Manpreet Kaur e0c09499a6 Fix migration for SQLAlchemy 1.4
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
2021-07-10 06:50:43 +05:30
api-ref/source Add response information for Individual Subscription 2021-03-26 11:24:44 +00:00
contrib/tacker-config Add support SFC encapsulation from networking-sfc 2019-01-28 17:16:33 +09:00
devstack DevStack job with heat-translator/tosca-parser master 2021-04-27 19:57:25 +09:00
doc [Doc] Update Freenode to OFTC as our IRC server 2021-06-01 13:58:33 +09:00
etc Fix typo and missing configure for mgmtdriver 2021-03-10 09:21:54 +00:00
playbooks/devstack Restore Ceilometer installation 2021-01-14 15:05:24 +09:00
releasenotes Support Placement Constraints for Grant 2021-04-01 08:42:52 +00:00
roles Add a k8s cluster for the k8s related FT in zuul 2021-02-08 13:11:16 +00:00
samples Merge "Fix exception not raised while install script failed" 2021-04-08 12:58:15 +00:00
tacker Fix migration for SQLAlchemy 1.4 2021-07-10 06:50:43 +05:30
tools include mariadb, mariadb-server in bindep, for tests 2021-03-02 07:26:09 +00:00
.coveragerc Cleanup and fix Tacker coverage 2016-04-21 06:08:06 +00:00
.gitignore Add vnf package conf options and sample config file to docs 2019-09-19 08:49:08 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:36:08 +00:00
.mailmap import neutron master of cba140daccd7c4f715263cda422d5cec27af069d 2014-07-01 17:11:09 +09:00
.pylintrc import neutron master of cba140daccd7c4f715263cda422d5cec27af069d 2014-07-01 17:11:09 +09:00
.stestr.conf Switch to using stestr 2018-06-14 04:49:05 +00:00
.zuul.yaml Avoid FT errors caused by other projects change 2021-06-02 14:34:33 +00:00
CONTRIBUTING.rst [ussuri][goal] Update contributor documentation 2020-05-04 08:37:57 +00:00
HACKING.rst Trivial: Add running tests section to HACKING.rst 2018-07-25 10:46:43 +09:00
LICENSE import neutron master of cba140daccd7c4f715263cda422d5cec27af069d 2014-07-01 17:11:09 +09:00
README.rst Start README.rst with a better title 2019-11-28 09:36:59 +08:00
TESTING.rst Trivial: Update HACKING.rst with stestr 2018-08-07 16:20:40 +09:00
bindep.txt include mariadb, mariadb-server in bindep, for tests 2021-03-02 07:26:09 +00:00
lower-constraints.txt Fix migration for SQLAlchemy 1.4 2021-07-10 06:50:43 +05:30
requirements-extra.txt Temporary revert to install ht and tp with pip 2021-03-10 05:44:28 +00:00
requirements.txt Fix migration for SQLAlchemy 1.4 2021-07-10 06:50:43 +05:30
setup.cfg setup.cfg: Replace dashes with underscores 2021-04-27 16:41:34 +08:00
setup.py Cleanup Python 2.7 support 2020-03-29 20:23:26 +00:00
test-requirements.txt Implement SOL001 features to MgmtDriver 2021-02-18 17:29:39 +09:00
tox.ini Temporary revert to install ht and tp with pip 2021-03-10 05:44:28 +00:00
upper-constraints.txt Update upper-constraints.txt 2021-03-08 14:58:28 +00:00

README.rst

Tacker

image

Welcome!

Tacker is an OpenStack based NFV Orchestrator service with built-in general purpose VNF Manager to deploy and operate Virtual Network Functions (VNFs) on an OpenStack based NFV Platform. It is based on ETSI MANO Architectural Framework and provides a fully functional stack to orchestrate VNFs end-to-end.

Installation:

Installation instructions and user guides can be found at: https://docs.openstack.org/tacker/

Tacker code base supports OpenStack master and other releases. Please follow the instructions in the above address for a successful installation of corresponding release.

Code:

Tacker code is available in following repositories:

Bugs:

Please report bugs at: https://bugs.launchpad.net/tacker

External Resources: