neutron/neutron/tests/unit
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
..
agent Mock ipv6_utils.is_enabled_and_bind_by_default method 2018-02-05 15:21:18 +01:00
api use callback payloads for REQUEST/RESPONSE events 2017-12-24 07:27:11 +00:00
cmd More efficiently clean up OVS ports 2018-01-22 14:07:42 -06:00
common Fix ingress bw limit for OVS DPDK ports 2018-01-15 13:19:14 +00:00
conf/agent Agent common config 2017-03-15 09:52:18 -06:00
core_extensions use qos constants from neutron-lib 2017-10-26 19:57:19 +00:00
db l3_ha: only pass host into update_port when updating router port bindings 2018-01-16 14:37:32 -08:00
debug Change ip_lib network namespace code to use pyroute2 2017-10-04 21:09:28 +00:00
extensions Allow objects to opt in new engine facade 2018-02-09 04:07:34 +00:00
hacking Use flake8-import-order plugin 2017-07-05 03:15:27 +00:00
ipam Removed unnecessary setUp calls in tests 2017-07-31 17:16:01 +02:00
notifiers Use port object in notifiers/test_nova.py 2017-10-03 20:59:01 +00:00
objects Allow objects to opt in new engine facade 2018-02-09 04:07:34 +00:00
plugins Merge "fix same mechanism driver called twice bug" 2018-02-02 21:42:59 +00:00
privileged Add netlink-lib to manage conntrack entries 2017-07-27 13:56:40 +07:00
quota CountableResource: try count/get functions for all plugins 2017-09-08 10:50:12 -07:00
scheduler Merge "use l3 api def from neutron-lib" 2017-12-16 13:01:14 +00:00
services Merge "Speed up trunk MTU enforcement check" 2018-01-17 01:30:33 +00:00
tests Replaced assertTrue(False) with fail() 2017-06-22 19:31:00 +02:00
__init__.py Don't set use_stderr to False for tests 2017-04-15 01:41:29 +00:00
_test_extension_portbindings.py use plugin constants from neutron-lib 2017-10-16 09:32:20 -06:00
dummy_plugin.py Add unit test to validate non DB base core plugin can be loaded 2017-11-15 21:21:35 +00:00
extension_stubs.py Consume ServicePluginBase from neutron-lib 2017-03-17 12:06:57 -06:00
test_auth.py Use oslo.context class method to construct context object 2017-03-23 09:02:46 +00:00
test_manager.py use plugin constants from neutron-lib 2017-10-16 09:32:20 -06:00
test_neutron_plugin_base_v2.py Add unit test to validate non DB base core plugin can be loaded 2017-11-15 21:21:35 +00:00
test_opts.py Fix the sriov agent config group name 2016-05-05 16:16:08 +08:00
test_policy.py cleanup unit test usage of api extension maps 2017-10-24 10:38:52 -06:00
test_service.py use callback payloads for _SPAWN events 2017-12-21 11:03:36 -07:00
test_worker.py Move AgentStatusCheckWorker to PeriodicWorker 2016-11-17 15:31:19 -08:00
test_wsgi.py Pass parameters when create eventlet.wsgi server 2017-03-17 14:14:25 +08:00
testlib_api.py API compare-and-swap updates based on revision_number 2017-06-29 22:50:12 +00:00