90ede813b0
Listen for foreign key changes and expire related relationships. With this, we can remove OVO code that refreshes / detaches models on each fetch. The patch also removes a bunch of expunge calls in plugin code. writer.using context manager is added to _get_subnets so that segment plugin's _notify_subnet_updated handler that calls to _get_subnets doesn't use the facade-less context.session that in specific cases may cache old models from previous sessions when used in mixed facade/facade-less environment. This patch bumps SQLAlchemy minimal requirement to >= 1.2.0 because pending_to_persistent event didn't exist before this version. It could be >= 1.1.0 if not for the fact that all 1.1.x releases have a bug that results in breakage of test_update_with_none_and_own_mac_for_duplicate_ip due to obscure import ordering issue in the library. (The issue is fixed by https://github.com/zzzeek/sqlalchemy/commit/ 63ff0140705207198545e3a0d7868a5ba8486e93) Partially-Implements: blueprint enginefacade-switch Partially-Implements: blueprint adopt-oslo-versioned-objects-for-db Co-Authored-By: Michael Bayer <mike_mp@zzzcomputing.com> Change-Id: I18c6794f99d2847c208dfd6e9eb187d53b657a05 |
||
---|---|---|
.. | ||
db | ||
extensions | ||
logapi | ||
plugins | ||
port | ||
qos | ||
README.rst | ||
__init__.py | ||
address_scope.py | ||
agent.py | ||
auto_allocate.py | ||
base.py | ||
common_types.py | ||
flavor.py | ||
floatingip.py | ||
ipam.py | ||
l3_hamode.py | ||
l3agent.py | ||
metering.py | ||
network.py | ||
ports.py | ||
provisioning_blocks.py | ||
quota.py | ||
rbac_db.py | ||
router.py | ||
securitygroup.py | ||
servicetype.py | ||
stdattrs.py | ||
subnet.py | ||
subnetpool.py | ||
tag.py | ||
trunk.py | ||
utils.py |
README.rst
Neutron Objects
Directory
This directory is designed to contain all modules which have objects definitions shipped with core Neutron. The files and directories located inside of this directory should follow the guidelines below.
Structure
The Neutron objects tree should have the following structure:
- The expected directory structure is flat, except for the ML2 plugins. All ML2 plugin objects should fall under the plugins subdirectory (i.e. plugins/ml2/gre_allocation).
- Module names should use singular forms for nouns (network.py, not networks.py).