OpenStack Networking (Neutron)
Go to file
Ihar Hrachyshka 6f83466307 Allow objects to opt in new engine facade
New facade is enabled by setting new_facade = True for the object of
interest. With new_facade on, all OVO actions will use the new reader /
writer decorator to activate sessions.

There are two new facade decorators added to OVO: db_context_reader and
db_context_write that should be used instead of explicit
autonested_transaction / reader.using / writer.using in OVO context.

All neutron.objects.db.api helpers now receive OVO classes / objects
instead of model classes, since they need to know which type of engine
facade to use for which object. While it means we change signatures for
those helper functions, they are not used anywhere outside neutron tree
except vmware-nsx unit tests, and the latter pass anyway because the
tests completely mock out them disregarding their signatures.

This patch also adds several new OVO objects to be able to continue
using neutron.objects.db.api helpers to persist models that previously
didn't have corresponding OVO classes.

Finally, the patch adds registration for missing options in
neutron/tests/unit/extensions/test_qos_fip.py to be able to debug
failures in those unit tests. Strictly speaking, this change doesn't
belong to the patch, but I include it nevertheless to speed up merge in
time close to release.

There are several non-obvious changes included, specifically:

- in neutron.objects.base, decorator() that refreshes / expunges models
from the active session now opens a subtransaction for the whole span of
call / refresh / expunge, so that we can safely refresh model regardless
of whether caller opened another parent subtransaction (it was not the
case for create_subnetpool in base db plugin code).

- in neutron.db.l3_fip_qos, removed code that updates obj.db_model
relationship directly after corresponding insertions for child policy
binding model. This code is not needed because the only caller to the
_process_extra_fip_qos_update method refetches latest state of floating
ip OVO object anyway, and this code triggers several unit test failures.

- unit tests checking that a single commit happens for get_object and
get_objects are no longer valid for new facade objects that use reader
decorator that doesn't commit but close. This change is as intended, so
unit tests were tweaked to check close for new facade objects.

Change-Id: I15ec238c18a464f977f7d1079605b82965052311
Related-Bug: #1746996
2018-02-09 04:07:34 +00:00
api-ref Fix some typos 2016-06-28 22:46:19 +02:00
bin Use os-xenapi for neutron when XenServer as hypervisor 2017-03-30 18:33:37 +00:00
devstack [log]: Devstack plugin for logging api 2017-12-19 14:40:57 +07:00
doc Allow objects to opt in new engine facade 2018-02-09 04:07:34 +00:00
etc Allow port create/update by shared nw owners 2017-12-12 04:12:54 +00:00
neutron Allow objects to opt in new engine facade 2018-02-09 04:07:34 +00:00
playbooks/legacy Merge "Switch rally job from q-* to neutron-* service names" 2018-01-12 09:43:10 +00:00
rally-jobs Switch rally job from q-* to neutron-* service names 2018-01-09 12:12:48 -08:00
releasenotes Merge "Adding DSCP mark and inheritance in OVS and LB tunnels outer header" 2018-01-18 03:14:07 +00:00
tools Remove the bundled intree neutron tempest plugin 2017-11-22 12:54:33 -08:00
.coveragerc Cleanup coverage configuration 2016-10-17 17:06:19 +05:30
.gitignore Added zuulv3 jobs for testing neutron tempest plugin 2017-11-13 09:30:36 +05:30
.gitreview Fix .gitreview to not point at a branch 2015-08-17 13:51:51 -06:00
.mailmap Add mailmap entry 2014-05-16 13:40:04 -04:00
.pylintrc Update pylint disable list to pass pylint 1.7.1 checks 2017-06-08 09:49:46 +00:00
.stestr.conf Fix post gate hook to accommodate for new os-testr 2017-09-12 14:20:12 -06:00
.testr.conf Allow more time for DB migration tests 2016-09-21 20:54:41 -04:00
.zuul.yaml Zuul: Remove project name 2018-01-31 22:54:45 -08:00
CONTRIBUTING.rst Update link for contribution 2017-08-31 16:44:51 +02:00
HACKING.rst Update the documentation link for doc migration 2017-07-22 18:46:13 +09:00
LICENSE Adding Apache Version 2.0 license file. This is the official license agreement under which Quantum code is available to 2011-08-08 12:31:04 -07:00
README.rst Correct tag link in README 2017-08-03 09:47:25 +08:00
TESTING.rst docs: clarify wording about how to use advanced glance image 2017-08-01 08:56:45 -07:00
babel.cfg Use babel to generate translation file 2013-01-24 00:20:32 +08:00
bindep.txt Add libffi-dev to bindep.txt 2017-06-13 19:26:49 +00:00
requirements.txt Updated from global requirements 2018-02-01 07:17:59 +00:00
setup.cfg [log] ovs fw logging implementation 2018-01-09 09:26:40 +07:00
setup.py Updated from global requirements 2017-03-04 11:19:58 +00:00
test-requirements.txt Updated from global requirements 2018-02-01 07:17:59 +00:00
tox.ini add doc link validation to release checklist and tox 2017-09-21 15:24:03 -06:00

README.rst

Team and repository tags

image

Welcome!

To learn more about neutron:

Get in touch via email. Use [Neutron] in your subject.

To learn how to contribute:

CONTRIBUTING.rst